1 #include <set>
2 
3 static const std::set<std::string> reserved_names = {
4     // c++ keywords taken from https://en.cppreference.com/w/cpp/keyword
5     "alignas",
6     "alignof",
7     "and",
8     "and_eq",
9     "asm",
10     "atomic_cancel",
11     "atomic_commit",
12     "atomic_noexcept",
13     "auto",
14     "bitand",
15     "bitor",
16     "bool",
17     "break",
18     "case",
19     "catch",
20     "char",
21     "char8_t",
22     "char16_t",
23     "char32_t",
24     "class",
25     "compl",
26     "concept",
27     "const",
28     "consteval",
29     "constexpr",
30     "constinit",
31     "const_cast",
32     "continue",
33     "co_await",
34     "co_return",
35     "co_yield",
36     "decltype",
37     "default",
38     "delete",
39     "do",
40     "double",
41     "dynamic_cast",
42     "else",
43     "enum",
44     "explicit",
45     "export",
46     "extern",
47     "false",
48     "float",
49     "for",
50     "friend",
51     "goto",
52     "if",
53     "inline",
54     "int",
55     "long",
56     "mutable",
57     "namespace",
58     "new",
59     "noexcept",
60     "not",
61     "not_eq",
62     "nullptr",
63     "operator",
64     "or",
65     "or_eq",
66     "private",
67     "protected",
68     "public",
69     "reflexpr",
70     "register",
71     "reinterpret_cast",
72     "requires",
73     "return",
74     "short",
75     "signed",
76     "sizeof",
77     "static",
78     "static_assert",
79     "static_cast",
80     "struct",
81     "switch",
82     "synchronized",
83     "template",
84     "this",
85     "thread_local",
86     "throw",
87     "true",
88     "try",
89     "typedef",
90     "typeid",
91     "typename",
92     "union",
93     "unsigned",
94     "using",
95     "virtual",
96     "void",
97     "volatile",
98     "wchar_t",
99     "while",
100     "xor",
101     "xor_eq",
102     // common defines
103     "NULL"
104 };
105