为什么C++没有const通用引用?

6

Scott Meyers (对于函数模板的参数):

通用引用只能以“T&&”的形式出现!即使是简单添加一个const限定符也足以禁用“&&”被解释为通用引用。

为什么C++没有const通用引用?有技术上的原因吗?


因为在大多数情况下,使用const右手引用的方式与使用const左手引用的方式是相同的。 - IdeaHat
1个回答

11

什么是const通用引用?它是一个不能被修改的引用。从右值引用转移相当于进行了修改。因此,如果存在const通用引用的话,那就是 const T&


如果它是无用的,为什么编译器不禁止 const T&&?难道不应该被禁止吗? - Sadeq
4
@ccsadegh,这并不是无用的,你可能需要它来消除过载解析中一些罕见而复杂的歧义情况。只是对于形成“const通用引用”并不实用。 - Daniel Frey
@Sadeq,请查看以下链接:https://dev59.com/PW445IYBdhLWcg3wTIZf。 - Qingchuan Zhang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接