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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
| //===--- TypeTraits.h - C++ Type Traits Support Enumerations ----*- C++ -*-===//
| //
| // The LLVM Compiler Infrastructure
| //
| // This file is distributed under the University of Illinois Open Source
| // License. See LICENSE.TXT for details.
| //
| //===----------------------------------------------------------------------===//
| ///
| /// \file
| /// Defines enumerations for the type traits support.
| ///
| //===----------------------------------------------------------------------===//
|
| #ifndef LLVM_CLANG_BASIC_TYPETRAITS_H
| #define LLVM_CLANG_BASIC_TYPETRAITS_H
|
| namespace clang {
|
| /// Names for traits that operate specifically on types.
| enum TypeTrait {
| UTT_HasNothrowAssign,
| UTT_HasNothrowMoveAssign,
| UTT_HasNothrowCopy,
| UTT_HasNothrowConstructor,
| UTT_HasTrivialAssign,
| UTT_HasTrivialMoveAssign,
| UTT_HasTrivialCopy,
| UTT_HasTrivialDefaultConstructor,
| UTT_HasTrivialMoveConstructor,
| UTT_HasTrivialDestructor,
| UTT_HasVirtualDestructor,
| UTT_IsAbstract,
| UTT_IsAggregate,
| UTT_IsArithmetic,
| UTT_IsArray,
| UTT_IsClass,
| UTT_IsCompleteType,
| UTT_IsCompound,
| UTT_IsConst,
| UTT_IsDestructible,
| UTT_IsEmpty,
| UTT_IsEnum,
| UTT_IsFinal,
| UTT_IsFloatingPoint,
| UTT_IsFunction,
| UTT_IsFundamental,
| UTT_IsIntegral,
| UTT_IsInterfaceClass,
| UTT_IsLiteral,
| UTT_IsLvalueReference,
| UTT_IsMemberFunctionPointer,
| UTT_IsMemberObjectPointer,
| UTT_IsMemberPointer,
| UTT_IsNothrowDestructible,
| UTT_IsObject,
| UTT_IsPOD,
| UTT_IsPointer,
| UTT_IsPolymorphic,
| UTT_IsReference,
| UTT_IsRvalueReference,
| UTT_IsScalar,
| UTT_IsSealed,
| UTT_IsSigned,
| UTT_IsStandardLayout,
| UTT_IsTrivial,
| UTT_IsTriviallyCopyable,
| UTT_IsTriviallyDestructible,
| UTT_IsUnion,
| UTT_IsUnsigned,
| UTT_IsVoid,
| UTT_IsVolatile,
| UTT_HasUniqueObjectRepresentations,
| UTT_Last = UTT_HasUniqueObjectRepresentations,
| BTT_IsBaseOf,
| BTT_IsConvertible,
| BTT_IsConvertibleTo,
| BTT_IsSame,
| BTT_TypeCompatible,
| BTT_IsAssignable,
| BTT_IsNothrowAssignable,
| BTT_IsTriviallyAssignable,
| BTT_ReferenceBindsToTemporary,
| BTT_Last = BTT_ReferenceBindsToTemporary,
| TT_IsConstructible,
| TT_IsNothrowConstructible,
| TT_IsTriviallyConstructible
| };
|
| /// Names for the array type traits.
| enum ArrayTypeTrait {
| ATT_ArrayRank,
| ATT_ArrayExtent
| };
|
| /// Names for the "expression or type" traits.
| enum UnaryExprOrTypeTrait {
| UETT_SizeOf,
| UETT_AlignOf,
| UETT_VecStep,
| UETT_OpenMPRequiredSimdAlign,
| };
| }
|
| #endif
|
|