- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经编写了一些使用 c++17 的 charconv 的代码,我可以用 g++ 9 编译得很好。即使我在我的 CMakeLists.txt 中将 std 设置为 c++17,cmake 坚持使用不支持 charconv 的 c++7.5。
如何告诉 cmake 我需要一个支持 charconv 的编译器?我在 CMAKE_CXX_KNOWN_FEATURES 中看不到任何开关。
这是我的 CMakeLists.txt
cmake_minimum_required(VERSION 3.17)
file(GLOB CLIENT_SRC "srcs/*.cpp")
include_directories("includes")
add_executable(client ${CLIENT_SRC})
set_target_properties(client PROPERTIES OUTPUT_NAME "distff-client")
target_compile_features(client PUBLIC cxx_std_17 )
最佳答案
不是 cmake 的人...我真的不明白 cmake 在这里编译功能的方法。但在 C++ 中,一般来说,我们现在使用功能测试宏来检测功能的存在。您正在专门寻找 __cpp_lib_to_chars
.
我想你想要编译这个程序:
#if __has_include(<version>)
# include <version>
#elif __has_include(<charconv>)
# include <charconv>
#else
# error "neither <version> nor <charconv> available to test"
#endif
#ifndef __cpp_lib_to_chars
# error "tochars not implemented"
#endif
这可能可以概括为您可以 configure_file()
的任意库功能(只需提取 header 名称和宏名称,并且可能还检查具有所需最小值的宏值(value))。
不管怎样,如果你try_compile()
生成的源文件,你可能会得到你想要的行为?
关于c++ - c++17 的 charconv 是否有 cmake 编译功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61444823/
我已经编写了一些使用 c++17 的 charconv 的代码,我可以用 g++ 9 编译得很好。即使我在我的 CMakeLists.txt 中将 std 设置为 c++17,cmake 坚持使用不支
最近想用from_chars来自 C++17。 看了 http://en.cppreference.com/w/cpp/utility/from_chars并在此页面上找到了该代码: #include
我是一名优秀的程序员,十分优秀!