gpt4 book ai didi

c++11 - 为什么我可以给 rValue 字符串赋值?

转载 作者:行者123 更新时间:2023-12-02 23:20:10 24 4
gpt4 key购买 nike

正如我所料,此代码无法编译,因为 move 为您提供了 rValue,并且您无法将任何内容分配给 rValue:

int a, b;
move(a) = b;

问题是为什么下面的代码可以编译?

string a, b;
move(a) = b;

最佳答案

原因可能有点令人惊讶。第一种形式是内置赋值,这确实不适用于右值引用。

第二条语句实际上是move(a).operator=(b)。那是一个函数调用。您可以在右值上调用函数,即使函数的名称有些不寻常。

关于c++11 - 为什么我可以给 rValue 字符串赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35648731/

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