14#include "llvm/Support/ErrorHandling.h"
19#define TYPE_TRAIT_1(Spelling, Name, Key) #Name,
20#include "clang/Basic/TokenKinds.def"
21#define TYPE_TRAIT_2(Spelling, Name, Key) #Name,
22#include "clang/Basic/TokenKinds.def"
23#define TYPE_TRAIT_N(Spelling, Name, Key) #Name,
24#include "clang/Basic/TokenKinds.def"
28#define TYPE_TRAIT_1(Spelling, Name, Key) #Spelling,
29#include "clang/Basic/TokenKinds.def"
30#define TYPE_TRAIT_2(Spelling, Name, Key) #Spelling,
31#include "clang/Basic/TokenKinds.def"
32#define TYPE_TRAIT_N(Spelling, Name, Key) #Spelling,
33#include "clang/Basic/TokenKinds.def"
37#define ARRAY_TYPE_TRAIT(Spelling, Name, Key) #Name,
38#include "clang/Basic/TokenKinds.def"
42#define ARRAY_TYPE_TRAIT(Spelling, Name, Key) #Spelling,
43#include "clang/Basic/TokenKinds.def"
47#define UNARY_EXPR_OR_TYPE_TRAIT(Spelling, Name, Key) #Name,
48#define CXX11_UNARY_EXPR_OR_TYPE_TRAIT(Spelling, Name, Key) #Name,
49#include "clang/Basic/TokenKinds.def"
53#define UNARY_EXPR_OR_TYPE_TRAIT(Spelling, Name, Key) #Spelling,
54#define CXX11_UNARY_EXPR_OR_TYPE_TRAIT(Spelling, Name, Key) #Spelling,
55#include "clang/Basic/TokenKinds.def"
59#define TYPE_TRAIT_1(Spelling, Name, Key) 1,
60#include "clang/Basic/TokenKinds.def"
61#define TYPE_TRAIT_2(Spelling, Name, Key) 2,
62#include "clang/Basic/TokenKinds.def"
63#define TYPE_TRAIT_N(Spelling, Name, Key) 0,
64#include "clang/Basic/TokenKinds.def"
68 assert(T <=
TT_Last &&
"invalid enum value!");
73 assert(T <=
ATT_Last &&
"invalid enum value!");
78 assert(T <=
UETT_Last &&
"invalid enum value!");
83 assert(T <=
TT_Last &&
"invalid enum value!");
88 assert(T <=
ATT_Last &&
"invalid enum value!");
93 assert(T <=
UETT_Last &&
"invalid enum value!");
98 assert(T <=
TT_Last &&
"invalid enum value!");
static constexpr const char * UnaryExprOrTypeTraitSpellings[]
static constexpr const char * TypeTraitNames[]
static constexpr const char * ArrayTypeTraitNames[]
static constexpr const char * ArrayTypeTraitSpellings[]
static constexpr const unsigned TypeTraitArities[]
static constexpr const char * TypeTraitSpellings[]
static constexpr const char * UnaryExprOrTypeTraitNames[]
Defines enumerations for the type traits support.
ArrayTypeTrait
Names for the array type traits.
unsigned getTypeTraitArity(TypeTrait T) LLVM_READONLY
Return the arity of the type trait T.
const char * getTraitName(ExpressionTrait T) LLVM_READONLY
Return the internal name of type trait T. Never null.
UnaryExprOrTypeTrait
Names for the "expression or type" traits.
const char * getTraitSpelling(ExpressionTrait T) LLVM_READONLY
Return the spelling of the type trait TT. Never null.
TypeTrait
Names for traits that operate specifically on types.