move-semantics 相关问题

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

MPI和移动语义

将C ++ 11 move语义与MPI对象一起使用有多安全?我们来看一个小例子:#include #include int main(){MPI_Init(nullptr,nullptr); int ...

回答 1 投票 0

使用rd引用参数移动std :: mo的原因

[我正在读一本关于用C ++实现的数据结构的书,我不懂代码片段,它是向量类的一部分void push_back(object && x){//做一些对象[...

回答 2 投票 4

[c ++ 17在编译时将带有已删除副本构造函数的类添加到std :: vector

下面是我用删除的副本构造函数和副本赋值运算符定义的类。这是唯一必须做的假设。 class MyClass {public:显式MyClass(int ...

回答 1 投票 0

为什么复制和移动构造函数最终使用相同数量的内存副本?

这里的问题是要了解通过函数的返回对象初始化向量时是否调用了复制或移动构造函数。使用探查器检查malloc显示类似的内存副本...

回答 1 投票 0

了解C ++标准的移动语义

我正在努力弄清移动语义。我很困惑,因为我找不到为什么我们需要它,以及如何理想地使用它。例如,当我们通过std :: move,...

回答 1 投票 1

C ++入门5版:将临时shared_ptr传递给函数[duplicate]

关于C ++入门5版。第12章动态内存:考虑以下在shared_ptr上运行的函数://当进程被称为void时,将创建并初始化ptr void process(shared_ptr&...

回答 1 投票 1

Powershell移动项目不会从源代码中删除某些3D png文件

我有一个Powershell脚本,它发出Move-Item命令来将某些3D CAD目录和子目录从一个网络共享移动到另一个网络共享。每天大约有300个父文件夹。我拥有最多的...

回答 1 投票 1

是否有一种方法可以使Rust闭包仅将一些变量移入其中?

为了确保不陷入XY问题,这是我要尝试做的事情:我有一个带有设置的通用结构以及一个我想调整和使用的额外变量设置。对于所有...

回答 1 投票 3


使用导出的右值引用初始化基数

在以下代码中:struct A {A(){} A(A &&){printf(“ moving A \ n”); }〜A(){printf(“破坏A \ n”); };结构B:A {B(){} B(B &&){printf(“移动B \ ...

回答 1 投票 3

在仅移动类型派生的类中定义析构函数,当使用std :: vector的emplace_back或push_back创建时,会产生编译时错误

从以下代码中删除注释会导致编译时错误。似乎在派生类中定义析构函数会导致在emplace_back #include ] >>>> 使用static_assert验证对CopyConstructible和MoveConstructible 的期望: static_assert(!std::is_copy_constructible<A>{}); static_assert( std::is_move_constructible<A>{}); static_assert(!std::is_copy_constructible<B>{}); static_assert(!std::is_move_constructible<B>{}); 当声明~B()时,编译器将隐式删除B(B&&)。您可以使用显式声明覆盖该行为: B(B&&) = default; 向std::vector添加任何内容可能会导致整个向量的重新分配。为了使此课程成功,类需要提供以下任一方法: 复制构造函数 nomove移动构造函数 当存在~B时,您的班级B都不提供。通过using子句,它知道如何移动B(A&&),但这不是move构造函数。

回答 2 投票 6

将赋值运算符实现为“销毁+构造”是否合法?

我经常需要为“原始”资源句柄实现C ++包装,例如文件句柄,Win32 OS句柄等。这样做时,我还需要实现移动运算符,因为默认的...

回答 1 投票 4

将赋值运算符实现为“销毁+构造”是否合法?

我经常需要为“原始”资源句柄实现C ++包装,例如文件句柄,Win32 OS句柄等。这样做时,我还需要实现移动运算符,因为默认的...

回答 1 投票 4


我是否可以将已移动的变量标记为不再可用,如果使用它,会收到编译器警告?

有时在函数中,我使用std :: move传递不再使用的变量,像这样:void f(std :: vector v){for(int i:v){std :: cout << i <

回答 2 投票 3

难道的std :: string转移构造实际移动?

所以在这里我得到了一个小的测试程序的:#include #包括 #包括 #包括 类测试{市民:测试(常量的std ::矢量 & 一种_,...

回答 1 投票 21

对于左值和右值引用交换功能

我在写这具有移动构造函数和移动赋值操作符的向量类。从除了我有这样的交换功能:模板 空载体 :: swap_(向量'...

回答 1 投票 1

难道移动的构造要调用的std ::移动()?

我跑进我们的项目的一些这样的代码:A级{市民:A(A && OBJ):valid_(假),data_中(obj.data_){} // ...无效的print(){为(自动X: data_中的数据)COUT <

回答 2 投票 1

移动语义 - 那是什么一回事呢? [重复]

可能重复:有人可以解释移动语义给我吗?可能有人点我一个很好的来源或解释在这里什么是移动语义?

回答 4 投票 10

在处理数据流时如何有效地构建向量和该向量的索引?

我有一个struct Foo:struct Foo {v:字符串,//对这个问题不重要的其他数据}我想处理数据流并将结果保存到Vec 并创建索引...

回答 3 投票 10

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