Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无操作功能模板 我需要在C++中实现一个NOP,它保存所有类型的扩展(const,rValueRf,LValeReF)。我可以这样做吗 template<class T> T && noop (T && t) { return std::forward<T> (t); }_C++_Templates - Fatal编程技术网

无操作功能模板 我需要在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) ...