144 lines
6.5 KiB
Plaintext
144 lines
6.5 KiB
Plaintext
// au-sm.lnt -- Author options - Scott Meyers
|
|
|
|
/*
|
|
This options file can be used to explicitly activate those
|
|
checks advocated in the publications:
|
|
|
|
[12] Meyers, Scott, Effective C++, Addison-Wesley, Reading Mass., 1992
|
|
[23] Meyers, Scott, More Effective C++, Addison-Wesley, 1996
|
|
|
|
You can use this file directly when linting your programs as in:
|
|
|
|
lin au-sm files
|
|
|
|
Most of the Scott Myers checks are on by default. The
|
|
Elective Notes (19??), however, are not and so this file
|
|
is necessary to get the full impact of the Scott Myers
|
|
two-volume set of recommendations.
|
|
|
|
Also, this file explicitly activates those Warnings and
|
|
Informationals advocated by Scott Myers just in case they were
|
|
suppressed previously. For example,
|
|
|
|
lin -w2 au-sm files
|
|
|
|
has the effect of removing all Informational messages
|
|
other than those reactivated in this file.
|
|
|
|
If you do not want code to adhere to all of the Scott Myers'
|
|
checks we recommend that, rather than editing this file, you
|
|
include it within a file of your own. For example: let
|
|
my-sm.lnt contain
|
|
|
|
au-sm.lnt
|
|
-e1932 // allow concrete base classes
|
|
|
|
In this way you inherit the checks specified in this file
|
|
except for the ones that you wish to specifically exclude.
|
|
|
|
Then you can use my-sm.lnt in place of au-sm.lnt
|
|
|
|
You might consider placing this file (au-sm.lnt) or your own
|
|
derivation of it (as shown above) in your global options
|
|
file.
|
|
|
|
*/
|
|
|
|
+e424 // Inappropriate deallocation -- [12, Item 5]
|
|
-append(424, -- Effective C++ #5 )
|
|
+e605 // Increase in pointer capability -- [12, Item 29]
|
|
-append(605, -- Effective C++ #29 )
|
|
+e794 // Conceivable use of null pointer -- [12, Item 7]
|
|
-append(794, -- Effective C++ #7 )
|
|
+e802 // Conceivably passing a null pointer to function -- [12, Item 7]
|
|
-append(802, -- Effective C++ #7 )
|
|
+e1509 // base class destructor for class is not virtual -- [12, Item 14]
|
|
-append(1509, -- Effective C++ #14 )
|
|
+e1510 // base class has no destructor -- [12, Item 14]
|
|
-append(1510, -- Effective C++ #14 )
|
|
+e1511 // Member hides non-virtual member -- [12, Item 37]
|
|
-append(1511, -- Effective C++ #37 )
|
|
+e1529 // not first checking for assignment to this -- [12, Item 17]
|
|
-append(1529, -- Effective C++ #17 )
|
|
+e1534 // static variable found within inline function -- [23, Item 26]
|
|
-append(1534, -- More Effective C++ #26 )
|
|
+e1536 // Exposing low access member -- [12, Item 30]
|
|
-append(1536, -- Effective C++ #30 )
|
|
+e1537 // const function returns pointer data member -- [12, Item 29 ]
|
|
-append(1537, -- Effective C++ #29 )
|
|
+e1539 // member not assigned by assignment operator -- [12, Item 16]
|
|
-append(1539, -- Effective C++ #16 )
|
|
+e1540 // pointer member freed nor zero'ed by destructor -- [12, Item 6]
|
|
-append(1540, -- Effective C++ #6 )
|
|
+e1544 // value indeterminate (order of initialization) -- [12, Item 47]
|
|
-append(1544, -- Effective C++ #47 )
|
|
+e1546 // throw() called within destuctor -- [23, Item 11]
|
|
-append(1546, -- Effective C++ #11 )
|
|
+e1547 // Assignment of array to pointer to base -- [23, Item 3]
|
|
-append(1547, -- More Effective C++ #3 )
|
|
+e1549 // Exception thrown for function not declared to throw -- [23, Item 11]
|
|
-append(1549, -- More Effective C++ #11 )
|
|
+e1551 // function may throw an exception in destructor -- [23, Item 11]
|
|
-append(1551, -- More Effective C++ #11 )
|
|
+e1722 // assignment operator does not return a reference -- [12, Item 15]
|
|
-append(1722, -- Effective C++ #15 )
|
|
+e1729 // Initializer inversion detected for member -- [12, Item 13]
|
|
-append(1729, -- Effective C++ #13 )
|
|
+e1732 // new in constructor for class which has no assignment operator -- [12, Item 11]
|
|
-append(1732, -- Effective C++ #11 )
|
|
+e1733 // new in constructor for class which has no copy constructor -- [12, Item 11]
|
|
-append(1733, -- Effective C++ #11 )
|
|
+e1735 // Virtual function has default parameter -- [12, Item 38]
|
|
-append(1735, -- Effective C++ #38 )
|
|
+e1737 // 'Symbol' hides global operator new -- [12, Item 9]
|
|
-append(1737, -- Effective C++ #9 )
|
|
+e1739 // Binary operator should be non-member function -- [12, Item 19]
|
|
-append(1739, -- Effective C++ #19 )
|
|
+e1740 // pointer member not directly freed or zero'ed by destructor -- [12, Item 6]
|
|
-append(1740, -- Effective C++ #6 )
|
|
+e1745 // member not assigned by private assignment operator -- [12, Item 16]
|
|
-append(1745, -- Effective C++ #16 )
|
|
+e1746 // parameter of function could be made const ref -- [12, Item 22]
|
|
-append(1746, -- Effective C++ #22 )
|
|
+e1747 // binary operator returning a reference -- [12, Item 23]
|
|
-append(1747, -- Effective C++ #23 )
|
|
+e1749 // base class of class need not be virtual -- [23, Item 24]
|
|
-append(1749, -- More Effective C++ #24 )
|
|
+e1752 // catch parameter Integer is not a reference -- [23, Item 13]
|
|
-append(1752, -- More Effective C++ #13 )
|
|
+e1753 // Overloading special operator -- [23, Item 7]
|
|
-append(1753, -- More Effective C++ #7 )
|
|
+e1754 // Expected 'Symbol' to be declared for class 'Symbol' -- [23, Item 22]
|
|
-append(1754, -- More Effective C++ #22 )
|
|
+e1757 // Discarded instance of post decrement/increment -- [23, Item 6]
|
|
-append(1757, -- More Effective C++ #6 )
|
|
+e1758 // Prefix increment/decrement operator returns a non-reference. -- [23, Item 6]
|
|
-append(1758, -- More Effective C++ #6 )
|
|
+e1759 // Postfix increment/decrement operator returns a reference. -- [23, Item 6]
|
|
-append(1759, -- More Effective C++ #6 )
|
|
+e1904 // Old-style C comment -- [12, Item 4]
|
|
-append(1904, -- Effective C++ #4 )
|
|
+e1923 // macro could become const variable -- [12, Item 1]
|
|
-append(1923, -- Effective C++ #1 )
|
|
+e1924 // C-style cast -- [23, Item 2]
|
|
-append(1924, -- More Effective C++ #2 )
|
|
+e1925 // public data member -- [12, Item 20]
|
|
-append(1925, -- Effective C++ #20 )
|
|
+e1926 // 'Symbol's default constructor implicitly called -- [12, Item 12]
|
|
-append(1926, -- Effective C++ #12 )
|
|
+e1927 // 'Symbol' was not initialized in the constructor init list -- [12, Item 12]
|
|
-append(1927, -- Effective C++ #12 )
|
|
+e1928 // 'Symbol' did not appear in the ctor initializer list -- [12, Item 12]
|
|
-append(1928, -- Effective C++ #12 )
|
|
+e1929 // function returning a reference -- [12, Item 23]
|
|
-append(1929, -- Effective C++ #23 )
|
|
-esym( 1929, operator<<, operator>> ) // but these op's are OK
|
|
+e1930 // Conversion operator found -- [23, Item 5]
|
|
-append(1930, -- More Effective C++ #5 )
|
|
+e1931 // Constructor can be used for implicit conversions -- [23, Item 5]
|
|
-append(1931, -- More Effective C++ #5 )
|
|
+e1932 // Base class is not abstract. -- [23, Item 33]
|
|
-append(1932, -- More Effective C++ #33 )
|
|
+e1934 // flags member functions operator<< and operator>>
|
|
-append(1934, -- Effective C++ #19 )
|