我想使用enable_if_t
根据类型更改函数定义。类似于以下内容:
#include<type_traits>
template<typename T> struct A;
template<typename T>
struct A{
std::enable_if_t<std::is_arithmetic<T>::value, bool>
test()
{
return true;
}
std::enable_if_t<!std::is_arithmetic<T>::value, bool>
test()
{
return false;
}
};
您可以尝试
template <typename U = T>
std::enable_if_t<std::is_arithmetic<U>::value, bool>
test()
{ return true; }
template <typename U = T>
std::enable_if_t<!std::is_arithmetic<U>::value, bool>
test()
{ return false; }