c – 引用是否有存储位置?
作者:互联网
引用是否具有存储位置,或者它只是另一个位置的别名?这与C版本有所不同,还是与所有版本的C一致?如果引用具有存储位置,那么它是否只允许类型指针上的值语义?
当您使用它时,引用如何工作:
struct aStruct{
int aVariable;
aClass& aReferencetoaClass;
};
是占用空间还是别名?
解决方法:
latest C++20 spec(第9.2.3.3节)和至少自C++ 2005 draft spec国家以来:
It is unspecified whether or not a reference requires storage
实际执行情况视具体情况而定.显然,如果一个类有一个成员变量,它是一个需要存储在某处的引用.但是编译器在将引用仅用作别名时有余地,正如您所说的那样.
标签:memory-layout,c,language-lawyer,reference,storage-duration 来源: https://codeday.me/bug/20191006/1860253.html