如何解决为什么C ++ 0x不反对隐式转换?
| 为什么C ++ 0x不能弃用用户定义的a.k.a.对象的隐式转换?是否有任何实际使用此(错误)功能的项目?每当我在代码中看到单个参数构造函数时,我都会进行检查或修改,将其视为错误并使其明确。到目前为止,它运行良好,没有人抱怨。 谢谢。 编辑:让我引用STL的创建者Alex Stepanov: 打开您的C ++书籍,然后阅读有关 显式关键字!也请你 社区C ++标准委员会 成员最终废除隐含 转换。有一个共同点 误解,通常是由 应该更了解的人 STL取决于隐式转换。 不是这样! 参考:A. Stepanov。 C ++笔记 再次编辑:不,请不要辩论。我很好奇,是否有人在工作中使用隐式转换。我从未见过任何允许隐式转换对象的项目。我想了很辛苦,并且不会提出任何隐式转换不会成为雷区的假想方案。我的意思是C ++单参数转换,而不是float-> double或类似的从C继承的转换。解决方法
显而易见的答案是,用C ++ 03编写和工作的代码应该可以继续与C ++ 0x编译器一起工作。
,一方面,从语言中删除隐式转换将是一个巨大的突破,即使使用were0 optional关键字将其转换为可选和默认设置也是如此。
我已经搜索了comp.std.c ++,并且似乎没有在该小组中进行任何讨论-尽管对此主题存在一些疑问,但到目前为止似乎没有人提出建议作为删除它。我当然也不会走得太远:这是我偶尔会很高兴使用的功能,并且我也不赞成将所有可能转换的构造函数都设为ѭ1--除非它引起真正的错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。