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 現在の最新、 macOSbrew 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

とかするだけで環境用意できるなんていい時代になったよねぇ…。