On Mon, 7 Oct 2024 at 16:28, David Brown via Gcc-help <gcc-help@xxxxxxxxxxx> wrote: > On 07/10/2024 16:24, R. Diez via Gcc-help wrote: > > Hi all: > > > > Sometimes, I forget to remove useless 'const' modifiers in function > > declarations. A simplified example is: > > > > file.h: > > > > int f ( const int a ); // 'const' is useless here. > > > > > > file.cpp: > > > > int f ( const int a ) > > { > > return a; > > } > > > > > > Is there a way to make GCC issue warnings about those useless 'const' > > modifiers? At the very least, it would save some head scratching during > > code reviews. > > > > Apparently, clang-tidy has option > > 'readability-avoid-const-params-in-decls' for such a warning: > > > > > https://clang.llvm.org/extra/clang-tidy/checks/readability/avoid-const-params-in-decls.html > > > > Thanks in advance, > > rdiez > > > > You might not /want/ the "const" there, but it is not useless. It means > you are not allowed to change the value of the parameter inside the > function. I think the question is about the 'const' in the non-defining declaration of the function, i.e. "the prototype" in C terminology. It's meaningful on the function definition, but adding or removing it on the decl in the header makes no difference to anything. > Some people see that as a useful thing, because they see > modification of parameter values as unexpected and potentially confusing > or easily misread. But if you didn't mean to have it there, then it > becomes clutter that distracts from the code. > > I am curious as to why you would need to remove such a qualifier, > however - if you don't like it, why was it there in the first place? > > (In general, clang-tidy has more stylistic checks than gcc or the clang > compiler. It is quite reasonable to run clang-tidy in addition to your > compiler, as a linter and style checker.) > >