1 // au-sm.lnt -- Author options - Scott Meyers
4 This options file can be used to explicitly activate those
5 checks advocated in the publications:
7 [12] Meyers, Scott, Effective C++, Addison-Wesley, Reading Mass., 1992
8 [23] Meyers, Scott, More Effective C++, Addison-Wesley, 1996
10 You can use this file directly when linting your programs as in:
14 Most of the Scott Myers checks are on by default. The
15 Elective Notes (19??), however, are not and so this file
16 is necessary to get the full impact of the Scott Myers
17 two-volume set of recommendations.
19 Also, this file explicitly activates those Warnings and
20 Informationals advocated by Scott Myers just in case they were
21 suppressed previously. For example,
25 has the effect of removing all Informational messages
26 other than those reactivated in this file.
28 If you do not want code to adhere to all of the Scott Myers'
29 checks we recommend that, rather than editing this file, you
30 include it within a file of your own. For example: let
34 -e1932 // allow concrete base classes
36 In this way you inherit the checks specified in this file
37 except for the ones that you wish to specifically exclude.
39 Then you can use my-sm.lnt in place of au-sm.lnt
41 You might consider placing this file (au-sm.lnt) or your own
42 derivation of it (as shown above) in your global options
47 +e424 // Inappropriate deallocation -- [12, Item 5]
48 -append(424, -- Effective C++ #5 )
49 +e605 // Increase in pointer capability -- [12, Item 29]
50 -append(605, -- Effective C++ #29 )
51 +e794 // Conceivable use of null pointer -- [12, Item 7]
52 -append(794, -- Effective C++ #7 )
53 +e802 // Conceivably passing a null pointer to function -- [12, Item 7]
54 -append(802, -- Effective C++ #7 )
55 +e1509 // base class destructor for class is not virtual -- [12, Item 14]
56 -append(1509, -- Effective C++ #14 )
57 +e1510 // base class has no destructor -- [12, Item 14]
58 -append(1510, -- Effective C++ #14 )
59 +e1511 // Member hides non-virtual member -- [12, Item 37]
60 -append(1511, -- Effective C++ #37 )
61 +e1529 // not first checking for assignment to this -- [12, Item 17]
62 -append(1529, -- Effective C++ #17 )
63 +e1534 // static variable found within inline function -- [23, Item 26]
64 -append(1534, -- More Effective C++ #26 )
65 +e1536 // Exposing low access member -- [12, Item 30]
66 -append(1536, -- Effective C++ #30 )
67 +e1537 // const function returns pointer data member -- [12, Item 29 ]
68 -append(1537, -- Effective C++ #29 )
69 +e1539 // member not assigned by assignment operator -- [12, Item 16]
70 -append(1539, -- Effective C++ #16 )
71 +e1540 // pointer member freed nor zero'ed by destructor -- [12, Item 6]
72 -append(1540, -- Effective C++ #6 )
73 +e1544 // value indeterminate (order of initialization) -- [12, Item 47]
74 -append(1544, -- Effective C++ #47 )
75 +e1546 // throw() called within destuctor -- [23, Item 11]
76 -append(1546, -- Effective C++ #11 )
77 +e1547 // Assignment of array to pointer to base -- [23, Item 3]
78 -append(1547, -- More Effective C++ #3 )
79 +e1549 // Exception thrown for function not declared to throw -- [23, Item 11]
80 -append(1549, -- More Effective C++ #11 )
81 +e1551 // function may throw an exception in destructor -- [23, Item 11]
82 -append(1551, -- More Effective C++ #11 )
83 +e1722 // assignment operator does not return a reference -- [12, Item 15]
84 -append(1722, -- Effective C++ #15 )
85 +e1729 // Initializer inversion detected for member -- [12, Item 13]
86 -append(1729, -- Effective C++ #13 )
87 +e1732 // new in constructor for class which has no assignment operator -- [12, Item 11]
88 -append(1732, -- Effective C++ #11 )
89 +e1733 // new in constructor for class which has no copy constructor -- [12, Item 11]
90 -append(1733, -- Effective C++ #11 )
91 +e1735 // Virtual function has default parameter -- [12, Item 38]
92 -append(1735, -- Effective C++ #38 )
93 +e1737 // 'Symbol' hides global operator new -- [12, Item 9]
94 -append(1737, -- Effective C++ #9 )
95 +e1739 // Binary operator should be non-member function -- [12, Item 19]
96 -append(1739, -- Effective C++ #19 )
97 +e1740 // pointer member not directly freed or zero'ed by destructor -- [12, Item 6]
98 -append(1740, -- Effective C++ #6 )
99 +e1745 // member not assigned by private assignment operator -- [12, Item 16]
100 -append(1745, -- Effective C++ #16 )
101 +e1746 // parameter of function could be made const ref -- [12, Item 22]
102 -append(1746, -- Effective C++ #22 )
103 +e1747 // binary operator returning a reference -- [12, Item 23]
104 -append(1747, -- Effective C++ #23 )
105 +e1749 // base class of class need not be virtual -- [23, Item 24]
106 -append(1749, -- More Effective C++ #24 )
107 +e1752 // catch parameter Integer is not a reference -- [23, Item 13]
108 -append(1752, -- More Effective C++ #13 )
109 +e1753 // Overloading special operator -- [23, Item 7]
110 -append(1753, -- More Effective C++ #7 )
111 +e1754 // Expected 'Symbol' to be declared for class 'Symbol' -- [23, Item 22]
112 -append(1754, -- More Effective C++ #22 )
113 +e1757 // Discarded instance of post decrement/increment -- [23, Item 6]
114 -append(1757, -- More Effective C++ #6 )
115 +e1758 // Prefix increment/decrement operator returns a non-reference. -- [23, Item 6]
116 -append(1758, -- More Effective C++ #6 )
117 +e1759 // Postfix increment/decrement operator returns a reference. -- [23, Item 6]
118 -append(1759, -- More Effective C++ #6 )
119 +e1904 // Old-style C comment -- [12, Item 4]
120 -append(1904, -- Effective C++ #4 )
121 +e1923 // macro could become const variable -- [12, Item 1]
122 -append(1923, -- Effective C++ #1 )
123 +e1924 // C-style cast -- [23, Item 2]
124 -append(1924, -- More Effective C++ #2 )
125 +e1925 // public data member -- [12, Item 20]
126 -append(1925, -- Effective C++ #20 )
127 +e1926 // 'Symbol's default constructor implicitly called -- [12, Item 12]
128 -append(1926, -- Effective C++ #12 )
129 +e1927 // 'Symbol' was not initialized in the constructor init list -- [12, Item 12]
130 -append(1927, -- Effective C++ #12 )
131 +e1928 // 'Symbol' did not appear in the ctor initializer list -- [12, Item 12]
132 -append(1928, -- Effective C++ #12 )
133 +e1929 // function returning a reference -- [12, Item 23]
134 -append(1929, -- Effective C++ #23 )
135 -esym( 1929, operator<<, operator>> ) // but these op's are OK
136 +e1930 // Conversion operator found -- [23, Item 5]
137 -append(1930, -- More Effective C++ #5 )
138 +e1931 // Constructor can be used for implicit conversions -- [23, Item 5]
139 -append(1931, -- More Effective C++ #5 )
140 +e1932 // Base class is not abstract. -- [23, Item 33]
141 -append(1932, -- More Effective C++ #33 )
142 +e1934 // flags member functions operator<< and operator>>
143 -append(1934, -- Effective C++ #19 )