在库代码中,我有:
class VeryStrictClass
{
public:
template<typename UNKNOWN_TYPE>
VeryStrictClass& operator<<(const UNKNOWN_TYPE & value) {
struct can_not_format_unknown_type {};
can_not_format_unknown_type error = value;
}
};
没有办法重新实现它。
这禁止声明像
template <typename MsgType>
/*check toString existance*/
VeryStrictClass& operator << (VeryStrictClass& o, const MsgType* msg)
{
BOOST_ASSERT(msg != NULL);
return o << msg->toString();
}
toString() 不是虚拟的。
我有很多类似的课程要放入 VeryStrictClass。有没有办法绕过这个限制?