相关疑难解决方法(0)

模板传递值或const引用或...?

我可以用这种方式编写模板化函数

template<class T> void f(T x) {...}
Run Code Online (Sandbox Code Playgroud)

或者这样

template<class T> void f(T const& x) {...}
Run Code Online (Sandbox Code Playgroud)

我猜第二个选项可以更加优化,因为它明确地避免了副本,但我怀疑它也可能因某些特定类型T(例如仿函数?)而失败.那么,什么时候应该使用第一个选项,何时使用第二个选项?还有这个boost::call_traits<T>::param_typeboost::reference_wrapper那个在我之前的问题的答案,但人们不到处使用它们,是吗?这有经验法则吗?谢谢.

c++ templates pass-by-reference pass-by-value

7
推荐指数
3
解决办法
6708
查看次数

标签 统计

c++ ×1

pass-by-reference ×1

pass-by-value ×1

templates ×1