我定义这个类:防止对象物进行浇铸任何但是一种类型的C++
template <class T>
class pure
{
public:
pure(T const& attr) {
this->attr = attr;
}
~pure() {}
T& operator=(T const& attr) {
return attr;
}
operator T() {
return this->attr;
}
private:
T attr;
};
这是存储T
类型的值的类。当我想使用它的实例时,我得到attr
(通过将pure
转换为T
)而不是实例(pure
)本身。
我的目标是制作一个不能铸造成除attr
,即T
类型以外的任何类型的课程。
如果你的对象没有从“纯”转换为“T”,那么不要为它提供一个转换操作符。 – thecoshman 2015-04-03 12:15:21
不,我想我的纯粹不能被铸造成任何类型**除T ** – 2015-04-03 12:18:43
为什么这是一个坏问题? – 2015-04-03 12:27:53