簡體   English   中英

C ++參考是否保證“內部”使用指針?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM