14#include "llvm/Support/ErrorHandling.h"
20#define TYPE_TRAIT_1(Spelling, Name, Key) #Name,
21#include "clang/Basic/TokenKinds.def"
22#define TYPE_TRAIT_2(Spelling, Name, Key) #Name,
23#include "clang/Basic/TokenKinds.def"
24#define TYPE_TRAIT_N(Spelling, Name, Key) #Name,
25#include "clang/Basic/TokenKinds.def"
29#define TYPE_TRAIT_1(Spelling, Name, Key) #Spelling,
30#include "clang/Basic/TokenKinds.def"
31#define TYPE_TRAIT_2(Spelling, Name, Key) #Spelling,
32#include "clang/Basic/TokenKinds.def"
33#define TYPE_TRAIT_N(Spelling, Name, Key) #Spelling,
34#include "clang/Basic/TokenKinds.def"
38#define ARRAY_TYPE_TRAIT(Spelling, Name, Key) #Name,
39#include "clang/Basic/TokenKinds.def"
43#define ARRAY_TYPE_TRAIT(Spelling, Name, Key) #Spelling,
44#include "clang/Basic/TokenKinds.def"
48#define UNARY_EXPR_OR_TYPE_TRAIT(Spelling, Name, Key) #Name,
49#define CXX11_UNARY_EXPR_OR_TYPE_TRAIT(Spelling, Name, Key) #Name,
50#include "clang/Basic/TokenKinds.def"
54#define UNARY_EXPR_OR_TYPE_TRAIT(Spelling, Name, Key) #Spelling,
55#define CXX11_UNARY_EXPR_OR_TYPE_TRAIT(Spelling, Name, Key) #Spelling,
56#include "clang/Basic/TokenKinds.def"
60#define TYPE_TRAIT_1(Spelling, Name, Key) 1,
61#include "clang/Basic/TokenKinds.def"
62#define TYPE_TRAIT_2(Spelling, Name, Key) 2,
63#include "clang/Basic/TokenKinds.def"
64#define TYPE_TRAIT_N(Spelling, Name, Key) 0,
65#include "clang/Basic/TokenKinds.def"
69 assert(
T <=
TT_Last &&
"invalid enum value!");
74 assert(
T <=
ATT_Last &&
"invalid enum value!");
79 assert(
T <=
UETT_Last &&
"invalid enum value!");
84 assert(
T <=
TT_Last &&
"invalid enum value!");
85 if (
T == BTT_IsDeducible) {
92 return "__is_deducible";
98 assert(
T <=
ATT_Last &&
"invalid enum value!");
103 assert(
T <=
UETT_Last &&
"invalid enum value!");
108 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.
The JSON file list parser is used to communicate input to InstallAPI.
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.
const FunctionProtoType * T
TypeTrait
Names for traits that operate specifically on types.