|
|
1
2
C++中有一条规则,没有隐式转换将使用两个用户定义的转换。 这是因为这样的“长距离”转换会产生非常惊人的结果。
如果您希望能够从任何可以转换为
或者你可以把你的
你也可以在
这个模糊的代码:
存在以确保仅当要转换的类型具有所需的属性时才使用重载。
第一
每当您为一个类型创建一个转发引用隐式构造函数时,第二个子句就非常需要,或者您会遇到其他一些令人惊讶的问题。
所使用的技术称为sfinae,或者替换失败不是错误。当一种
|
|
2
2
隐式创建对象时,只允许一个用户定义的转换。自从
|
|
|
3
2
是的,这是故意的。 隐式转换序列最多可以有一个用户定义的转换(构造函数或转换函数)。 标准说(强调我的):
为了让用户定义的类型(类)隐式转换为另一个类型,必须有一个直接转换为该类型的构造函数或转换运算符。不能通过中间类型进行隐式转换(从用户定义的类型到另一个类型)。 您可以改用显式转换。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |