Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
具有移动构造函数和赋值的类的默认复制构造函数和赋值
假设我有这门课 class Test public Test AFAIK 编译器提供默认的复制构造函数和赋值运算符 它们将其他实例的每个成员分配给当前实例 现在我添加移动构造函数和赋值 class Test public Test Test
c
C11
movesemantics
我可以对移出的对象做什么?
该标准是否准确定义了对象被移出后我可以对其执行的操作 我曾经认为对移出的对象所能做的就是破坏它 但这还不够 以函数模板为例swap标准库中定义 template
c
C11
variableassignment
SWAP
movesemantics
返回非静态本地对象时选择复制构造函数而不是移动构造函数
我曾经假设类的移动构造函数将优先于其复制构造函数 但在下面的代码中 即使对象应该是可移动的 似乎也会选择复制构造函数 你知道为什么下面的代码选择复制构造函数吗foo 回报vector b B include b
c
vector
g
movesemantics
我通常/总是可以使用 std::forward 而不是 std::move 吗?
我一直在看斯科特 迈耶斯的谈论通用参考来自 C and Beyond 2012 会议 到目前为止一切都有意义 然而 在50分钟左右 一位观众问了一个我也想知道的问题 迈耶斯说他并不关心答案 因为这不符合惯用语 而且会让他的头脑变得愚蠢 但我
c
C11
movesemantics
rvaluereference
perfectforwarding
抛出异常时不会调用移动构造函数
我有一个累积当前异常的变量 并且需要在引发当前异常时进行清理 以便不会再次报告相同的错误 问题是throw std move ex 不调用移动构造函数 这会清理ex 而是调用复制构造函数 以便ex也保留已经抛出的错误 MVCE 如下 inc
c
C11
Exception
movesemantics
moveconstructor
为什么有些人使用交换来进行移动分配?
例如 stdlibc 有以下内容 unique lock operator unique lock u if M owns unlock unique lock std move u swap this u M device 0 u M o
c
C11
rvaluereference
movesemantics
copyandswap
为什么我们先复制然后移动?
我在某处看到代码 其中有人决定复制一个对象 然后将其移动到类的数据成员 这让我感到困惑 因为我认为移动的全部目的是为了避免复制 这是示例 struct S S std string str data std move str 这是我的问题
c
C11
movesemantics
未为右值引用调用 C++ 移动构造函数[重复]
这个问题在这里已经有答案了 class MyClass public MyClass std cout lt lt default constructor n MyClass MyClass a std cout lt lt copy co
c
constructor
movesemantics
rvaluereference
如何真正落实五法则?
UPDATE在底部 q1 您将如何实施五法则对于管理相当重资源的类 但您希望它通过值传递 因为这大大简化和美化了它的用法 或者规则的所有五个项目都不需要吗 在实践中 我开始使用 3D 成像 其中图像通常为 128 128 128 双倍 能够
c
C11
movesemantics
rvaluereference
使用模板移动运算符
我有一个模板类 我想避免复制它 因为这样做的潜在成本 我可以实现移动构造函数 但我也想允许移动 跨模板参数 这是我正在尝试编译的内容 template
c
templates
C11
movesemantics
复制/移动未实现复制的字段
费里斯船长有一张地图 seven seas png 他隐藏了多个宝藏的区域 在坐标 5 7 和 7 9 处 他想为每件宝藏创建一个单独的藏宝图 原始地图不应更改 他决定使用 Rust 和图像箱为了这 extern crate image u
image
Rust
movesemantics
deepcopy
c++11 返回值优化还是移动? [复制]
这个问题在这里已经有答案了 我不明白什么时候应该使用std move当我应该让编译器优化时 例如 using SerialBuffer vector lt unsigned char gt let compiler optimize it
c
C11
movesemantics
returnvalueoptimization
std::move(const shared_ptr 引用) 是什么意思?
以下是我正在尝试的玩具代码 我理解第一个和第二个 第一个将所有权授予 p 第二份副本p to p 但我不明白第三个 什么是std move of const shared ptr 意思是 谢谢 class P class A public
c
C11
sharedptr
movesemantics
stdmove
如何实现链表的前置而不需要分配给新变量?
有人告诉我如何实现链表 enum List Cons u32 Box
datastructures
Rust
movesemantics
borrowing
通过在移动赋值运算符中使用 std::swap 来重用析构函数逻辑是否有意义?
考虑以下 class Example boost noncopyable HANDLE hExample public Example hExample InitializeHandle Example if hExample INVALI
c
C11
movesemantics
moveassignmentoperator
移动返回时调用的构造函数而不是复制
今天我发现这段代码并没有像我期望的那样工作 根据我的知识 对于 L 值 应该调用复制构造函数 而对于 R 值 应该选择移动构造函数 否则目的何在std move它实际上什么也不做 只是转换为 R 值 我正期待着return obj将调用复制
C11
movesemantics
初始化列表和移动语义
我是否可以将元素移出std initializer list
c
templates
C11
movesemantics
initializerlist
std::move on std::string 是否保证 .c_str() 返回相同的结果?
我想提供零复制 基于移动的 API 我想将一个字符串从线程 A 移动到线程 B 中 从思想上讲 移动似乎应该能够简单地将数据从实例 A 传递 移动到新实例 B 中 而无需复制操作 主要是地址 因此 所有数据 例如数据指针 都将被简单地复制
c
C11
move
movesemantics
当向量增长时如何强制移动语义?
我有一个std vector某个类的对象A 该类非常重要并且具有复制构造函数and移动定义的构造函数 std vector a myvec 如果我用以下内容填充向量A对象 例如使用myvec push back a 使用复制构造函数 向量的
c
vector
C11
resize
movesemantics
编译器如何知道移动局部变量?
我很好奇这个功能到底是如何工作的 考虑类似的事情 std unique ptr
c
C11
movesemantics
«
1
2
3
4
5
6
7
»