I use cppcheck version 2.6. Below is a class that has a static template method (create()): // CAbc.h #pragma once class CAbc { public: template<class D> static CAbc *create() { CAbc *pCtrl = new CAbc(); return pCtrl; } ~CAbc(); private: CAbc(); }; CAbc::CAbc() { } CAbc::~CAbc() { } The 'create()' method is used in another source file: // Caller.cpp #include "CAbc.h" void test() { CAbc * p = CAbc::create<int>(); } I use the following command: cppcheck -URM -URM_OLD -URM_OLD_DELEGATES --enable=all...