move-semantics

move-semantics

文章 0 浏览 1

当最后一次使用可移动对象时,编译器是否会自动使用移动语义?

我最近一直在研究右值引用,并得出结论,在将创建对象的完整副本的任何地方使用按值传递是非常有利的(有关完整的理由,请参见例如 添加右值引用运算…

愛上了 2024-11-09 12:16:56 1 0

按值返回时值参数是否隐式移动?

考虑以下函数: Foo foo(Foo x) { return x } return x 会调用复制构造函数还是移动构造函数吗? (让我们把 NRVO 放在一边。) 为了进行调查,我编写…

小清晰的声音 2024-11-07 12:18:08 0 0

将 unique_ptr 从一个向量移动到另一个向量

我想将存储在未排序向量中的 unique_ptr 移动到另一个向量,该向量将包含已排序的指针向量。 移动 unique_ptr 肯定不会自动删除第一个向量中的元素吗…

梦里的微风 2024-11-03 17:40:21 1 0

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

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

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

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

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

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

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

#include &lttype_traits&gt template&ltclass T&gt typename std::remove_reference&ltT&gt::type&amp&amp move(T&amp&amp v) { return v } void mai…

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

为什么 std::move 使用 std::remove_reference 实现?

我不太明白 std::move 函数 template &ltclass T&gt typename remove_reference&ltT&gt::type&amp&amp move(T&amp&amp a) { return a } 为什么要 remo…

难理解 2024-10-29 11:31:40 0 0

C++11 - 区分右值指针

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

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

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

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

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

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

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

烟织青萝梦 2024-10-18 22:49:10 2 0

如果我们已经有了 RVO,移动语义会提供什么优化?

据我了解,添加移动语义的目的之一是通过调用特殊构造函数来复制“临时”对象来优化代码。例如,在这个答案中我们看到它可以用来优化诸如字符串 a = x…

戈亓 2024-10-18 01:43:12 2 0

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

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

隱形的亼 2024-10-17 08:39:00 4 0

使交换更快、更易于使用且异常安全

我昨晚无法入睡,开始思考 std::swap。这是熟悉的 C++98 版本: template &lttypename T&gt void swap(T&amp a, T&amp b) { T c(a) a = b b = c } 如…

爱要勇敢去追 2024-10-15 05:18:23 2 0

实现 fstream 移动的 C++0x 库

找到如何返回 fstream (C++0x) 的答案后,我现在想知道是否有一个当前的 c++0x 库可以实现 fstream 的移动(甚至交换)(如 gcc (27.9) 没有)。我更…

盗梦空间 2024-10-15 03:37:09 1 0

是否有必要从不同的类定义移动构造函数?

请考虑以下问题: struct X { Y y_ X(const Y &amp y) :y_(y) {} X(Y &amp&amp y) :y_(std::move(y)) {} } 是否有必要定义像第二个这样的构造函数才能…

话少心凉 2024-10-15 02:14:24 3 0
更多

推荐作者

1CH1MKgiKxn9p

文章 0 评论 0

ゞ记忆︶ㄣ

文章 0 评论 0

JackDx

文章 0 评论 0

信远

文章 0 评论 0

yaoduoduo1995

文章 0 评论 0

霞映澄塘

文章 0 评论 0

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