gpt4 book ai didi

c++ - 未命名对象和临时对象是否等同?

转载 作者:可可西里 更新时间:2023-11-01 18:29:35 26 4
gpt4 key购买 nike

在我努力理解右值引用的过程中,我一直在思考编译器何时会确定特定函数参数是右值引用,以及何时会确定它是左值引用。

(此问题与引用折叠有关;请参阅 Concise explanation of reference collapsing rules requested: (1) A& & -> A& , (2) A& && -> A& , (3) A&& & -> A& , and (4) A&& && -> A&&)。

特别是,我一直在考虑编译器是否始终将未命名对象视为右值引用和/或编译器是否始终将临时对象视为右值引用。

反过来,这让我质疑未命名对象是否等同于临时对象。

我的问题是:未命名的对象总是临时的吗?临时对象总是未命名吗?

换句话说:未命名对象和临时对象等价吗?

最佳答案

我可能是错的,因为我不确定“未命名对象”的定义是什么。但是请考虑以下 foo() 函数的参数:

void foo(int)
{ /* ... */ }

int main()
{ foo(5); }

foo() 的参数是未命名的,但它不是临时的。因此,未命名对象和临时对象是不等价的。

关于c++ - 未命名对象和临时对象是否等同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13729657/

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