web-dev-qa-db-fra.com

apple llvm 9.0 ne peut pas utiliser le drapeau c ++ 17

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

6
Fausturs

-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.

5
ddavis

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
1
MCCCS

Je crois que vous recherchez le drapeau -std = c ++ 1z

1
Lambo