namespace datail
{
template<auto t>
struct can_compile_time_calculate_helper
{
};
template<typename T, typename = void>
struct can_compile_time_calculate_imple :std::false_type
{
};
template<typename T>
struct can_compile_time_calculate_imple<T
, std::void_t<can_compile_time_calculate_helper<T::get ()>>
> :std::true_type
{
};
}
template<typename T>
struct can_compile_time_calculate :datail::can_compile_time_calculate_imple<T>
{
};
template<typename T>
inline static bool can_compile_time_calculate_v = can_compile_time_calculate<T>::value;
struct Check
{
static constexpr decltype(auto) get ()
{
return 0;
}
};
int main ()
{
std::cout << can_compile_time_calculate_v<Check>;
return 0;
}
c++如何判断一个表达式是否可在编译期得解
最新推荐文章于 2022-12-11 19:14:31 发布