[英]Are C++ references guaranteed to use pointers “internally”?
看一下C ++中的引用,我注意到我看到的所有實現都在內部使用了指針。
C ++標准是否保證引用將在內部使用指針,或者實現是否可以使用更“有效”的解決方案? (我現在不會看到如何“更好”地完成它,因為當創建一個新的堆棧幀時,實際上並不是一種防彈方式可以很容易地知道堆棧基指針的偏移量,因為堆棧引用的變量是非常有活力)
注意:我確實理解了C ++中指針和引用之間的區別(這個問題與此無關)
如果您的意思是引用要求編譯器為指針分配存儲,那么這是未指定的。
§8.3.2/ 4
未指定引用是否需要存儲。
編輯:記錄Martin Bonner的評論是一個有用的,實用的注釋,
[F]或調試目的,知道“幕后”發生了什么是非常有用的。 (例如,回答諸如“為什么不完全脫離軌道?”)之類的問題。 在實踐中,編譯器都將引用實現為指針(除非它們可以完全取消引用)。
不,它沒有對如何實現引用做出任何保證。 C ++語言只定義引用的語義,而不是它們的實現。
該標准沒有說明如何實現引用,它是如何工作的。
它也沒有說堆棧幀,這是另一個實現細節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.