无操作功能模板

时间:2012-11-29 07:55:34

标签: c++ templates

我需要在C ++中实现一个no-op,它保留所有类型扩展(const,rvalue ref,lvalue ref)。我可以这样做吗?

template<class T>
T && noop (T && t) { return std::forward<T> (t); }

并将其称为

... noop (value) ...

(即使用类型推断)?即noop (value)的类型与value完全相同吗?

1 个答案:

答案 0 :(得分:3)

是的。但是,它与在客户端代码本身中调用std :: forward没有什么不同(除了使用std :: forward,没有自动模板参数推断)。