c++ - 为几个可能的参数(类型名)专门化类

标签 c++ templates c++11

我有一个模板类,唯一的模板参数是类型名。

template<typename T>
class Reader{
    ...
}

现在我想为每个整数类型专门化它,比如:

template<typename T - integral>
class Reader{
    //another code
}

我怎样才能做到这一点?

最佳答案

你可以只是一个额外的默认 bool 参数:

template<typename T, bool IsIntegral = std::is_integral<T>::value>
class Reader{ // primary template, used for non-integrals
    ...
}

template<typename T>
class Reader<T, true> { // specialization for integral types
    ...
}

关于c++ - 为几个可能的参数(类型名)专门化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12467279/

相关文章:

c++ - CppCMS vs. C++ 服务器页面 vs. Wt

c++ - 默认模板参数可以对应于特化吗?

c++ - 指向模板参数中重载函数的 MSVC 指针

c++ - 如何以与 constexpr 兼容的方式访问可变参数模板参数?

c++ - push_back 到 vector 时出现运行时错误

c++ - 在没有 root 权限的情况下使用 UDP 套接字

c++ - 模板运算符似乎因歧义而失败

c++ - 读取大文件的小块(C++)

c++ - 从真值到 std::true_type 的隐式转换

c++ - 每个范围类型的模板特化