C++ 11已经实现了data()成员函数on std::vector,它为你提供了一个指向内存数组的指针.这是否意味着模板专业化std::vector<bool>也有这个成员?由于此专业化不会存储数据,bool *您可以通过调用期望什么样的行为data()?
Mik*_*our 28
它不会编译,除非您的实现具有非标准扩展.如std::vector<bool>C++ 11 23.3.7/1中所规定的,特殊化并未声明data成员.
did*_*erc 26
该页面明确地记录了该类,表明该专业化不提供此方法.
专门化具有与非专用向量相同的成员函数,除了data,emplace和emplace_back之外,在此专门化中不存在.
这个其他页面以及C++规范的 §23.3.7 确实证实了这一点.