这是一个名为cbegin.cpp
的玩具C ++文件:
#include <iostream>
#include <vector>
int main()
{
std::vector<std::string> toto;
auto first = toto.cbegin();
return 0;
}
我要使用以下命令进行编译:
clang -x c++ -arch i386 -std=c++11 -stdlib=libstdc++ -lstdc++ cbegin.cpp -o cbegin
但是我得到这个错误:
cbegin.cpp:7:20: error: no member named 'cbegin' in 'std::vector<std::basic_string<char>, std::allocator<std::basic_string<char> > >'
auto first = toto.cbegin();
如果我使用libc++
,效果很好:
clang -x c++ -arch i386 -std=c++11 -stdlib=libc++ -lstdc++ cbegin.cpp -o cbegin
为什么libstdc++
无法识别std::vector::cbegin
?我无法移至项目中的libc++
,因为我有使用libstdc++
编译的外部依赖项。