我试图让#include <experimental/any>
在我的C ++程序中编译OSX
// test.cpp
#include <experimental/any>
int main() {
return 0;
}
尝试从here
学习的以下命令/选项clang++ -std=c++14 test.cpp -o test -std=c++1z -stdlib=libc++
clang++ -std=c++1x test.cpp -o test -std=c++1z -stdlib=libc++
clang++ -std=c++1y test.cpp -o test -std=c++1z -stdlib=libc++
clang++ -std=c++1z test.cpp -o test -std=c++1z -stdlib=libc++
但它没有编译和抱怨以下错误:
fatal error: 'experimental/any' file not found
clang++ --version
产生以下内容:
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
如何让#include <experimental/any>
进行编译?
我应该在我的机器上升级clang吗?
截至今天,clang是否支持C ++ 17?如果是,怎么能得到它的支持?
答案 0 :(得分:4)
对于OSX 10.12.5(使用Xcode Developer工具),我们得到
> clang++ -v
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
any
中没有/Library/Developer/CommandLineTools/usr/include/c++/v1/experimental
,但只有
chrono
optional
string_view
tuple
utility
algorithm
dynarray
ratio
system_error
type_traits
因此,似乎Apple的libc ++没有提供any
(any
中也没有/Library/Developer/CommandLineTools/usr/include/c++/v1/
。您必须使用GCC或您自己的clang或boost/any.hpp
,所有这些都可以通过homebrew安装。
答案 1 :(得分:3)
你拼错了。它是&#34;实验&#34;而不是&#34;实验&#34;。
但是,从Clang 4.0开始,您应该只使用<any>
。