Lorsque j'essaie certaines fonctionnalités de c ++ 17, je construis mon code en ligne de commande comme suit:
llvm-g++ -std=c++17 main.cpp
mais ça a échoué. J'ai eu:
error: invalid value 'c++17' in '-std=c++17'
la version de mon llvm-g ++ est:
[wjy@wjy-mba] cpp$ llvm-g++ -v
Apple LLVM version 9.0.0 (clang-900.0.37)
Target: x86_64-Apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
et en même temps, je peux construire mon code sous Xcode (avec c ++ 17) . Paramètre Xcode
-std=c++17
a été ajouté à Clang 5.0.0 (publié très récemment - plus tôt ce mois-ci - voir http://releases.llvm.org/5.0.0/tools/clang/docs/ReleaseNotes.html ).
Cette page https://en.wikipedia.org/wiki/Xcode#Latest_versions semble croire que Xcode 9.0 utilise toujours la version LLVM/Clang 4.0. Ceci est en accord avec l'erreur que vous rencontrez.
Apple-LLVM 10 fourni avec Xcode 10 prend en charge les brouillons C++ 17 et C++ 20:
note: use 'c++98' or 'c++03' for 'ISO C++ 1998 with amendments' standard
note: use 'gnu++98' or 'gnu++03' for 'ISO C++ 1998 with amendments and GNU
extensions' standard
note: use 'c++11' for 'ISO C++ 2011 with amendments' standard
note: use 'gnu++11' for 'ISO C++ 2011 with amendments and GNU extensions'
standard
note: use 'c++14' for 'ISO C++ 2014 with amendments' standard
note: use 'gnu++14' for 'ISO C++ 2014 with amendments and GNU extensions'
standard
note: use 'c++17' for 'ISO C++ 2017 with amendments' standard
note: use 'gnu++17' for 'ISO C++ 2017 with amendments and GNU extensions'
standard
note: use 'c++2a' for 'Working draft for ISO C++ 2020' standard
note: use 'gnu++2a' for 'Working draft for ISO C++ 2020 with GNU extensions'
standard
Je crois que vous recherchez le drapeau -std = c ++ 1z