Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
std::move 的逆函数是否存在? [复制]
这个问题在这里已经有答案了 std move当移动尚未被隐式允许时 例如often当从函数返回本地对象时 现在 我想知道 尤其是在本地返回和隐式移动的背景下 如果存在这样的逆元std move那将prevent移动对象 但仍然允许复制 这还
c
C11
movesemantics
不必要地清空移出的 std::string
libstdc 和 libc 都进行了移出std string对象为空 即使原始存储的字符串很短并且应用了短字符串优化 在我看来 这种排空使额外的和不必要的运行时开销 例如 这里是移动构造函数std basic string来自 libst
c
string
movesemantics
libstdc
移出的物体是否需要销毁?
如果我移动构建a from b 还是吗必要的破坏b 或者我可以不这样做就逃脱吗 这个问题在实施过程中闪过我的脑海optional
c
C11
destructor
rvaluereference
movesemantics
initializer_list 不可变性质导致过度复制
为什么可以访问std initializer list不允许我们更改其内容 这是一个很大的缺点std initializer list当将它用于其主要目的 初始化容器 时 因为它的使用会导致过多的复制构造 复制赋值 而不是移动构造 移动赋值
c
C11
movesemantics
c14
initializerlist
C++11:按值传递是否涉及移动语义?
我有一个如下所示的 API void WriteDefaultFileOutput std wostream str std wstring target Some code that modifies target before prin
c
C11
movesemantics
C++11“不可移动”类型[重复]
这个问题在这里已经有答案了 可能的重复 为什么 C 11 删除的函数参与重载决策 我对以下 C 11 代码有两个问题 include
c
gcc
C11
Clang
movesemantics
std::function 的仅移动版本
Because std function是可复制的 该标准要求用于构造它的可调用对象也是可复制的 n337 20 8 11 2 1 template
c
C11
movesemantics
“按值传递然后移动”结构是一个不好的习惯用法吗?
由于我们在 C 中有移动语义 现在通常这样做 void set a A a a std move a 推理是如果a是一个右值 副本将被删除 并且只有一个移动 但如果发生什么情况a是左值吗 似乎会有一个复制构造 然后是一个移动赋值 假设 A
c
C11
movesemantics
passbyvalue
rvaluereference
vector
> 无法使用 MSVC 进行编译
制作仅移动类型的地图向量似乎在 Windows 上无法正常工作 请参阅此处的代码 https godbolt org z yAHmzh include
c
vector
visualc
movesemantics
移动语义不完整吗?
在复制效率低下的情况下 移动语义会取代复制语义 复制语义完全处理可复制对象 包括 const 对象 C 11 中已经存在大量不可复制的对象 例如 std unique ptr 这些对象完全依赖于移动语义 因为从对象移动允许使其无效 这对于像
c
C11
languagefeatures
movesemantics
为什么调用 FnOnce 闭包是一个举动?
我试图将一个闭包传递给一个函数 然后该函数将在函数范围内改变传递给它的某些内容 根据我目前对 Rust 的理解 应该是这样的 pub fn call something callback FnOnce mut Vec
Rust
closures
movesemantics
«
1
2
3
4
5
6
7