1
เหตุใดเวกเตอร์ <bool> ของ libc ++ :: const_reference จึงไม่ใช่บูล
มาตรา 23.3.7 คลาสvector<bool>[vector.bool] วรรค 1 ระบุ: template <class Allocator> class vector<bool, Allocator> { public: // types: typedef bool const_reference; ... อย่างไรก็ตามโปรแกรมนี้ไม่สามารถคอมไพล์เมื่อใช้ libc ++: #include <vector> #include <type_traits> int main() { static_assert(std::is_same<std::vector<bool>::const_reference, bool>{}, "?"); } นอกจากนี้ฉันทราบว่ามาตรฐาน C ++ มีความสอดคล้องกันในข้อกำหนดนี้ตลอดไปจนถึง C ++ 98 และฉันทราบเพิ่มเติมว่า libc ++ ไม่ได้ปฏิบัติตามข้อกำหนดนี้อย่างต่อเนื่องตั้งแต่การเปิดตัว libc ++ ครั้งแรก อะไรคือแรงจูงใจสำหรับการไม่ปฏิบัติตามนี้?