Gcc 是可复制/可构造的etc支持clang++;和g++;

Gcc 是可复制/可构造的etc支持clang++;和g++;,gcc,c++11,clang,typetraits,libstdc++,Gcc,C++11,Clang,Typetraits,Libstdc++,iso 20.9.4.3 g++的libstdc++-v3不完全支持类型属性[meta.unary.prop];e、 g: wget -O - https://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/include/std/type_traits 2>/dev/null | grep "still unimplemented" // is_trivially_copyable (still unimplemented) /// is_tri

iso 20.9.4.3 g++的libstdc++-v3不完全支持类型属性[meta.unary.prop];e、 g:

wget -O - https://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/include/std/type_traits 2>/dev/null | grep "still unimplemented"


  // is_trivially_copyable (still unimplemented)
  /// is_trivially_constructible (still unimplemented)
  /// is_trivially_default_constructible (still unimplemented)
  /// is_trivially_copy_constructible (still unimplemented)
  /// is_trivially_move_constructible (still unimplemented)
  /// is_trivially_assignable (still unimplemented)
  /// is_trivially_copy_assignable (still unimplemented)
  /// is_trivially_move_assignable (still unimplemented
因此,至少据我所知,基于gcc安装的clang构建将继承这种缺乏实现的缺陷;至少

clang version 3.5.0 (212792)
我几个小时前刚用它建了房子

g++ (Debian 4.8.3-3) 4.8.3
(但它以某种方式使用了gcc-4.9,尽管如此)不支持上述类型特征


但不知怎的,科里鲁

有一个叮当声安装,如果使用

clang++ -std=c++11 -stdlib=libc++  -O2 -Wall -Wextra -pedantic -pthread -pedantic-errors main.cpp -lm  -lsupc++  && ./a.out
编译例如本

没有抱怨的榜样

所以必须有方法来编译或设置clang,至少在Linux上,它的头文件也支持那些尚未由libstdc++实现的类型特征


此外,llvm具有以下特性

摘要已经编译,但我不知道如何使用这些“_uuuu”内部函数;他们显然既不住在std::也不住在:

--

因此-如何在Linux上设置或配置最新的llvm/clang,以便clang++具有最多可用的类型特征?

附录回应评论

clang++ -std=c++11 -stdlib=libc++  -O2 -Wall -Wextra -pedantic -pthread -pedantic-errors test_type_traits.cxx -lm  -lsupc++  
测试类型特征。cxx:1:10:

致命错误:找不到“iostream”文件 #包括 ^
生成1个错误。

只需完全安装libc++

给你

它像一个符咒一样构建和安装,现在当像这样调用时,clang确实具有这些类型特征

clang++ -std=c++11 -stdlib=libc++ <other arguments>
clang++-std=c++11-stdlib=libc++

存在一个名为libc++的STL,是否尝试过?这是“宗族主义”。否则,clang将使用libstdc++。实际上,你可以看到coliru在使用它。它存在,但在我的安装中甚至没有。“libc++是苹果OS X上100%完整的C++11实现。”如果没有,它就不会100%完整。也许coliru是在Apple上编译的,但是在任何情况下,你都可以在命令行上看到它正在与之链接。我已经发布了coliru命令行。我已经添加了本地调用的命令的输出。在OSX上可能起作用的东西在这里是离题的;请注意我的问题。但是你给我指出了正确的方向;看看我的答案。谢谢!