最佳模板参数“更改最大”功能的类型?

时间:2012-08-08 03:26:03

标签: c++ c++11

我想写一个带参考x和值y的泛型函数,如果y大于x,则将x赋给y。 (表现至关重要)

这就是我所拥有的:

template<class X, class Y>
inline void chmax(X& x, const Y& y) { if (y > x) x = y; }

这是最好的方式吗?

我担心参数类型“const Y&amp;”,如果我把它设为“Y”会有什么区别?两种不同方式中的一种会与优化器混淆吗?如果Y是POD类型怎么办?这会强制它调用addressof,将指针传递给int,然后取消引用指针吗?

(如果两者不同,我对通用C ++答案以及C ++ 11特定答案感兴趣。)

0 个答案:

没有答案