我需要在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
完全相同吗?
答案 0 :(得分:3)
是的。但是,它与在客户端代码本身中调用std :: forward没有什么不同(除了使用std :: forward,没有自动模板参数推断)。