Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何才能进行常数T&;指的是文字?_C++_Move Semantics_Value Categories - Fatal编程技术网

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中搜索“延长临时人员的生命周期”导致。

您的理解是错误的。引用在内部实现以满足其规范。不管是否有指针参与,都与判断代码是否有效无关,只要说不要忘记。如果您无法分辨可观察行为的差异,编译器将尽一切努力为您提供更快的程序。您的理解是错误的。引用在内部实现以满足其规范。不管是否有指针参与,都与判断代码是否有效无关,只要说不要忘记。如果您无法分辨可观察行为的差异,编译器将尽一切努力为您提供更快的程序。