【发布时间】:2017-04-04 13:58:35
【问题描述】:
让我们说这是一个非零能类型的裸骨。
template<typename T>
struct NonZero {
T val;
};
我的问题是是否可以为 NonZero 创建一个构造函数,该构造函数采用 T 类型的文字并静态检查它是否非零,然后将其分配给 val。
NonZero<int> n( 0 ); // compilation error
NonZero<int> n( 1 ); // ok
或者有没有更好的方法来归档非零类型?
【问题讨论】:
-
据我了解,具体实现只能通过模板特化来提供;这是我们想要的吗?
-
我想知道是否有更简单的方法,因为
NonZero<int> n( var )也应该是可能的。