我正在重写一个库,其中一个“接口”是一个全局数值变量(不问)。std :: min/std :: max与“内在样”
我与就像一个数字UDT的一个全局对象替换它,支持operator int() const
一些内部消费者我的图书馆使用std ::的最大与全球。他们将得到的编译错误,因为的std ::最大只要求单一T.
例如:
PseudoInt x; // in library
// in consumer
void conumser()
{
int y = std::max(5, x); // will error now, because int and PseudoInt are not the same T
}
我想最佳喜欢我的消费者没有通过做这样的事情std::max<int>(5, x)
反应。
我在这里运气不好吗?
为什么不写你自己的最大函数,需要一个'PseudoInt'然后把它交给'std :: max'? – NathanOliver
也许如果你创建一个隐式构造函数从int到该数据类型和std :: max的模板专门化?但是用int作为模板参数的显式调用将不起作用。 – languitar
不要添加隐式构造函数! EW! –