move-semantics 相关问题

移动语义是一种编程语言功能,当源对象是临时对象或其他过期对象时,允许复制操作被更有效的“移动”替换。

在 x 值容器上进行适当的范围循环

由于 RVO 是标准保证,因此通常具有容器返回功能,例如: std::function get_elements() { ... } 在这种情况下,我见过两种风格的 range-for ite...

回答 0 投票 0

移动唯一指针 - cppreference 上的未定义行为?

我有一个后续问题:Move unique_ptr: reset the source vs. destroy the old object 为了快速总结原始问题,cppreference 上有这个示例代码: 结构...

回答 2 投票 0

如何在函数返回期间使用 std::string 的移动语义? [重复]

可能重复: C++11 右值和移动语义混淆 我认为正确的是 std::string GetLine() { 标准::字符串海峡; std::getline(std::cin, 海峡); 返回 std::move(str); }...

回答 3 投票 0

移动语义对 C++ 中数据结构的影响

我正在创建一个 stl 双端队列作为 unique_ptr 的类成员,并在其中一个类成员函数中返回带有移动语义的双端队列。我不确定班级成员d的状态...

回答 0 投票 0

无法从 initializer_list 移动的解决方法?

方便的 initializer_list 语法似乎以无法移动列表成员为代价,创建了不必要的副本。 结构A { // 一些成员是动态资源...

回答 1 投票 0

移动局部变量没问题,但是移动它的局部变量地址一定是编译时错误?为什么我没有收到错误信息?

我正在观看 herb sutter cpp2 的视频,其中说移动局部变量的地址是 C++ 中的编译时错误,但是当我尝试移动局部变量的地址时,我没有得到...

回答 0 投票 0

了解构造函数

LongNumber::LongNumber() : number_{0} {} LongNumber::LongNumber(const LongNumber& copyNum) : number_{copyNum.number_} {} LongNumber::LongNumber(LongNumber&& num) : number_{num.number_} ...

回答 0 投票 0

Boost.Asio - 在调用之前使用 std::move on handler

我对我经常看到的 Boost.Asio 习惯用法感到困惑 - 像这样调用处理程序(函数对象): std::move(处理程序)(param1, param2); 这样写的原因是什么?我的理解...

回答 1 投票 0

使用 std::vector 移动语义

我有一个关于 C++ 中移动语义的问题。看这个例子: 巴克类 { 民众: Buck(std::vector param) : 数据{param} {} std::vector 数据; }; 内部主要...

回答 1 投票 0

什么时候调用移动构造函数而不是复制构造函数?

我阅读了 Microsoft 教程(位于此处:https://learn.microsoft.com/en-us/cpp/cpp/move-constructors-and-move-assignment-operators-cpp?view=msvc-170)关于移动构造函数和移动赋值...

回答 3 投票 0

我对 C++ 中移动语义的心智模型很困惑

在 C++ 中使用移动语义时,我对代码的哪一部分声称数据“所有权”的概念感到困惑。 我收到双重免费错误,这对我来说没有意义。为什么我...

回答 0 投票 0

我应该调用void构造函数来重置移动语义中的对象吗?

据我所知,void构造函数的目的是将所有元素从选择状态重置到正确的新生状态,而这一状态对我来说是相当累赘的,因为我需要在从rvalue中窃取数据后再做......

回答 1 投票 -1

将rvalue引用传递给类构造函数有什么意义?

好吧,我有一个类,MyClass,我想用一个ints的向量来构造这个类。我想用一个ints的向量来构造这个类。我想把这个向量移动到对象中。这个类是没有模板的。 class Myclass { public: ...

回答 1 投票 0

如何强制std::vector使用移动构造函数而不是复制构造函数?

我想在我的应用程序中使用移动语义,而不是复制数据。以下是代码: using namespace std; struct TestData { TestData(const TestData&) = delete; TestData& operator=(......

回答 1 投票 0

如何将一个 std::vector 移动到另一个 std::vector 上?

假设我有一个std::vector的 从和std::向量 to,其中 T 是一个不可复制但可移动的类型,to 可能是空的,也可能不是。我希望所有from中的元素都被追加到to之后。...

回答 1 投票 0

在异步操作中移动复制字符串的最佳方法?

考虑到下面的例子,在异步操作中,哪种方法是最好的movcopycapture字符串的方法? 在Session中传递为&是一个好主意吗? void Client::connect(const std::string&...)

回答 2 投票 0

BOOST_STRONG_TYPEDEF和移动语义。

在我看来,BOOST_STRONG_TYPEDEF不支持移动语义(没有移动ctorassignment)。这只是一个疏忽(没有人更新旧的宏)还是有更根本的原因......

回答 1 投票 1

如何从函数中返回一个具有String类型字段的结构的Vec?

我正在做一个lexer,它的函数lex定义如下。/ ### lex / 将由/`scan_token`生成的标记推送到`self.tokens` fn lex(&mut self) -> Vec

回答 1 投票 0

如何从函数中返回一个具有String类型字段的结构的Vec?

我正在开发一个lexer,它有一个函数lex,它应该把一个扫描过的标记的向量移动到一个主程序中,然后生成一个解析器来解析这些标记,定义如下。/ ### lex ...

回答 1 投票 0

操作员[]中的完美转发

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

回答 1 投票 1

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