我真的应该大量介绍明确的关键字?

问题描述 投票:0回答:2

当我在Code1

上使用(最近发布的)Cppcheck 1.69时,它显示了很多消息,我期望无。禁用
noExplicitConstructor

证明了所有这些都完全是这种。

但我发现我不是唯一一个有很多新的CPPCHECK消息的人,请看Libreoffice分析的结果(我可以在公开场合展示):

screenshot of Cppcheck results on LibreOffice code

经验丰富的程序员会做什么:

  • 支票?
  • 毫无用处介绍
    explicit
    关键字?

1当然,这不是mycode,而是我必须在工作中工作的代码,它是旧代码:在几种(预 - )标准口味中的C和C ++的混合(例如,C ++ 98) ,这是一个很大的代码基础。

c++ c++98 legacy-code explicit cppcheck
2个回答
13
投票
explicit

用于

all的构造函数,我不想参与隐式转换,以便编译器可以帮助我捕获错误 - 然后,我尝试始终添加“ //隐式意图”向CTORS评论,我明确打算将其用作隐式转换CTOR。我发现这有助于我编写更正确的代码,而惊喜更少。

…所以我会说“是的,去添加explicit” - 从长远来看,您会很高兴您做到了 - 这就是我第一次了解它时所做的,我很高兴我做到了。

C ++核心指南状态:


0
投票
除非您需要隐式转换或用于复制/移动构造函数。

Source:

Https://isocpp.github.io/cppcoreguidelines/cppcoreguidelines#rc-epplitic

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.