相关疑难解决方法(0)

如何使用enable_if根据类的模板参数启用成员函数

在代码中:

template<class T>
struct is_builtin
{
    enum {value = 0};
};

template<>
struct is_builtin<char>
{
    enum {value = 1};
};

template<>
struct is_builtin<int>
{
    enum {value = 1};
};

template<>
struct is_builtin<double>
{
    enum {value = 1};
};

template<class T>
struct My
{
    typename enable_if<is_builtin<T>::value,void>::type f(T arg)
    {
        std::cout << "Built-in as a param.\n";
    }


    typename enable_if<!is_builtin<T>::value,void>::type f(T arg)
    {
        std::cout << "Non - built-in as a param.\n";
    }
};

struct A
{
};

int main()
{
    A a;
    My<int> …
Run Code Online (Sandbox Code Playgroud)

c++ templates metaprogramming sfinae

12
推荐指数
1
解决办法
6411
查看次数

标签 统计

c++ ×1

metaprogramming ×1

sfinae ×1

templates ×1