私は統合CMake 3.8をサポートするVS 15.3を使用しています。特定のコンパイラごとにフラグを書くことなくC++ 17をどのようにターゲットできますか?私はCMakeのは「/ STD:C++最新の」追加すると予想CMakeでC++ 17を有効にする方法
# https://cmake.org/cmake/help/latest/prop_tgt/CXX_STANDARD.html
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# expected behaviour
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++lastest")
:私の現在のグローバル設定が動作しないVSソリューションファイルを生成するとき、または同等物を、ないC++ 17個のフラグが見つからなかった、の結果コンパイラエラー:
C1189 #error: class template optional is only available with C++17.
CMakeのは、それぞれの特定のコンパイラのフラグを記述する必要がなくなるわけではありません。 – VTT
"VS 15.3"では、Visual Studio 2017プレビュー3を意味しますか?それとも、Visual Studio 2015のアップデート3(C++ 17をサポートしていない場合)を意味しますか? –
@Someprogrammerdude 'std :: optional'機能を使用しています。これはCMakeListsに' '/ std:C++ lastest ''フラグを手動で追加する場合に使用できます。 – MiP