我在标准中查找了引用类型的定义,但我找不到任何内容。 引用类型作为<html>
<head>
</head>
<body>
<script>
var myFunction = function() {
document.write("Hello world!");
}
myFunction();
</script>
</body>
</html>
等对象类型的天真解释失败,因为根据标准[basic.types] 10.3:
如果类型是:[...]引用类型
,则类型是文字类型
但是以下静态断言无法编译(在MSVC2015RC中):
int &
引用类型的定义是什么?
答案 0 :(得分:3)
C ++ 11标准定义了§8.3.2[dcl.ref]中的引用:
1在
T D
声明中,其中D
具有任何一种形式
& attribute-specifier-seqopt D1
&& attribute-specifier-seqopt D1
和声明
T D1
中的标识符类型是 “derived-declarator-type-list T”,然后是D
标识符的类型 是“T
的derived-declarator-type-list引用。”可选 attribute-specifier-seq属于引用类型。 CV-合格 除非引入了cv限定符,否则引用的格式不正确 通过使用typedef(7.1.3)或模板类型参数 (14.3),在这种情况下,忽略了cv限定符。 [...]2使用&amp;声明的参考类型被称为 左值引用,以及使用&amp;&amp ;;声明的引用类型是 称为右值参考。左值参考和右值参考 是不同的类型。除非明确指出,否则它们是 语义等价,通常称为参考。
简单来说,引用类型是声明为对其他类型的引用的类型。不过,关于他们的行为还有很多话要说。
答案 1 :(得分:2)