rvalue-reference

rvalue-reference

文章 0 浏览 5

运算符重载允许使用右值捕获但不能分配给

是否可以设计以及如何为我的类 C 重载 operator+ 来实现这一点: C&& c = c1 + c2; 但这不可能: c1 + c2 = something; 编辑: 我把物体改成了小写字…

四叶草在未来唯美盛开 2024-11-05 07:02:37 8 0

构建复合对象时消除不必要的副本

我正在考虑开发一些命名参数代码,但这让我想到了一些如下代码: #include int main() { using std::make_pair; auto x = make_pair(1, make_pair(2, …

若有似无的小暗淡 2024-11-04 16:06:33 12 0

是否存在返回 RValue 引用 (&&) 有用的情况?

函数应该返回 RValue 引用是否有原因?一种技巧、技巧、习语或模式? MyClass&& func( ... ); 我知道一般情况下返回参考文献的危险,但有时我们会这样…

梦一生花开无言 2024-11-02 23:30:13 10 0

类中方法的正确使用`=delete`

以下代码片段对于取消定义类的所有其他生成的方法和构造函数是否正确? struct Picture { // 'explicit': no accidental cast from string to Picture…

栖竹 2024-11-01 22:31:28 11 0

移动语义 std::move 如何使用它

#include template typename std::remove_reference::type&& move(T&& v) { return v; } void main() { int a; move(a); } 为什么这段代码不能编译? …

清引 2024-10-30 10:48:45 8 0

右值引用参数和模板函数

如果我定义一个接受右值引用参数的函数: template void fooT(T &&x) {} 我可以使用 GCC 4.5 使用 a、ar 或 arr 来调用它: int a, &ar = a, &&arr = …

烟花肆意 2024-10-30 00:18:54 7 0

为什么在 C++0x 右值引用的前向定义中使用标识?

在右值引用简介中,forward定义如下: template struct identity { typedef T type; }; template T &&forward(typename identity::type &&a) { return…

等往事风中吹 2024-10-28 21:57:17 7 0

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

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

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

什么是 multimap::emplace() 和 move()?

我正在查看有关 multimap 的 MSDN 文档,发现它有一个成员函数 multimap::emplace()。下面是该成员函数的示例。 int main( ) { using namespace std; …

孤独患者 2024-10-27 18:40:30 8 0

C++11 - 区分右值指针

如何将变量区分为编译器构造的字符串? 例如,右值 "Hello, World" 的类型为 const char*。 const char* 本身并不意味着指针不能更改。 char* const …

南汐寒笙箫 2024-10-22 07:37:52 8 0

类、右值和右值引用

左值是绑定到确定的内存区域的值,而右值是其存在是临时的并且不一定引用确定的内存区域的表达式值。每当在需要右值的位置使用左值时,编译器都会执行…

慕巷 2024-10-21 07:58:49 9 0

如何达到“最佳”效果?带有右值的算术表达式中的运算符重载解析?

首先,我为这个过于冗长的问题表示歉意。我想不出任何其他方法来准确总结我的问题...现在讨论实际问题: 我目前正在试验 C++0x 右值引用...以下代码会…

日久见人心 2024-10-19 12:27:06 12 0

是否有一个reference_wrapper<>对于右值引用?

我想知道如何完成以下操作 void f(string &&s) { std::string i(move(s)); /* other stuff */ } int main() { std::string s; bind(f, s)(); // Error…

狼性发作 2024-10-19 05:49:13 10 0

std::string 可以重载“substr”吗?对于 rvalue *this 并窃取资源?

我突然想到,当 std::string 的 substr 操作可以从 *this 窃取分配的内存时,它对于右值来说会更有效。 N3225 的标准库包含以下 std::string 成员函数…

a√萤火虫的光℡ 2024-10-17 21:35:37 10 0

C++11 右值和带有 return 语句的移动语义

我试图理解 C++11 的右值引用和移动语义。 这些示例之间有什么区别,哪些示例不进行矢量复制? 第一个例子: std::vector return_vector(void) { std:…

隱形的亼 2024-10-17 08:39:00 13 0
更多

推荐作者

十二

文章 0 评论 0

飞烟轻若梦

文章 0 评论 0

OPleyuhuo

文章 0 评论 0

wxb0109

文章 0 评论 0

旧城空念

文章 0 评论 0

-小熊_

文章 0 评论 0

更多

友情链接

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