在同一赋值表达式中使用std::move(object)和object.method()
Using std::move(object) and object.method() in the same assignment expression.
以下表达式的结果是否定义良好?它是什么?
hash_map[object.key()] = std::move(object);
我不确定std::move
部分的效果是发生在object.key()
部分之前还是之后,因此我提出了问题。
它定义得很好,因为这段代码中先出现的内容并不重要:您可以将它重写为以下等效的
hash_map[object.key()] = static_cast<objecttype&&>(object);
我们能对代码说些什么:
object.key()
应在分配到映射之前执行std::move(object)
应在分配到映射之前执行
然后将对映射进行赋值,该映射将接受具有key
函数所做的任何更改的x值object
。
相关文章:
- 通过 get-Method 访问变量在类外不起作用
- 当覆盖存在时调用基本虚拟"binded to object"函数
- 为什么我的 BaseClass:Method 代码编译(带有单冒号)?
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- 如何在 c++ 中理解这样的代码 [request->headers().Method()->value().getStringView())]
- C++将派生类转换为基类时'object slicing'期间发生的情况
- 如何理解 C++17 标准参考中的 [intro.object]/3? N4659 的
- "Cannot convert Python object argument to type '<typename>'" - 使用 Cython 包装 C++ 类时出错
- 使用 object 中的方法调用带有 std::bind 和 std::function.target 的 C 样式函数
- "Called Object Type is Not a Function or Pointer" 与 typedef 和类
- C++线程"Call to non-static member function without an object argument"
- dopen():不以 root 身份运行时"failed to map segment from shared object"
- g++ [[noreturn]] on a virtual method
- 当两个成员位于同一类中时出错"a nonstatic member reference must be relative to a specific object"
- Nan::ObjectWrap to Napi::Object Wrap 无法访问 JavaScript 中的属性
- 现代C++会支持 C# "Object Initalizer"语法吗?
- 指向对象生存期之外的已分配内存的指针是"invalid pointer[s]"还是"pointer[s] to an object"?
- const object&return value from a method, best practice
- QMetaObject::invokeMethod(object, method, stuff+params) vs object->method()
- 在同一赋值表达式中使用std::move(object)和object.method()