无操作函数模板
no-op function template
我需要在C++中实现一个保留所有类型扩展(const,rvalue ref,lvalue ref)的no-op。我可以执行以下操作吗?
template<class T>
T && noop (T && t) { return std::forward<T> (t); }
并称它为喜欢
... noop (value) ...
(即使用类型推断)? 即noop (value)
是否具有与value
完全相同的类型?
是的,确实如此。但是,这与在客户端代码本身中调用 std::forward 没有什么不同(除了使用 std::forward 时没有自动模板参数推导)。
相关文章:
- 当函数模板参数是具有默认参数的类模板时,函数模板参数的推导如何执行
- 将重载的成员函数传递给函数模板
- C++17中函数模板中的静态数组初始化(MSVC 2019)
- 为什么 gcc 和 clang 为函数模板的实例化生成不同的符号名称?
- 具有常量引用参数的函数模板专用化
- std::span<const T> 作为函数模板中的参数
- 如何编写一个完美的缩写函数模板?
- 仅在函数模板中为那些定义了函数的类型执行函数
- 如何在C++中伪造虚拟可变参数函数模板?
- 以下代码中的函数模板有什么问题?
- 在 C++20 中是否不再允许在 std 中对程序定义类型的函数模板进行专用化?
- 将显式实例化的函数模板与转换匹配
- 使用定义函数模板别名
- 函数模板返回类型
- 函数模板和操作
- 在集合上运行的函数模板,该集合具有默认的"transform"函数,该函数不执行任何操作
- 无操作函数模板
- 操作可变参数函数模板的函数参数
- 是否可以使函数模板对不适当的类型而不是错误执行默认操作
- 接受函数模板实参的类模板,这些实参对正在定义的类的实例进行操作