如果 C++ 功能测试宏在 C++17 及以下版本中不存在,那它们有什么用?

问题描述 投票:0回答:1

cppreference说这些宏位于

<version>
头文件中,这是C++20,但它列出了以前版本中实现的功能,为什么?例如,如果我想在 C++20 中测试
__cpp_lib_is_final
,为什么要这样做?它是 C++20,所以我已经有了
is_final

我不明白。那么,功能测试宏在 C++20 之前的版本中不可用吗?

c++ version c++20
1个回答
0
投票

该用途适用于部分支持的编译器,即支持某些功能而不支持其他功能的编译器。

功能测试宏让您仅依赖编译器实际提供的功能。

© www.soinside.com 2019 - 2024. All rights reserved.