为什么libstdc ++无法识别std :: vector :: cbegin而libc ++却不能识别?

时间:2019-06-04 15:59:23

标签: c++ clang libstdc++

这是一个名为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++编译的外部依赖项。

0 个答案:

没有答案