我正在使用 travis.ci 对我的git仓库进行自动化测试构建。
对于Linux,它们使用:Ubuntu 12.04
以及clang 3.4。
根据clang页面,Clang 3.4支持所有C ++ 14语言特性(只要您使用-std=c++1y标志)。
目前为止都很好:
我还需要使用std::index_sequence<t0,...,tn>
,这是库功能N3658,而不是语言功能。但我找不到有关更新clang的C ++标准库以确保支持此功能的任何具体文档(默认情况下不支持该功能)。
测试代码:
#include <utility>
int main() {
std::index_sequence<1,2,3,4> seq;
}
测试构建:
> clang++ -std=c++1y pl.cpp
pl.cpp:3:10: error: no member named 'index_sequence' in namespace 'std'
std::index_sequence<1,2,3,4> seq;
~~~~~^
pl.cpp:3:37: error: use of undeclared identifier 'seq'
std::index_sequence<1,2,3,4> seq;
^
2 errors generated.
更新:
根据下面的建议,我尝试使用了libc++。
我相当确定我做错了什么,但我从未尝试过使用替代标准库,所以不确定出了什么问题。今晚会深入研究一下,如果您有任何建议,请留言。
> sudo apt-get install -qq libc++1 libc6 libc++-dev
> clang++ -stdlib=libc++ pl.cpp
pl.cpp:1:10: fatal error: 'utility' file not found
#include <utility>
^
1 error generated.
-stdlib=libc++
而不是libstdc++
,会发生什么? - Praetorian