
About the benefits of a good C, C++ coding style and static code analysis - PVS-Studio
http://www.viva64.com/en/b/0391/
======
PVS-Studio
1\. Don't do the compiler's job

2\. Larger than 0 does not mean 1

3\. Copy once, check twice

4\. Beware of the ?: operator and enclose it in parentheses

5\. Use available tools to analyze your code

6\. Check all the fragments where a pointer is explicitly cast to integer
types

7\. Do not call the alloca() function inside loops

8\. Remember that an exception in the destructor is dangerous.

9\. Use the '\0' literal for the terminal null character

10\. Avoid using multiple small #ifdef blocks

11\. Don't try to squeeze as many operations as possible in one line

12\. When using Copy-Paste, be especially careful with the last lines

13\. Table-style formatting

14\. A good compiler and coding style aren't always enough

15\. Start using enum class in your code, if possible

16\. "Look what I can do!" \- Unacceptable in programming

17\. Use dedicated functions to clear private data

18\. The knowledge you have, working with one language isn't always applicable
to another language

19\. How to properly call one constructor from another

20\. The End-of-file (EOF) check may not be enough

21\. Check that the end-of-file character is reached correctly (EOF)

22\. Do not use #pragma warning(default:X)

23\. Evaluate the string literal length automatically

24\. Override and final specifiers should become your new friends.

25\. Do not compare 'this' to nullptr anymore

26\. Insidious VARIANT_BOOL

27\. Guileful BSTR strings

28\. Avoid using a macro if you can use a simple function

29\. Use a prefix increment operator (++i) in iterators instead of a postfix
(i++) operator

30\. Visual C++ and wprintf() function

31\. In C and C++ arrays are not passed by value

32\. Dangerous printf

33\. Never dereference null pointers

34\. Undefined behavior is closer than you think

35\. Adding a new constant to enum don't forget to correct switch operators

36\. If something strange is happening to your PC, check its memory.

37\. Beware of the 'continue' operator inside do {...} while (...)

38\. Use nullptr instead of NULL from now on

39\. Why incorrect code works

40\. Start using static code analysis

41\. Avoid adding a new library to the project.

42\. Don't use function names with "empty"

