我开始学习 C++ 中的 traits 和 templates。 我想知道是否可以为有符号/无符号整数类型创建模板。 这个想法是普通类可能会为有符号整数类型实现,而变体为无符号整数类型实现。 我尝试过:
template <typename T>
class FXP<T>
{ ... };
template <typename T>
class FXP<unsigned T>
{ ... };
但是这段代码无法编译。
我甚至遇到了以下问题:
std::is_integral
std::is_signed
std::is_unsigned
那么,我该如何将它们付诸实践以定义一个仅支持这两种变体的类呢?