Wol*_*olf 7 c++ explicit legacy-code cppcheck
当我在我的代码1上使用(最近发布的)Cppcheck 1.69时,它显示了很多消息,我没有预料到;-)禁用noExplicitConstructor
证明了所有这些消息都属于这种类型.
但是我发现我不是唯一一个有很多新的Cppcheck消息的人,看看LibreOffice的分析结果(我可以公开展示):
有经验的程序员会做什么:
explicit
关键字?1 编辑:这当然不是我的代码,而是我必须处理的代码,它是遗留代码:C和C++在几种(预)标准风格中的混合,并且它是一个相当大的代码库.
过去我被隐式转换引入的性能命中以及彻头彻尾的错误所困扰.所以我倾向于始终使用explicit
的所有,我不想参加的隐式转换的构造函数,这样编译器可以帮我赶上我的错误-然后我尝试总是还添加了"//隐意"评论到构建函数哪里我明确打算将它们隐含地用作转换ctors.我发现这有助于我编写更正确的代码,减少意外.
......所以我会说"是的,去补充explicit
" - 从长远来看,你会很高兴你做到了 - 这就是我第一次了解它时所做的事情,我很高兴我做到了.