cppcheckのバグ
cppcheck-1.72で確認。
// hoge.cpp class Base { }; template<typename T> class Hoge<T[]> final : public Base { }; void func() { int a[2]; a[5] = 0; }
$ cppcheck hoge.cpp Checking hoge.cpp...
Hogeのfinal消すか継承を消すかT[]をTにするとちゃんと動く
$ cppcheck hoge.cpp Checking hoge.cpp... [hoge.cpp:15]: (error) Array 'a[2]' accessed at index 5, which is out of bounds.