无操作功能模板 我需要在C++中实现一个NOP,它保存所有类型的扩展(const,rValueRf,LValeReF)。我可以这样做吗 template<class T> T && noop (T && t) { return std::forward<T> (t); }
(即使用类型推断)?也就是说,无操作功能模板 我需要在C++中实现一个NOP,它保存所有类型的扩展(const,rValueRf,LValeReF)。我可以这样做吗 template<class T> T && noop (T && t) { return std::forward<T> (t); },c++,templates,C++,Templates,(即使用类型推断)?也就是说,noop(value)是否具有与value完全相同的类型?是的。但是,这与在客户机代码本身中只调用std::forward没有什么不同(除了std::forward没有自动的模板参数推导)。我也在想同样的事情,为什么不首先调用std::forward,只是猜测一下,但是可能noop是在一个更大的系统的掩护下使用的,作为一个特定操作的许多可能实现之一(即在某些条件下做事情,在其他条件下noop)。是的,它应该成为模板f(T&&T,std::false_type){…,
noop(value)
是否具有与value
完全相同的类型?是的。但是,这与在客户机代码本身中只调用std::forward没有什么不同(除了std::forward没有自动的模板参数推导)。我也在想同样的事情,为什么不首先调用std::forward
,只是猜测一下,但是可能noop
是在一个更大的系统的掩护下使用的,作为一个特定操作的许多可能实现之一(即在某些条件下做事情,在其他条件下noop
)。是的,它应该成为模板f(T&&T,std::false_type){…
,模板f(T&&T,std::true_type){…}
一对函数。
... noop (value) ...