1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
namespace Foo {
enum Orientation {
Vertical,
Horizontal
};
}
class Bar {
enum AnEnum {
AValue,
AnotherValue
};
};
enum Types {
TypeA,
TypeC,
TypeB,
TypeD,
TypeE = TypeD
};
using namespace Foo;
int main()
{
int j;
Types t = TypeA;
Types t2 = TypeB;
bool b = true;
enum { foo, bla } i;
// all handled, don't activate
switch (t) {
case TypeA:
case TypeB:
case TypeC:
case TypeD:
case TypeE:
;
}
// TypeD must still be added for the outer switch
switch (t) {
case TypeA:
switch (t2) {
case TypeD: ;
default: ;
}
break;
case TypeB:
case TypeE:
break;
default:
;
}
// Resolve type for expressions as switch condition
switch (b ? t : t2) {
case TypeA:;
}
// Namespaces
Foo::Orientation o;
switch (o) {
case Vertical:
break;
}
// Class members
Bar::AnEnum a;
switch (a) {
case Bar::AnotherValue:
break;
}
// Not a named type
switch (i) {
case bla:
;
}
// ignore pathological case that doesn't have a compound statement
switch (i)
case foo: ;
}
|