clang
8.0.0
include
clang
Basic
TypeTraits.h
Go to the documentation of this file.
1
//===--- TypeTraits.h - C++ Type Traits Support Enumerations ----*- C++ -*-===//
2
//
3
// The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
///
10
/// \file
11
/// Defines enumerations for the type traits support.
12
///
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLVM_CLANG_BASIC_TYPETRAITS_H
16
#define LLVM_CLANG_BASIC_TYPETRAITS_H
17
18
namespace
clang
{
19
20
/// Names for traits that operate specifically on types.
21
enum
TypeTrait
{
22
UTT_HasNothrowAssign
,
23
UTT_HasNothrowMoveAssign
,
24
UTT_HasNothrowCopy
,
25
UTT_HasNothrowConstructor
,
26
UTT_HasTrivialAssign
,
27
UTT_HasTrivialMoveAssign
,
28
UTT_HasTrivialCopy
,
29
UTT_HasTrivialDefaultConstructor
,
30
UTT_HasTrivialMoveConstructor
,
31
UTT_HasTrivialDestructor
,
32
UTT_HasVirtualDestructor
,
33
UTT_IsAbstract
,
34
UTT_IsAggregate
,
35
UTT_IsArithmetic
,
36
UTT_IsArray
,
37
UTT_IsClass
,
38
UTT_IsCompleteType
,
39
UTT_IsCompound
,
40
UTT_IsConst
,
41
UTT_IsDestructible
,
42
UTT_IsEmpty
,
43
UTT_IsEnum
,
44
UTT_IsFinal
,
45
UTT_IsFloatingPoint
,
46
UTT_IsFunction
,
47
UTT_IsFundamental
,
48
UTT_IsIntegral
,
49
UTT_IsInterfaceClass
,
50
UTT_IsLiteral
,
51
UTT_IsLvalueReference
,
52
UTT_IsMemberFunctionPointer
,
53
UTT_IsMemberObjectPointer
,
54
UTT_IsMemberPointer
,
55
UTT_IsNothrowDestructible
,
56
UTT_IsObject
,
57
UTT_IsPOD
,
58
UTT_IsPointer
,
59
UTT_IsPolymorphic
,
60
UTT_IsReference
,
61
UTT_IsRvalueReference
,
62
UTT_IsScalar
,
63
UTT_IsSealed
,
64
UTT_IsSigned
,
65
UTT_IsStandardLayout
,
66
UTT_IsTrivial
,
67
UTT_IsTriviallyCopyable
,
68
UTT_IsTriviallyDestructible
,
69
UTT_IsUnion
,
70
UTT_IsUnsigned
,
71
UTT_IsVoid
,
72
UTT_IsVolatile
,
73
UTT_HasUniqueObjectRepresentations
,
74
UTT_Last
=
UTT_HasUniqueObjectRepresentations
,
75
BTT_IsBaseOf
,
76
BTT_IsConvertible
,
77
BTT_IsConvertibleTo
,
78
BTT_IsSame
,
79
BTT_TypeCompatible
,
80
BTT_IsAssignable
,
81
BTT_IsNothrowAssignable
,
82
BTT_IsTriviallyAssignable
,
83
BTT_ReferenceBindsToTemporary
,
84
BTT_Last
=
BTT_ReferenceBindsToTemporary
,
85
TT_IsConstructible
,
86
TT_IsNothrowConstructible
,
87
TT_IsTriviallyConstructible
88
};
89
90
/// Names for the array type traits.
91
enum
ArrayTypeTrait
{
92
ATT_ArrayRank
,
93
ATT_ArrayExtent
94
};
95
96
/// Names for the "expression or type" traits.
97
enum
UnaryExprOrTypeTrait
{
98
UETT_SizeOf
,
99
/// Used for C's _Alignof and C++'s alignof.
100
/// _Alignof and alignof return the required ABI alignment.
101
UETT_AlignOf
,
102
UETT_VecStep
,
103
UETT_OpenMPRequiredSimdAlign
,
104
/// Used for GCC's __alignof.
105
/// __alignof returns the preferred alignment of a type, the alignment
106
/// clang will attempt to give an object of the type if allowed by ABI.
107
UETT_PreferredAlignOf
,
108
};
109
}
110
111
#endif
clang::UTT_IsEnum
Definition:
TypeTraits.h:43
clang::UTT_IsMemberPointer
Definition:
TypeTraits.h:54
clang::BTT_IsTriviallyAssignable
Definition:
TypeTraits.h:82
clang::UTT_IsSigned
Definition:
TypeTraits.h:64
clang::BTT_ReferenceBindsToTemporary
Definition:
TypeTraits.h:83
clang::UTT_HasNothrowCopy
Definition:
TypeTraits.h:24
clang::UTT_IsMemberObjectPointer
Definition:
TypeTraits.h:53
clang::BTT_IsAssignable
Definition:
TypeTraits.h:80
clang::TT_IsNothrowConstructible
Definition:
TypeTraits.h:86
clang::UTT_IsNothrowDestructible
Definition:
TypeTraits.h:55
clang::UTT_HasNothrowAssign
Definition:
TypeTraits.h:22
clang::BTT_TypeCompatible
Definition:
TypeTraits.h:79
clang::UTT_IsCompound
Definition:
TypeTraits.h:39
clang::UTT_IsAggregate
Definition:
TypeTraits.h:34
clang::UTT_IsTrivial
Definition:
TypeTraits.h:66
clang::UTT_IsFundamental
Definition:
TypeTraits.h:47
clang::UTT_IsVolatile
Definition:
TypeTraits.h:72
clang::UETT_PreferredAlignOf
Used for GCC's __alignof.
Definition:
TypeTraits.h:107
clang::UnaryExprOrTypeTrait
UnaryExprOrTypeTrait
Names for the "expression or type" traits.
Definition:
TypeTraits.h:97
clang::BTT_IsNothrowAssignable
Definition:
TypeTraits.h:81
clang::UTT_Last
Definition:
TypeTraits.h:74
clang::UTT_IsCompleteType
Definition:
TypeTraits.h:38
clang::UTT_IsFunction
Definition:
TypeTraits.h:46
clang::ArrayTypeTrait
ArrayTypeTrait
Names for the array type traits.
Definition:
TypeTraits.h:91
clang::UTT_HasTrivialDestructor
Definition:
TypeTraits.h:31
clang::UTT_IsStandardLayout
Definition:
TypeTraits.h:65
clang::TypeTrait
TypeTrait
Names for traits that operate specifically on types.
Definition:
TypeTraits.h:21
clang::UTT_IsScalar
Definition:
TypeTraits.h:62
clang::UTT_IsAbstract
Definition:
TypeTraits.h:33
clang::UTT_HasUniqueObjectRepresentations
Definition:
TypeTraits.h:73
clang::UTT_IsLiteral
Definition:
TypeTraits.h:50
clang::UTT_IsArithmetic
Definition:
TypeTraits.h:35
clang::UTT_IsLvalueReference
Definition:
TypeTraits.h:51
clang::UTT_IsIntegral
Definition:
TypeTraits.h:48
clang::UTT_IsVoid
Definition:
TypeTraits.h:71
clang::UTT_IsReference
Definition:
TypeTraits.h:60
clang::UTT_HasTrivialAssign
Definition:
TypeTraits.h:26
clang::UTT_IsRvalueReference
Definition:
TypeTraits.h:61
clang::UTT_HasTrivialMoveAssign
Definition:
TypeTraits.h:27
clang::UTT_IsObject
Definition:
TypeTraits.h:56
clang::UTT_HasNothrowMoveAssign
Definition:
TypeTraits.h:23
clang::BTT_Last
Definition:
TypeTraits.h:84
clang::BTT_IsConvertibleTo
Definition:
TypeTraits.h:77
clang::UTT_IsPOD
Definition:
TypeTraits.h:57
clang::UTT_HasTrivialDefaultConstructor
Definition:
TypeTraits.h:29
clang::ATT_ArrayRank
Definition:
TypeTraits.h:92
clang::UTT_IsFinal
Definition:
TypeTraits.h:44
clang::UETT_AlignOf
Used for C's _Alignof and C++'s alignof.
Definition:
TypeTraits.h:101
clang::UTT_IsUnsigned
Definition:
TypeTraits.h:70
clang::UTT_IsEmpty
Definition:
TypeTraits.h:42
clang::UTT_HasNothrowConstructor
Definition:
TypeTraits.h:25
clang::UTT_IsPointer
Definition:
TypeTraits.h:58
clang::ATT_ArrayExtent
Definition:
TypeTraits.h:93
clang::UTT_IsConst
Definition:
TypeTraits.h:40
clang
Dataflow Directional Tag Classes.
Definition:
CFGReachabilityAnalysis.h:22
clang::UTT_IsMemberFunctionPointer
Definition:
TypeTraits.h:52
clang::BTT_IsConvertible
Definition:
TypeTraits.h:76
clang::UTT_HasTrivialMoveConstructor
Definition:
TypeTraits.h:30
clang::UTT_IsDestructible
Definition:
TypeTraits.h:41
clang::UTT_IsTriviallyCopyable
Definition:
TypeTraits.h:67
clang::UTT_IsArray
Definition:
TypeTraits.h:36
clang::UTT_IsClass
Definition:
TypeTraits.h:37
clang::UTT_IsInterfaceClass
Definition:
TypeTraits.h:49
clang::BTT_IsSame
Definition:
TypeTraits.h:78
clang::UTT_HasVirtualDestructor
Definition:
TypeTraits.h:32
clang::UTT_IsUnion
Definition:
TypeTraits.h:69
clang::UTT_IsFloatingPoint
Definition:
TypeTraits.h:45
clang::BTT_IsBaseOf
Definition:
TypeTraits.h:75
clang::UETT_SizeOf
Definition:
TypeTraits.h:98
clang::TT_IsTriviallyConstructible
Definition:
TypeTraits.h:87
clang::UTT_IsTriviallyDestructible
Definition:
TypeTraits.h:68
clang::UETT_VecStep
Definition:
TypeTraits.h:102
clang::UTT_HasTrivialCopy
Definition:
TypeTraits.h:28
clang::UTT_IsPolymorphic
Definition:
TypeTraits.h:59
clang::TT_IsConstructible
Definition:
TypeTraits.h:85
clang::UETT_OpenMPRequiredSimdAlign
Definition:
TypeTraits.h:103
clang::UTT_IsSealed
Definition:
TypeTraits.h:63
Generated on Tue Feb 12 2019 09:15:19 for clang by
1.8.13