簡體   English   中英

如何編譯#include <experimental/any> 對OSX的鏗鏘聲

[英]How to compile #include <experimental/any> for clang on OSX

我想在clang OSX上的C ++程序中編譯#include <experimental/any>

// test.cpp
#include <experimental/any>

int main() {
  return 0;
}

嘗試從這里學到的以下命令/選項

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目前是否支持C ++ 17? 如果是,怎么能得到它的支持?

對於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

並且/Library/Developer/CommandLineTools/usr/include/c++/v1/experimental沒有any ,但只有

chrono
optional    
string_view 
tuple
utility
algorithm
dynarray    
ratio   
system_error    
type_traits

所以,看來蘋果的libc ++不提供any (沒有any/Library/Developer/CommandLineTools/usr/include/c++/v1/其一)。 您必須使用GCC或您自己的clang或boost/any.hpp ,所有這些都可以通過自制軟件安裝。

你拼錯了。 它是“實驗性的”,而不是“實驗性”。

但是,從Clang 4.0開始,你應該只使用<any>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM