2017-09-20 2 views
4

을 사용할 수 없습니다, 나는 다음과 같이 명령 줄에서 내 코드를 구축 할 수 있습니다. 내가 가지고 :사과 LLVM 9.0 플래그 C++ 17

error: invalid value 'c++17' in '-std=c++17' 

내 LLVM-g의 ++의 버전은 다음과 같습니다

[[email protected]] 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 

과 동시에, 나는 (17 C++로) 엑스 코드에 내 코드를 구축 할 수 있습니다

. Xcode setting

답변

1

난 당신이 = C++ 1Z

+0

먼저 감사드립니다. 내가 명령 줄 플래그 -std = C++ 1Z를 사용하면 좀 컴파일 오류가 발생했습니다. 그러나 Xcode에서 잘 작동하므로 혼란 스럽습니다. – Fausturs

3

-std=c++17가 연타 5.0.0에 추가 된 플래그 -std 찾고있는 생각 (- 이달 초 - 아주 최근에 출시 된 http://releases.llvm.org/5.0.0/tools/clang/docs/ReleaseNotes.html 참조).

이 페이지 https://en.wikipedia.org/wiki/Xcode#Latest_versions은 엑스 코드 9.0은 여전히 ​​LLVM/연타 4.0 버전을 사용하고 믿고 나타납니다. 이것은 현재 실행중인 오류와 일치합니다.

+0

와우 감사합니다. 질문 하나 더 드릴까요? Xcode에 사용 된 플래그는 무엇입니까? 내가 엑스 코드에서 "표준 = C++ 17"를 선택하면 그것은 "표준 = C++ 1Z"을 사용할 것인가? 내 코드는 엑스 코드에서 잘 작동 얻을 이유 "C++ 1Z"을 명령 줄에서 컴파일 에러? – Fausturs

+0

"Xcode에서 사용 된 플래그"가 무슨 의미인지 이해하지 못합니다. (내 코드는 자동 : [a, b, c] = sometuples; 하지만 'C++ 1z'가 작동하는 이유는 C++ 17이 완성되기 전에'C++ 1z '가'C++ 17'에 사용되었습니다. 컴파일러는 이미 17 확정 된 몇 가지 기능을 구현했지만, 마지막 "표준"이후'C++ 17' 아직 돌에 설정되지 않은, 아직 발표되지 않았다. 대부분의 C++ 17 기능은 최신 버전의 GCC (예 : 7.X 시리즈)와 Clang (예 : 4.X 시리즈)의'C++ 1z '에서 사용할 수 있습니다. 왜냐하면 개발자는 새로운 확인 된 기능 . 귀하의 코드 예제는 제 명령 행에서'-std = C++ 1z'과 함께 작동합니다. – ddavis

+0

^^ 'clang ++ -std = C++ 1z' ​​ – ddavis