File tree 3 files changed +14
-9
lines changed
3 files changed +14
-9
lines changed Original file line number Diff line number Diff line change 13
13
14
14
namespace clang ::tidy::cppcoreguidelines {
15
15
16
- // / Check for unscoped enums that are not contained in classes/structs .
17
- // / Suggest to use scoped enums (enum class) instead.
16
+ // / Check for unscoped enums and suggest to use scoped enums (enum class) .
17
+ // / Optionally, ignore unscoped enums in classes via IgnoreUnscopedEnumsInClasses
18
18
// /
19
19
// / For the user-facing documentation see:
20
20
// / http://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/use-enum-class.html
Original file line number Diff line number Diff line change @@ -139,7 +139,7 @@ New checks
139
139
- New :doc: `cppcoreguidelines-use-enum-class
140
140
<clang-tidy/checks/cppcoreguidelines/use-enum-class>` check.
141
141
142
- Finds plain non-class enum definitions that could use ``enum class ``.
142
+ Finds plain non-class `` enum `` definitions that could use ``enum class ``.
143
143
144
144
New check aliases
145
145
^^^^^^^^^^^^^^^^^
Original file line number Diff line number Diff line change 3
3
cppcoreguidelines-use-enum-class
4
4
=============================
5
5
6
- Scoped enums (enum class) should be preferred over unscoped enums:
7
- https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Renum-class
6
+ Finds plain non-class ``enum `` definitions that could use ``enum class ``.
8
7
9
- Unscoped enums in classes are not reported since it is a well
10
- established pattern to limit the scope of plain enums.
8
+ This check implements `Enum.3
9
+ <https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Renum-class> `_
10
+ from the C++ Core Guidelines."
11
11
12
12
Example:
13
13
@@ -17,10 +17,15 @@ Example:
17
17
enum class E {}; // OK
18
18
19
19
struct S {
20
- enum E {}; // OK, scope already limited
20
+ enum E {}; // use "enum class E {};" instead
21
+ // OK with option IgnoreUnscopedEnumsInClasses
21
22
};
22
23
23
24
namespace N {
24
25
enum E {}; // use "enum class E {};" instead
25
- // report since it is hard to detect how large the surrounding namespace is
26
26
}
27
+
28
+
29
+ .. option :: IgnoreUnscopedEnumsInClasses
30
+
31
+ When `true ` (default is `false `), ignores unscoped ``enum `` declarations in classes.
You can’t perform that action at this time.
0 commit comments