perfect-forwarding 相关问题

完美转发描述了C ++ 11函数模板的一个属性,它允许正确地将参数推导为左值或右值,并将它们以相同的形式转发给其他函数。

C++:为什么一些模板参数是右值引用而其他的不是标准算法?

例如,让我们看一下std::reduce签名: 模板< class ExecutionPolicy, class ForwardIt, class T, class BinaryOp > T reduce( ExecutionPolicy&& 政策, 前...

回答 0 投票 0

我想对我的代码提出一些建议,旨在注册服务以供重用

我想实现一个RPC服务器。 我们可以在上面注册一些方法。 例如: server.register("echo", [](){ cout << "hello" << endl; }); server.register("ad...

回答 0 投票 0

如何在 C++17 中禁用过于通用的转发构造函数并推迟到复制构造函数

如果我有使用 c++20 概念编写的简单类 #包括 #包括 模板 结构 MyVec { std::array m_vec;

回答 2 投票 0

c++如何在函数中多次使用通用引用

This question is migrated from Code Review since it is marked off-topic over there 我需要将右值引用(临时)作为参数传递给采用通用引用的函数。可以用

回答 1 投票 0

在 C++20(或更新版本)中完美转发 lambda 捕获

在 C++20/C++23 中将参数完美转发到 lambda 捕获的最干净的方法是什么?我的意思是在协程对象内部通过复制捕获右值,通过引用捕获左值: 结构...

回答 3 投票 0

使用重载的麻烦<< for std::variant

我超载了<< for an aliased std::variant (A::Var). I also have a templated function defined in a class in a different namespace C::Wrapper which just forwards its argument to an std::

回答 1 投票 0

如何从具有同质模板类型参数的完美转发函数中提取模板类型?

我希望编写一个可变参数工厂函数来转发可变数量的参数(相同类型)以构建和填充 std::vector。但是我不确定如何提取元素......

回答 2 投票 0

我应该返回一个包裹的转发参考吗?

对于下面的代码 类 my_class { // ... 模板 auto f(this Self&& self) -> Self&& { 如果(某些条件){ 扔 std::

回答 0 投票 0

是否有在方法调用中调用 std::forward 的感觉(与参数相反)?

我想知道 std::forward 在这里是否有意义。 模板 void juju(T && x) { std::forward(x).jaja(); } 我猜它没有任何意义,因为它始终是 ...

回答 1 投票 0

完美转发解释为r值参考

我的理解是ConcreteType&&是一个r值,而TemplateType&&是 "完美转发"。我想使用完美转发,但clang-tidy将其解释为rvalue ...

回答 1 投票 3

返回值的完美转发?

我重载了一个运算符[]: const Type&&operator[](int index) const { if (index >= size) { std::cout << "Error: excessive index.\n"; return 0; } else if (index & ...

回答 1 投票 2

操作员[]中的完美转发

模板 class ResourceHolder { std::unordered_map > resources; public.Resource& get(const Key& key) ..: Resource& get(const Key& key) ...

回答 1 投票 1

通过输入参数的多次传递实现完美转发

考虑下面的函数accept,它接受一个T类型的 "通用引用",并将其转发到一个解析中。 ()函数对象的lvalues和rvalues的重载:模板&...

回答 2 投票 5

您如何理解“ std :: forward只是语法糖”?是真的吗?

您如何理解“ std :: forward只是语法糖”?真的吗?如果您能在下面详细解释相关代码,我将不胜感激。根据文档(https://gcc.gnu ....

回答 3 投票 0

使用std :: forward的主要目的是什么,它可以解决哪些问题?

在完美转发中,std :: forward用于将命名的右值引用t1和t2转换为未命名的右值引用。这样做的目的是什么?这将如何影响调用的函数...

回答 6 投票 438

是“ std :: forward”和“ std :: move”不生成代码吗?

“ std :: forward”和“ std :: move”不生成代码是真的吗?我在《有效的C ++ 11/14采样器》中看到了这句话。相关代码在脚注中。如果答案是肯定的,可以...

回答 1 投票 0


通常采用可索引/可调用的线性组合

我正在尝试全局扩展并将可调用/可索引对象(在该单词的抽象数学意义上的矢量)加在一起。也就是说,我正在尝试采用对象的线性组合...

回答 1 投票 0

转换T-s时的正向非T参数

((此问题来自此答案)我正在尝试调整一个蹦床功能,该功能目前仅通过可变数量的参数传递。我想让它转换任何...

回答 2 投票 1

如何省略推导参数类型的完美转发?

假设我有一些要推导的参数类型(或几种参数类型)的函数。我也希望基于事实是右值或左值的不同行为。 ...

回答 3 投票 7

© www.soinside.com 2019 - 2024. All rights reserved.