C++参考是否保证"内部"使用指针?

noo*_*oob 5 c++ c++14

看一下C++中的引用,我注意到我看到的所有实现都在内部使用了指针.

C++标准是否保证引用将在内部使用指针,或者实现是否可以使用更"有效"的解决方案?(我现在不会看到如何"更好"地完成它,因为当创建一个新的堆栈帧时,实际上并不是一种防弹方法可以很容易地知道堆栈基指针的偏移量,因为堆栈引用的变量是非常有活力)

注意:我确实理解了C++中指针和引用之间的区别(这个问题与此无关)

Yam*_*vic 10

如果您的意思是引用要求编译器为指针分配存储,那么这是未指定的.

§8.3.2/ 4

未指定引用是否需要存储.

编辑:记录Martin Bonner的评论是一个有用的,实用的注释,

[F]或调试目的,知道"幕后"发生了什么是非常有用的.(例如,回答诸如"为什么不完全脱离轨道?")之类的问题.在实践中,编译器都将引用实现为指针(除非它们可以完全取消引用).

  • 这是对的.但是,出于调试目的,了解"幕后"的内容非常有用.(例如,回答诸如"为什么不完全脱离轨道?")之类的问题.在实践中,编译器都将引用实现为指针(除非它们可以完全取消引用). (2认同)

Fre*_*abe 5

不,它不对引用的实现方式做出任何保证。C++ 语言只定义了引用的语义,而不是它们的实现。


Bo *_*son 5

该标准没有说明参考是如何实现的,只是说明它是如何工作的。

它也没有说明堆栈帧,这是另一个实现细节。