Warum gibt die Größe eines Referenztyps die Größe des Typs an?

Nach dem Standard erhalten wir in [expr.sizeof] (5.3.3.2):

Wenn auf eine Referenz oder einen Referenztyp angewendet, ist das Ergebnis die Größe des referenzierten Typs.

Dies scheint mit der Tatsache zusammen zu gehen, dass Referenzen nicht spezifiziert sind [dcl.ref] (8.3.2.4):

s ist nicht festgelegt, ob eine Referenz gespeichert werden muss oder nich

Aber es scheint mir ziemlich seltsam, diese Art von Inkonsistenz in der Sprache zu haben. Unabhängig davon, ob die Referenz gespeichert werden muss oder nicht, wäre es nicht wichtig zu bestimmen, wie viel Größe die Referenz verwendet? Diese Ergebnisse zu sehen, scheint einfach falsch zu sein:

sizeof(vector<int>) == 24
sizeof(vector<int>*) == 8
sizeof(vector<int>&) == 24
sizeof(reference_wrapper<vector<int>>) == 8

Was ist die Begründung für das Wollensizeof(T&) == sizeof(T) per Definition

Antworten auf die Frage(3)

Ihre Antwort auf die Frage