基于类型特征的更改功能定义? [重复]

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

我想使用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;    
    }

};

当前为it cannot compile at all

c++ c++17 sfinae typetraits
1个回答
0
投票

您可以尝试

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; }
© www.soinside.com 2019 - 2024. All rights reserved.