perfect-forwarding

perfect-forwarding

文章 0 浏览 3

std::forward>(f) 的含义

我对 https://koturn.hatenablog.com 中编写的代码有疑问/条目/2018/06/10/060000 当我传递左值引用时,如果我不使用 std::decay_t 删除引用,则会收…

网名女生简单气质 2025-01-13 04:14:49 0 0

转发参数

我有一个形式的构造: template void do_something_with_it(T*&& ptr) { //here I can do something with this ptr } template void do_something_wit…

谜兔 2025-01-02 14:19:47 1 0

完美转发对象成员

假设我有两个 struct: struct X {}; struct Y { X x; } 我有函数: void f(X&); void f(X&&); 如何编写一个采用 Y& 或 Y& 的函数 g() ;& 但分别完美…

岁月苍老的讽刺 2024-12-22 07:08:23 3 0

std::forward 如何工作,特别是在传递左值/右值引用时?

可能的重复: std::forward 的主要用途是什么以及它解决了哪些问题? 我知道什么确实如此,以及何时使用它,但我仍然无法理解它是如何工作的。请尽可…

捂风挽笑 2024-12-21 19:42:43 2 0

std::forward 和带有非常量引用参数的构造函数

在右值引用简介中,完美转发被提出作为将右值 5 转发到具有非常量引用参数的构造函数的理想解决方案。 但是: #include #include #include template s…

南薇 2024-12-19 08:04:08 1 0

为什么一个完美的转发功能必须模板化?

为什么以下代码有效: template void foo(T1 &&arg) { bar(std::forward(arg)); } std::string str = "Hello World"; foo(str); // Valid even though…

欢烬 2024-12-19 00:43:07 1 0

完美转发和 std::tuple (或其他模板类)

我在完美转发方面遇到了一些困难。 这是我目前的理解水平:胶水模板+右值引用+std::forward和一个特殊的神奇模式被激活,其中模板推导规则的含义与通…

三生一梦 2024-12-18 05:14:32 2 0

我如何制作一个允许所有左值引用、右值引用和初始化器列表的模板化构造函数?

我正在尝试设计一个具有两个大序列向量的类。 std::vector factory() { return std::vector{1,2,3}; // it actually generates a large sequence of d…

冷月断魂刀 2024-12-13 13:52:17 3 0

将可变参数宏转换为可变参数模板函数?

给定以下形式的可变参数宏: #define MY_CALL_RETURN_F(FType, FId, ...) \ if(/*prelude omitted*/) { \ FType f = (FType)GetFuncFomId(FId); \ if(…

断爱 2024-12-01 08:50:18 7 0

make_unique 完美转发

为什么标准 C++11 库中没有 std::make_unique 函数模板?我觉得 std::unique_ptr p(new SomeUserDefinedType(1, 2, 3)); 有点啰嗦。下面这样不是更好…

撩发小公举 2024-11-29 09:16:15 3 0

这段代码合法吗? (C++0x 移动语义)

我很好奇这段代码在 C++0x 中是否合法。具体来说,函数 move_it() 中声明的对象是否会正确移动到 main() 中声明的对象? #include #include #include …

那些过往 2024-11-25 09:55:47 3 0

实现具有常量正确性的可变参数 zip 函数

我正在尝试实现 zip 功能。 zip 的参数均是 wrapped,其中 Ti 因参数而异。 zip 采用这些 wrapped 并生成 wrapped> >,或者换句话说,对其参数的引用…

淡淡的优雅 2024-11-19 02:27:16 7 0

使用 decltype 作为尾随返回类型的正确方法

我经常看到这种形式的例子: template auto add(T&& t, U&& u) -> decltype(std::forward(t) + std::forward(u)) { return std::forward(t) + std::fo…

若沐 2024-11-03 21:10:45 8 0

T&&; 是什么意思? (双&符号)在 C++11 中意味着什么?

我一直在研究 C++11 的一些新功能,我注意到的一个是声明变量时的双 & 符号,例如 T&&变量。 首先,这个野兽叫什么?我希望谷歌允许我们像这样搜索标…

予囚 2024-10-28 02:48:16 10 0

为什么 std::forward 放弃 constexpr-ness?

由于未声明 constexpr,std::forward 将放弃将参数转发到的任何函数的 constexpr 性。 为什么 std::forward 没有声明 constexpr 本身,以便它可以保留…

烟织青萝梦 2024-10-18 22:49:10 8 0
更多

推荐作者

忆悲凉

文章 0 评论 0

hgfg1645

文章 0 评论 0

qq_qLPLYi

文章 0 评论 0

戏舞

文章 0 评论 0

殊姿

文章 0 评论 0

﹂绝世的画

文章 0 评论 0

更多

友情链接

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文