Раздел 23.3.7 Класс vector<bool>
[vector.bool], пункт 1 гласит:
template <class Allocator> class vector<bool, Allocator> {
public:
// types:
typedef bool const_reference;
...
Однако эта программа не скомпилируется при использовании libС++:
#include <vector>
#include <type_traits>
int
main()
{
static_assert(std::is_same<std::vector<bool>::const_reference, bool>{}, "?");
}
Кроме того, я отмечаю, что стандарт С++ был последовательным в этой спецификации вплоть до С++ 98. И я также отмечаю, что libС++ последовательно не выполнял эту спецификацию с момента первого введения libС++.
Какова мотивация этого несоответствия?