使用 CLion、CMake 和 VS2017 编译器编译 C++17

Compiling C++17 using CLion, CMake and the VS2017 compiler

创建新的 CLion 项目并选择 C++17 语言标准时,C++17 代码将无法编译。 初始CMakeLists.txt文件如下:

cmake_minimum_required(VERSION 3.8)
project(optional2)
set(CMAKE_CXX_STANDARD 17)
set(SOURCE_FILES main.cpp)
add_executable(optional2 ${SOURCE_FILES})

要编译 C++17 代码,我必须将以下行添加到 CMakeLists.txt 文件中:

add_compile_options(/std:c++latest)

这是在 CMAKE / CLion 中添加此编译选项的正确方法(and/or 唯一方法吗?)?

使用的 C++ 编译器是 Windows 10 工作站 运行 CLion 2017.2 上的 nmake.exe vs2017 cl.exe。

CMAKE_CXX_STANDARD变量用于初始化CXX_STANDARD属性.

来自 属性 文档:

For compilers that have no notion of a standard level, such as MSVC, this has no effect.

对于使用普通 CMake 的 Visual Studio 2017,C++17(默认为 C++14)的规范方式是:

target_compile_options(optional2 PRIVATE /std:c++latest)