cmake target_compile_features C ++ 17

时间:2018-02-25 16:20:45

标签: cmake c++17

坚持现代CMake的最佳实践我想使用此命令而不是标志或基于集合的命令。但是,我似乎无法使它工作,因为我找不到新引入的C ++ 17功能的相关命令。对于C ++ 14,我可以按照以下几行做点什么

target_compile_features(Foo
  PUBLIC
    cxx_strong_enums
  PRIVATE
    cxx_lambdas
)

我想我要问的是,在cmake中启用最新C ++标准的正确方法是什么,而不需要回到传统的cmake

1 个答案:

答案 0 :(得分:2)

您正朝着写入​​方向前进,您可能只需要更新您的CMake版本。

它始于CMake Version 3.8

  

编译功能现在可以识别C ++ 17.除了cxx_std_17元功能之外,还没有枚举任何特定功能。

对于VS,您需要例如至少是CMake版本3.10。

参考文献