gpt4 book ai didi

c++ - 在同一个赋值表达式中使用 std::move(object) 和 object.method() 。

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:07 24 4
gpt4 key购买 nike

下面表达式的结果是否定义明确?这是什么?

hash_map[object.key()] = std::move(object);

我不确定 std::move 部分的效果是否会发生在 object.key() 部分之前或之后,因此我的问题。

最佳答案

它的定义很明确,因为这段代码中的第一个并不重要:您可以将其重写为以下等价物

hash_map[object.key()] = static_cast<objecttype&&>(object);

关于代码我们能说些什么:

  1. object.key() 应该在分配给 map 之前执行
  2. std::move(object) 应在分配给 map 之前执行

然后将对 map 进行赋值,该 map 将接受 xvalued object 以及 key 函数所做的任何更改。

关于c++ - 在同一个赋值表达式中使用 std::move(object) 和 object.method() 。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31108194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com