C++ 如何才能进行常数T&;指的是文字?
我的理解是,C++ 如何才能进行常数T&;指的是文字?,c++,move-semantics,value-categories,C++,Move Semantics,Value Categories,我的理解是,const T&是通过const T*const在内部实现的。如果是这样,下面的代码如何有效(因为我们无法获取7的地址) 或者编译器在这里做了一些技巧?如果是,什么?您不能获取像7这样的文本的地址,但可以获取值为7的临时对象的地址 把这条线想象成等同于 const int unnamed_temprary_variable = 7; const int& i = unnamed_temprary_variable; 或者编译器在这里做了一些技巧?如果是,什么 编译器执行类似
const T&
是通过const T*const
在内部实现的。如果是这样,下面的代码如何有效(因为我们无法获取7的地址)
或者编译器在这里做了一些技巧?如果是,什么?您不能获取像
7
这样的文本的地址,但可以获取值为7
的临时对象的地址
把这条线想象成等同于
const int unnamed_temprary_variable = 7;
const int& i = unnamed_temprary_variable;
或者编译器在这里做了一些技巧?如果是,什么
编译器执行类似于我提到的两行代码的操作,但这不是一个技巧。这是语言所要求的
在中搜索“延长临时对象的生存期”会导致。您不能获取像
7
这样的文本的地址,但可以获取值为7
的临时对象的地址
把这条线想象成等同于
const int unnamed_temprary_variable = 7;
const int& i = unnamed_temprary_variable;
或者编译器在这里做了一些技巧?如果是,什么
编译器执行类似于我提到的两行代码的操作,但这不是一个技巧。这是语言所要求的
在SO中搜索“延长临时人员的生命周期”导致。您的理解是错误的。引用在内部实现以满足其规范。不管是否有指针参与,都与判断代码是否有效无关,只要说不要忘记。如果您无法分辨可观察行为的差异,编译器将尽一切努力为您提供更快的程序。您的理解是错误的。引用在内部实现以满足其规范。不管是否有指针参与,都与判断代码是否有效无关,只要说不要忘记。如果您无法分辨可观察行为的差异,编译器将尽一切努力为您提供更快的程序。