Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Code metrics and warnings for C++ [closed]

I have a pretty new code base written in C++. Already I'm starting to see some bad practices creeping into the project (class file with 1000+ lines of code, functions with a lot of parameters, ...).

I would like to stop on these right away with some automated tools which can hook into the build and check for poor coding practices. What suggestions do you have for such tools? I'm interested in metrics but really more interested in a stylistic sort of lint which would highlight functions with 37 parameters.

like image 774
stimms Avatar asked Jun 09 '09 22:06

stimms


People also ask

How do you suppress code Analysis warnings?

If you migrate a project to Visual Studio 2019, you might suddenly be faced with a large number of code analysis warnings. If you aren't ready to fix the warnings, you can suppress all of them by selecting Analyze > Build and Suppress Active Issues.

What are the metrics of coding?

Published source code metrics can be broadly divided into five categories, based on what they measure: size, complexity, coupling, cohesion, and inheritance. We provide a brief description of each category, along with some of the most influential publications on each of these categories of metrics.

What is #pragma warning disable?

With the #pragma warning disable statement you disable the emit of the warning for a specific location in code, and with #pragma warning restore you restore the warning back to its original state. If you don't restore , the disable instruction is valid for the rest of the file.

What is pragma warning in C#?

C# provides a feature known as the #pragma feature to remove the warnings. Sometimes we declare a variable but do not use the variable anywhere in the entire program so when we debug our code the compiler gives a warning so using the #pragma we can disable these types of warnings.


2 Answers

As with the others I'm not sure of a tool that will judge style. But CCCC will produce numerous metrics that can help you find the trouble spots. Metrics like cyclomatic complexity will give you quantitative evidence where the problem spots are. The downside is that you will have to incorporate these metrics with a style guide that you adopt or create on your own.

like image 133
nathan Avatar answered Oct 12 '22 10:10

nathan


I'm sorry I can't help you with respect to style, but a great metrics tool which supports C++ and is free: SourceMonitor.

In particular, you will get good info like Cyclomatic Complexity (which I find of more value for bad programming practice than number of parameters), as well as lines of code, percentage of comments, longest function, etc.

Give it a try -- and it is very fast as well.

like image 44
torial Avatar answered Oct 12 '22 10:10

torial