4
This catches const qualifiers for parameters passed by value to functions, in
5
function declarations. Such qualifiers should only be in the definitions. It
7
* declarations with complex type names (template types) or default value
8
* assignments, functions with things like __attribute__ and pointers with const
12
error_msg = "'const' for a literal parameter makes no sense. Remove the const."
14
regexp = r"""^\s*(?:(static|virtual) +)?(?:const +)?(?:[_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*(?: +const)?(?: *(?:\*(?: *const)?|&))* +[_a-zA-Z][_a-zA-Z0-9]* *\((?:(const +)?(?:[_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*(?: +const)?(?: *(?:\*(?: *const)?|&))*(?: +[_a-zA-Z][_a-zA-Z0-9]*)?, *)*(?:const +(?:[_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*|(?:[_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]* +const)(?: +[_a-zA-Z][_a-zA-Z0-9]*)?(?:, *(?:const +)?(?:[_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*(?: +const)?(?: *(?:\*(?: *const)?|&))*)*(?: +[_a-zA-Z][_a-zA-Z0-9]*)?(?:\)(?: *const)?(?: throw *\(.*\))?;|,$)"""
17
" void truncate(int32_t const count);",
18
"void func(const Some_Type,",
19
"void func(const Some_Type);",
20
"void func(const Some_Type) const;",
21
"void func(const Some_Type) const throw (whatever);",
22
"void func(const Some_Type abc,",
23
"void func(const Some_Type abc);",
24
"void func(const Some_Type abc) const;",
25
"void func(std::string * const & * foo, const Some_Type,",
26
"void func(std::string * const & * foo, const Some_Type);",
27
"void func(std::string * const & * foo, const Some_Type) const;",
28
"void func(std::string * const & * foo, const Some_Type) const throw (whatever);",
29
"void func(std::string * const & * foo, const Some_Type abc,",
30
"void func(std::string * const & * foo, const Some_Type abc);",
31
"void func(std::string * const & * foo, const Some_Type abc) const;",
32
"void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo,",
33
"void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo);",
34
"void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo) const;",
35
"void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo) const throw (whatever);",
36
"void func(std::string * const & * ngi, const Some_Type abc, std::string * const & * foo,",
37
"void func(std::string * const & * ngi, const Some_Type abc, std::string * const & * foo);",
38
"void func(std::string * const & * ngi, const Some_Type abc, std::string * const & * foo) const;",
39
"void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo,",
40
"void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo);",
41
"void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo) const;",
42
"void func(std::string * const & * ngi, const Some_Type, std::string * const & * foo) const throw (whatever);",
43
"void func(std::string * const & * ngi, const Some_Type abc, std::string * const & * foo,",
44
"void func(std::string * const & * ngi, const Some_Type abc, std::string * const & * foo);",
45
"void func(std::string * const & * ngi, const Some_Type abc, std::string * const & * foo) const;",
46
"void func(Some_Type const,",
47
"void func(Some_Type const);",
48
"void func(Some_Type const) const;",
49
"void func(Some_Type const) const throw (whatever);",
50
"void func(Some_Type const abc,",
51
"void func(Some_Type const abc);",
52
"void func(Some_Type const abc) const;",
53
"void func(std::string * const & * foo, Some_Type const,",
54
"void func(std::string * const & * foo, Some_Type const);",
55
"void func(std::string * const & * foo, Some_Type const) const;",
56
"void func(std::string * const & * foo, Some_Type const) const throw (whatever);",
57
"void func(std::string * const & * foo, Some_Type const abc,",
58
"void func(std::string * const & * foo, Some_Type const abc);",
59
"void func(std::string * const & * foo, Some_Type const abc) const;",
60
"void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo,",
61
"void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo);",
62
"void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo) const;",
63
"void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo) const throw (whatever);",
64
"void func(std::string * const & * ngi, Some_Type const abc, std::string * const & * foo,",
65
"void func(std::string * const & * ngi, Some_Type const abc, std::string * const & * foo);",
66
"void func(std::string * const & * ngi, Some_Type const abc, std::string * const & * foo) const;",
67
"void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo,",
68
"void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo);",
69
"void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo) const;",
70
"void func(std::string * const & * ngi, Some_Type const, std::string * const & * foo) const throw (whatever);",
71
"void func(std::string * const & * ngi, Some_Type const abc, std::string * const & * foo,",
72
"void func(std::string * const & * ngi, Some_Type const abc, std::string * const & * foo);",
73
"void func(std::string * const & * ngi, Some_Type const abc, std::string * const & * foo) const;",
74
" virtual void func(const Some_Type,",
75
" virtual void * func(const Some_Type,",
76
" virtual std::string & func(const Some_Type,",
80
"void func(Some_Type,",
81
"void func(Some_Type);",
82
"void func(Some_Type) const;",
83
"void func(Some_Type) const throw (whatever);",
84
"void func(Some_Type abc,",
85
"void func(Some_Type abc);",
86
"void func(Some_Type abc) const;",
87
"void func(std::string * const & * foo, Some_Type,",
88
"void func(std::string * const & * foo, Some_Type);",
89
"void func(std::string * const & * foo, Some_Type) const;",
90
"void func(std::string * const & * foo, Some_Type) const throw (whatever);",
91
"void func(std::string * const & * foo, Some_Type abc,",
92
"void func(std::string * const & * foo, Some_Type abc);",
93
"void func(std::string * const & * foo, Some_Type abc) const;",
94
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo,",
95
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo);",
96
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const;",
97
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const throw (whatever);",
98
"void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo,",
99
"void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo);",
100
"void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo) const;",
101
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo,",
102
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo);",
103
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const;",
104
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const throw (whatever);",
105
"void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo,",
106
"void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo);",
107
"void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo) const;",
108
"void func(Some_Type,",
109
"void func(Some_Type);",
110
"void func(Some_Type) const;",
111
"void func(Some_Type) const throw (whatever);",
112
"void func(Some_Type abc,",
113
"void func(Some_Type abc);",
114
"void func(Some_Type abc) const;",
115
"void func(std::string * const & * foo, Some_Type,",
116
"void func(std::string * const & * foo, Some_Type);",
117
"void func(std::string * const & * foo, Some_Type) const;",
118
"void func(std::string * const & * foo, Some_Type) const throw (whatever);",
119
"void func(std::string * const & * foo, Some_Type abc,",
120
"void func(std::string * const & * foo, Some_Type abc);",
121
"void func(std::string * const & * foo, Some_Type abc) const;",
122
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo,",
123
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo);",
124
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const;",
125
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const throw (whatever);",
126
"void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo,",
127
"void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo);",
128
"void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo) const;",
129
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo,",
130
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo);",
131
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const;",
132
"void func(std::string * const & * ngi, Some_Type, std::string * const & * foo) const throw (whatever);",
133
"void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo,",
134
"void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo);",
135
"void func(std::string * const & * ngi, Some_Type abc, std::string * const & * foo) const;",
136
" virtual void func(Some_Type,",
137
" virtual void * func(Some_Type,",
138
" virtual std::string & func(Some_Type,",