cppcheck が template あたりで syntax error を出す(誤検知する)場合
以下、あんまりちゃんと追っかけてないので信じないで欲しいがw
[include/fixedpointnumber_conversion-priv.h:31]: (error) syntax error
特にこれ以上メッセージ出ないやつ。
どうも途中のバージョンであったバグらしくて、
結論的には cppcheck
を最新にすれば治まった。
cppcheck の version | OK / NG | 備考 |
---|---|---|
1.72 | OK | 2019/11/15 現在 Ubuntu 16.04 の apt install cppcheck でインストールされるバージョン |
1.82 | NG | 2019/11/15 現在 Ubuntu 18.04 の apt install cppcheck でインストールされるバージョン |
1.89 | OK | 2019/11/15 現在の最新、 macOS の brew install cppcheck でインストールされるバージョン |
bug report とかソースコードを少し追っかけた感じでは、
.h ファイルのようにファイル単体では C++ か C か判別つかないファイルで
template
というキーワードを見つけると発症するのかな…。
これを調べるためだけに Ubuntu 16.04 と 18.04 の仮想環境を用意しちまったさ…、 …とはいっても
$ mkdir -p vagrant/ubuntu/18.04 $ cd vagrant/ubuntu/18.04 $ vagrant init ubuntu/bionic64 $ vagrant up $ vagrant ssh
とかするだけで環境用意できるなんていい時代になったよねぇ…。