cppcheck 2.20.0 doesn't generate constVariablePointer for the following code:
#include <string> using std::wstring; class Object { private: wstring m_str; public: Object() : m_str(L"str") {} const wstring& get_str() const { return m_str; } }; Object* get_object() { static Object obj; return &obj; } void func(const wchar_t*) {} int main() { Object* obj = get_object(); func(obj->get_str().c_str()); return 0; }
obj can be pointer to const. constVariablePointer is generated with --std=c++03 arg:
test\main.cpp:24:10: style: Variable 'obj' can be declared as pointer to const [constVariablePointer] Object* obj = get_object(); ^
Without "using std::wstring;", constVariablePointer is not generated:
class Object { private: std::wstring m_str; public: ... const std::wstring& get_str() const { return m_str; } };
After replacing std::wstring with std::string, constVariablePointer is generated regardless of --std=c++03.
Thanks for reporting, ticket is here: https://trac.cppcheck.net/ticket/14575
Log in to post a comment.
cppcheck 2.20.0 doesn't generate constVariablePointer for the following code:
obj can be pointer to const.
constVariablePointer is generated with --std=c++03 arg:
Without "using std::wstring;", constVariablePointer is not generated:
After replacing std::wstring with std::string, constVariablePointer is generated regardless of --std=c++03.
Thanks for reporting, ticket is here: https://trac.cppcheck.net/ticket/14575