is_compile_time_c_string的实现?

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

我想检测一个参数是否是编译时 c 字符串:

template <class T>
consteval bool is_compile_time_c_string(T&& t) {
   // magic
}

有人建议 builtin_constant_p() 但它似乎是 broken.

我想知道给定 C++20,这可能吗?我可以使用内置的宏/模板/编译器,只要它可以在编译时确定参数是否为 c 字符串。

谢谢!

c++ g++ c++20 clang++
1个回答
0
投票

在完全兼容 C++23 的编译器上,一个假设的解决方案是

if consteval

constexpr bool is_constexpr(auto const&){
    if consteval
       {return true;}
    else
       {return false;};
};
© www.soinside.com 2019 - 2024. All rights reserved.