【发布时间】:2021-10-09 20:47:36
【问题描述】:
如何知道是否可以将const 引用T1 绑定到T2?
我曾经认为只有当T2 可以转换为T1 时,你才能将const 引用T1 绑定到类型T2。
但是由于以下编译:
char x[10];
const char (&y)[10] = x;
不应该这样,因为char[10] 不能转换为const char[10](如果我错了,请纠正我)。那么,能够将const 引用绑定到不同类型的规则是什么?是否只有一条附加规则,例如:对于任何类型 T,您都可以将 const 引用 T 绑定到它?
【问题讨论】:
-
"
char[10]不能转换为const char[10]" 为什么不可以呢?您可以随时将const添加到任何类型 -
您可以随时将 const 添加到非常量。
-
"对于任何类型的 T,您都可以绑定一个 const 引用?" 为什么不呢?反之亦然,您会遇到麻烦,但这样不会造成任何伤害。
-
@UnholySheep 我使用 std::convertible_to 概念(C++20 的东西)来检查。
标签: c++ const-reference