Я использую VS 15.3, который поддерживает интегрированный CMake 3.8. Как настроить таргетинг на С++ 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")
Я ожидал, что CMake добавит "/std: С++ lastest" или эквиваленты при создании файлов решений VS, но не было найдено никаких флагов С++ 17, что привело к ошибке компилятора:
C1189 #error: class template optional is only available with C++17.