Я использую travis.ci для выполнения автоматических тестовых сборников моих репозиториев git.
Для linux они используют: Ubuntu 12.04
С clang 3.4
В соответствии с clang page все функции языка С++ 14 поддерживаются Clang 3.4 (если вы используете -std = С++ 1y).
До сих пор так хорошо:
Мне также нужно использовать std::index_sequence<t0,...,tn>
, который является функцией библиотеки N3658, а не функцией языка. Но я не могу найти какую-либо конкретную документацию по обновлению стандартной библиотеки С++ для clang, чтобы убедиться, что эта функция поддерживается (она не поддерживается из коробки).
TestCode:
#include <utility>
int main() {
std::index_sequence<1,2,3,4> seq;
}
TestBuild:
> 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.
Update:
На основании приведенного ниже предложения я попытался использовать libС++.
Довольно уверен, что я сделал что-то не так, но я никогда не пытался использовать альтернативную стандартную библиотеку, поэтому не уверен, что здесь происходит не так. Будет digg сегодня. Но если у вас есть предложение, пожалуйста, оставьте комментарий.
> 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.