1 //===--- TypeTraits.h - C++ Type Traits Support Enumerations ----*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file defines enumerations for the type traits support.
12 //===----------------------------------------------------------------------===//
14 #ifndef LLVM_CLANG_TYPETRAITS_H
15 #define LLVM_CLANG_TYPETRAITS_H
19 /// UnaryTypeTrait - Names for the unary type traits.
23 UTT_HasNothrowConstructor,
26 UTT_HasTrivialDefaultConstructor,
27 UTT_HasTrivialDestructor,
28 UTT_HasVirtualDestructor,
43 UTT_IsLvalueReference,
44 UTT_IsMemberFunctionPointer,
45 UTT_IsMemberObjectPointer,
52 UTT_IsRvalueReference,
57 UTT_IsTriviallyCopyable,
64 /// BinaryTypeTrait - Names for the binary type traits.
65 enum BinaryTypeTrait {
73 /// ArrayTypeTrait - Names for the array type traits.
79 /// UnaryExprOrTypeTrait - Names for the "expression or type" traits.
80 enum UnaryExprOrTypeTrait {