|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Declarations
tools/clang/lib/AST/Interp/Block.h 32 enum PrimType : unsigned;
tools/clang/lib/AST/Interp/Context.h 35 enum PrimType : unsigned;
tools/clang/lib/AST/Interp/Descriptor.h 24 enum PrimType : unsigned;
tools/clang/lib/AST/Interp/Function.h 27 enum PrimType : uint32_t;
tools/clang/lib/AST/Interp/Pointer.h 33 enum PrimType : unsigned;
References
gen/tools/clang/lib/AST/Opcodes.inc 109 bool emitAdd(PrimType, const SourceInfo &I);
118 ::emitAdd(PrimType T0, const SourceInfo &I) {
327 bool emitAddOffset(PrimType, const SourceInfo &I);
336 ::emitAddOffset(PrimType T0, const SourceInfo &I) {
869 bool emitDup(PrimType, const SourceInfo &I);
878 ::emitDup(PrimType T0, const SourceInfo &I) {
1107 bool emitEQ(PrimType, const SourceInfo &I);
1116 ::emitEQ(PrimType T0, const SourceInfo &I) {
1376 bool emitGE(PrimType, const SourceInfo &I);
1385 ::emitGE(PrimType T0, const SourceInfo &I) {
1614 bool emitGT(PrimType, const SourceInfo &I);
1623 ::emitGT(PrimType T0, const SourceInfo &I) {
1862 bool emitGetField(PrimType, uint32_t, const SourceInfo &I);
1871 ::emitGetField(PrimType T0, uint32_t A0, const SourceInfo &I) {
2110 bool emitGetFieldPop(PrimType, uint32_t, const SourceInfo &I);
2119 ::emitGetFieldPop(PrimType T0, uint32_t A0, const SourceInfo &I) {
2358 bool emitGetGlobal(PrimType, uint32_t, const SourceInfo &I);
2367 ::emitGetGlobal(PrimType T0, uint32_t A0, const SourceInfo &I) {
2610 bool emitGetLocal(PrimType, uint32_t, const SourceInfo &I);
2619 ::emitGetLocal(PrimType T0, uint32_t A0, const SourceInfo &I) {
2856 bool emitGetParam(PrimType, uint32_t, const SourceInfo &I);
2865 ::emitGetParam(PrimType T0, uint32_t A0, const SourceInfo &I) {
3449 bool emitGetThisField(PrimType, uint32_t, const SourceInfo &I);
3458 ::emitGetThisField(PrimType T0, uint32_t A0, const SourceInfo &I) {
3685 bool emitInitBitField(PrimType, const Record::Field *, const SourceInfo &I);
3694 ::emitInitBitField(PrimType T0, const Record::Field * A0, const SourceInfo &I) {
3924 bool emitInitElem(PrimType, uint32_t, const SourceInfo &I);
3933 ::emitInitElem(PrimType T0, uint32_t A0, const SourceInfo &I) {
4172 bool emitInitElemPop(PrimType, uint32_t, const SourceInfo &I);
4181 ::emitInitElemPop(PrimType T0, uint32_t A0, const SourceInfo &I) {
4420 bool emitInitField(PrimType, uint32_t, const SourceInfo &I);
4429 ::emitInitField(PrimType T0, uint32_t A0, const SourceInfo &I) {
4668 bool emitInitFieldActive(PrimType, uint32_t, const SourceInfo &I);
4677 ::emitInitFieldActive(PrimType T0, uint32_t A0, const SourceInfo &I) {
4916 bool emitInitGlobal(PrimType, uint32_t, const SourceInfo &I);
4925 ::emitInitGlobal(PrimType T0, uint32_t A0, const SourceInfo &I) {
5154 bool emitInitPop(PrimType, const SourceInfo &I);
5163 ::emitInitPop(PrimType T0, const SourceInfo &I) {
5390 bool emitInitThisBitField(PrimType, const Record::Field *, const SourceInfo &I);
5399 ::emitInitThisBitField(PrimType T0, const Record::Field * A0, const SourceInfo &I) {
5629 bool emitInitThisField(PrimType, uint32_t, const SourceInfo &I);
5638 ::emitInitThisField(PrimType T0, uint32_t A0, const SourceInfo &I) {
5877 bool emitInitThisFieldActive(PrimType, uint32_t, const SourceInfo &I);
5886 ::emitInitThisFieldActive(PrimType T0, uint32_t A0, const SourceInfo &I) {
6190 bool emitLE(PrimType, const SourceInfo &I);
6199 ::emitLE(PrimType T0, const SourceInfo &I) {
6428 bool emitLT(PrimType, const SourceInfo &I);
6437 ::emitLT(PrimType T0, const SourceInfo &I) {
6666 bool emitLoad(PrimType, const SourceInfo &I);
6675 ::emitLoad(PrimType T0, const SourceInfo &I) {
6904 bool emitLoadPop(PrimType, const SourceInfo &I);
6913 ::emitLoadPop(PrimType T0, const SourceInfo &I) {
7131 bool emitMul(PrimType, const SourceInfo &I);
7140 ::emitMul(PrimType T0, const SourceInfo &I) {
7360 bool emitNE(PrimType, const SourceInfo &I);
7369 ::emitNE(PrimType T0, const SourceInfo &I) {
7691 bool emitPop(PrimType, const SourceInfo &I);
7700 ::emitPop(PrimType T0, const SourceInfo &I) {
7953 bool emitRet(PrimType, const SourceInfo &I);
7962 ::emitRet(PrimType T0, const SourceInfo &I) {
8251 bool emitSetField(PrimType, uint32_t, const SourceInfo &I);
8260 ::emitSetField(PrimType T0, uint32_t A0, const SourceInfo &I) {
8499 bool emitSetGlobal(PrimType, uint32_t, const SourceInfo &I);
8508 ::emitSetGlobal(PrimType T0, uint32_t A0, const SourceInfo &I) {
8751 bool emitSetLocal(PrimType, uint32_t, const SourceInfo &I);
8760 ::emitSetLocal(PrimType T0, uint32_t A0, const SourceInfo &I) {
8997 bool emitSetParam(PrimType, uint32_t, const SourceInfo &I);
9006 ::emitSetParam(PrimType T0, uint32_t A0, const SourceInfo &I) {
9245 bool emitSetThisField(PrimType, uint32_t, const SourceInfo &I);
9254 ::emitSetThisField(PrimType T0, uint32_t A0, const SourceInfo &I) {
9483 bool emitStore(PrimType, const SourceInfo &I);
9492 ::emitStore(PrimType T0, const SourceInfo &I) {
9710 bool emitStoreBitField(PrimType, const SourceInfo &I);
9719 ::emitStoreBitField(PrimType T0, const SourceInfo &I) {
9928 bool emitStoreBitFieldPop(PrimType, const SourceInfo &I);
9937 ::emitStoreBitFieldPop(PrimType T0, const SourceInfo &I) {
10157 bool emitStorePop(PrimType, const SourceInfo &I);
10166 ::emitStorePop(PrimType T0, const SourceInfo &I) {
10384 bool emitSub(PrimType, const SourceInfo &I);
10393 ::emitSub(PrimType T0, const SourceInfo &I) {
10602 bool emitSubOffset(PrimType, const SourceInfo &I);
10611 ::emitSubOffset(PrimType T0, const SourceInfo &I) {
include/llvm/ADT/Optional.h 144 T value;
160 explicit OptionalStorage(in_place_t, Args &&... args)
161 : value(std::forward<Args>(args)...), hasVal(true) {}
172 T &getValue() LLVM_LVALUE_FUNCTION noexcept {
176 T const &getValue() const LLVM_LVALUE_FUNCTION noexcept {
181 T &&getValue() && noexcept {
216 optional_detail::OptionalStorage<T> Storage;
219 using value_type = T;
224 Optional(const T &y) : Storage(optional_detail::in_place_t{}, y) {}
227 Optional(T &&y) : Storage(optional_detail::in_place_t{}, std::move(y)) {}
230 Optional &operator=(T &&y) {
241 static inline Optional create(const T *y) {
245 Optional &operator=(const T &y) {
253 const T *getPointer() const { return &Storage.getValue(); }
254 T *getPointer() { return &Storage.getValue(); }
255 const T &getValue() const LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
256 T &getValue() LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
260 const T *operator->() const { return getPointer(); }
261 T *operator->() { return getPointer(); }
262 const T &operator*() const LLVM_LVALUE_FUNCTION { return getValue(); }
263 T &operator*() LLVM_LVALUE_FUNCTION { return getValue(); }
266 constexpr T getValueOr(U &&value) const LLVM_LVALUE_FUNCTION {
271 T &&getValue() && { return std::move(Storage.getValue()); }
272 T &&operator*() && { return std::move(Storage.getValue()); }
275 T getValueOr(U &&value) && {
include/llvm/ADT/STLExtras.h 108 Ret (*callback)(intptr_t callable, Params ...params) = nullptr;
112 static Ret callback_fn(intptr_t callable, Params ...params) {
114 std::forward<Params>(params)...);
129 Ret operator()(Params ...params) const {
130 return callback(callable, std::forward<Params>(params)...);
include/llvm/ADT/SmallVector.h 75 AlignedCharArrayUnion<T> FirstEl;
114 using value_type = T;
115 using iterator = T *;
116 using const_iterator = const T *;
121 using reference = T &;
122 using const_reference = const T &;
123 using pointer = T *;
124 using const_pointer = const T *;
259 class SmallVectorTemplateBase<T, true> : public SmallVectorTemplateCommon<T> {
264 static void destroy_range(T *, T *) {}
264 static void destroy_range(T *, T *) {}
286 T1 *I, T1 *E, T2 *Dest,
286 T1 *I, T1 *E, T2 *Dest,
286 T1 *I, T1 *E, T2 *Dest,
287 typename std::enable_if<std::is_same<typename std::remove_const<T1>::type,
288 T2>::value>::type * = nullptr) {
294 memcpy(reinterpret_cast<void *>(Dest), I, (E - I) * sizeof(T));
299 void grow(size_t MinSize = 0) { this->grow_pod(MinSize, sizeof(T)); }
302 void push_back(const T &Elt) {
305 memcpy(reinterpret_cast<void *>(this->end()), &Elt, sizeof(T));
315 class SmallVectorImpl : public SmallVectorTemplateBase<T> {
316 using SuperClass = SmallVectorTemplateBase<T>;
357 void resize(size_type N, const T &NV) {
374 LLVM_NODISCARD T pop_back_val() {
397 void append(size_type NumInputs, const T &Elt) {
405 void append(std::initializer_list<T> IL) {
412 void assign(size_type NumElts, const T &Elt) {
429 void assign(std::initializer_list<T> IL) {
467 iterator insert(iterator I, T &&Elt) {
497 iterator insert(iterator I, const T &Elt) {
526 iterator insert(iterator I, size_type NumToInsert, const T &Elt) {
637 void insert(iterator I, std::initializer_list<T> IL) {
820 AlignedCharArrayUnion<T> InlineElts[N];
837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
846 explicit SmallVector(size_t Size, const T &Value = T())
865 SmallVector(std::initializer_list<T> IL) : SmallVectorImpl<T>(N) {
884 SmallVector(SmallVectorImpl<T> &&RHS) : SmallVectorImpl<T>(N) {
include/llvm/Support/AlignOf.h 30 T t;
39 template <typename T> union SizerImpl<T> { char arr[sizeof(T)]; };
50 llvm::detail::SizerImpl<T, Ts...>)];
include/llvm/Support/type_traits.h 91 T t;
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
145 std::is_copy_constructible<detail::trivial_helper<T>>::value;
147 !std::is_copy_constructible<T>::value;
151 std::is_move_constructible<detail::trivial_helper<T>>::value;
153 !std::is_move_constructible<T>::value;
157 is_copy_assignable<detail::trivial_helper<T>>::value;
159 !is_copy_assignable<T>::value;
163 is_move_assignable<detail::trivial_helper<T>>::value;
165 !is_move_assignable<T>::value;
169 std::is_destructible<detail::trivial_helper<T>>::value;
tools/clang/lib/AST/Interp/ByteCodeEmitter.cpp 28 SmallVector<PrimType, 8> ParamTypes;
42 PrimType Ty;
43 if (llvm::Optional<PrimType> T = Ctx.classify(PD->getType())) {
tools/clang/lib/AST/Interp/ByteCodeExprGen.cpp 135 if (Optional<PrimType> T = classify(LitTy))
163 Optional<PrimType> LT = classify(LHS->getType());
164 Optional<PrimType> RT = classify(RHS->getType());
169 if (Optional<PrimType> T = classify(BO->getType())) {
222 if (Optional<PrimType> T = classify(E->getType())) {
230 bool ByteCodeExprGen<Emitter>::visitZeroInitializer(PrimType T, const Expr *E) {
258 const Expr *LV, DerefKind AK, llvm::function_ref<bool(PrimType)> Direct,
259 llvm::function_ref<bool(PrimType)> Indirect) {
260 if (Optional<PrimType> T = classify(LV->getType())) {
283 const Expr *LV, PrimType T, const ParmVarDecl *PD, DerefKind AK,
284 llvm::function_ref<bool(PrimType)> Direct,
285 llvm::function_ref<bool(PrimType)> Indirect) {
325 const Expr *LV, PrimType T, const VarDecl *VD, DerefKind AK,
326 llvm::function_ref<bool(PrimType)> Direct,
327 llvm::function_ref<bool(PrimType)> Indirect) {
394 bool ByteCodeExprGen<Emitter>::emitConst(PrimType T, unsigned NumBits,
424 PrimType Ty,
524 if (Optional<PrimType> T = classify(Exp))
535 if (Optional<PrimType> T = classify(VD->getType())) {
tools/clang/lib/AST/Interp/ByteCodeExprGen.h 102 llvm::Optional<PrimType> classify(const Expr *E) const {
105 llvm::Optional<PrimType> classify(QualType Ty) const {
115 PrimType classifyPrim(QualType Ty) const {
152 unsigned allocateLocalPrimitive(DeclTy &&Decl, PrimType Ty, bool IsMutable,
167 bool visitZeroInitializer(PrimType T, const Expr *E);
182 llvm::function_ref<bool(PrimType)> Direct,
183 llvm::function_ref<bool(PrimType)> Indirect);
184 bool dereferenceParam(const Expr *LV, PrimType T, const ParmVarDecl *PD,
186 llvm::function_ref<bool(PrimType)> Direct,
187 llvm::function_ref<bool(PrimType)> Indirect);
188 bool dereferenceVar(const Expr *LV, PrimType T, const VarDecl *PD,
189 DerefKind AK, llvm::function_ref<bool(PrimType)> Direct,
190 llvm::function_ref<bool(PrimType)> Indirect);
193 bool emitConst(PrimType T, unsigned NumBits, const llvm::APInt &Value,
tools/clang/lib/AST/Interp/ByteCodeStmtGen.cpp 239 if (Optional<PrimType> T = this->classify(DT)) {
tools/clang/lib/AST/Interp/ByteCodeStmtGen.h 71 llvm::Optional<PrimType> ReturnType;
tools/clang/lib/AST/Interp/Context.cpp 68 llvm::Optional<PrimType> Context::classify(QualType T) {
tools/clang/lib/AST/Interp/Context.h 77 llvm::Optional<PrimType> classify(QualType T);
tools/clang/lib/AST/Interp/Descriptor.cpp 164 static BlockCtorFn getCtorPrim(PrimType Type) {
168 static BlockDtorFn getDtorPrim(PrimType Type) {
172 static BlockMoveFn getMovePrim(PrimType Type) {
176 static BlockCtorFn getCtorArrayPrim(PrimType Type) {
180 static BlockDtorFn getDtorArrayPrim(PrimType Type) {
184 static BlockMoveFn getMoveArrayPrim(PrimType Type) {
188 Descriptor::Descriptor(const DeclTy &D, PrimType Type, bool IsConst,
197 Descriptor::Descriptor(const DeclTy &D, PrimType Type, size_t NumElems,
207 Descriptor::Descriptor(const DeclTy &D, PrimType Type, bool IsTemporary,
tools/clang/lib/AST/Interp/Descriptor.h 88 Descriptor(const DeclTy &D, PrimType Type, bool IsConst, bool IsTemporary,
92 Descriptor(const DeclTy &D, PrimType Type, size_t NumElems, bool IsConst,
96 Descriptor(const DeclTy &D, PrimType Type, bool IsTemporary, UnknownSize);
tools/clang/lib/AST/Interp/EvalEmitter.cpp 126 if (llvm::Optional<PrimType> T = Ctx.classify(FieldTy)) {
148 if (llvm::Optional<PrimType> T = Ctx.classify(FieldTy)) {
180 if (llvm::Optional<PrimType> T = Ctx.classify(ElemTy)) {
tools/clang/lib/AST/Interp/Function.cpp 19 llvm::SmallVector<PrimType, 8> &&ParamTypes,
tools/clang/lib/AST/Interp/Function.h 61 using ParamDescriptor = std::pair<PrimType, Descriptor *>;
91 using arg_reverse_iterator = SmallVectorImpl<PrimType>::reverse_iterator;
114 llvm::SmallVector<PrimType, 8> &&ParamTypes,
148 llvm::SmallVector<PrimType, 8> ParamTypes;
tools/clang/lib/AST/Interp/InterpFrame.cpp 52 for (PrimType Ty : Func->args_reverse())
124 PrimType PrimTy;
125 if (llvm::Optional<PrimType> T = S.Ctx.classify(Ty)) {
tools/clang/lib/AST/Interp/PrimType.cpp 17 size_t primSize(PrimType Type) {
tools/clang/lib/AST/Interp/PrimType.h 54 size_t primSize(PrimType Type);
61 inline bool isPrimitiveIntegral(PrimType Type) {
tools/clang/lib/AST/Interp/Program.cpp 25 PrimType CharType;
277 if (llvm::Optional<PrimType> T = Ctx.classify(FT)) {
311 if (llvm::Optional<PrimType> T = Ctx.classify(ElemTy)) {
337 if (llvm::Optional<PrimType> T = Ctx.classify(ElemTy)) {
359 PrimType ElemTy = *Ctx.classify(CT->getElementType());
tools/clang/lib/AST/Interp/Program.h 101 Descriptor *createDescriptor(const DeclTy &D, PrimType Type,
189 Descriptor *allocateDescriptor(Ts &&... Args) {
usr/include/c++/7.4.0/bits/move.h 72 constexpr _Tp&&
73 forward(typename std::remove_reference<_Tp>::type& __t) noexcept
83 constexpr _Tp&&
84 forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
98 move(_Tp&& __t) noexcept
usr/include/c++/7.4.0/bits/stl_algobase.h 356 static _Tp*
357 __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result)
357 __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result)
357 __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result)
361 is_move_assignable<_Tp>,
362 is_copy_assignable<_Tp>>;
368 __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h 123 typedef _Tp value_type;
181 typedef _Tp value_type;
183 typedef _Tp* pointer;
184 typedef _Tp& reference;
usr/include/c++/7.4.0/bits/stl_pair.h 100 return __and_<is_constructible<_T1, const _U1&>,
100 return __and_<is_constructible<_T1, const _U1&>,
107 return __and_<is_convertible<const _U1&, _T1>,
107 return __and_<is_convertible<const _U1&, _T1>,
114 return __and_<is_constructible<_T1, _U1&&>,
114 return __and_<is_constructible<_T1, _U1&&>,
121 return __and_<is_convertible<_U1&&, _T1>,
121 return __and_<is_convertible<_U1&&, _T1>,
128 using __do_converts = __and_<is_convertible<const _U1&, _T1>,
128 using __do_converts = __and_<is_convertible<const _U1&, _T1>,
133 return __and_<is_constructible<_T1, const _U1&>,
133 return __and_<is_constructible<_T1, const _U1&>,
142 using __do_converts = __and_<is_convertible<_U1&&, _T1>,
142 using __do_converts = __and_<is_convertible<_U1&&, _T1>,
147 return __and_<is_constructible<_T1, _U1&&>,
147 return __and_<is_constructible<_T1, _U1&&>,
209 : private __pair_base<_T1, _T2>
211 typedef _T1 first_type; /// @c first_type is the first bound type
214 _T1 first; /// @c first is a copy of the first object
252 using _PCCP = _PCC<true, _T1, _T2>;
260 constexpr pair(const _T1& __a, const _T2& __b)
269 explicit constexpr pair(const _T1& __a, const _T2& __b)
283 _T1, _T2>;
311 constexpr pair(_U1&& __x, const _T2& __y)
325 constexpr pair(const _T1& __x, _U2&& __y)
332 explicit pair(const _T1& __x, _U2&& __y)
341 constexpr pair(_U1&& __x, _U2&& __y)
379 __and_<is_copy_assignable<_T1>,
390 __and_<is_move_assignable<_T1>,
402 typename enable_if<__and_<is_assignable<_T1&, const _U1&>,
402 typename enable_if<__and_<is_assignable<_T1&, const _U1&>,
405 operator=(const pair<_U1, _U2>& __p)
413 typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
413 typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
416 operator=(pair<_U1, _U2>&& __p)
usr/include/c++/7.4.0/initializer_list 50 typedef _E value_type;
51 typedef const _E& reference;
52 typedef const _E& const_reference;
54 typedef const _E* iterator;
55 typedef const _E* const_iterator;
usr/include/c++/7.4.0/type_traits 215 : public __is_void_helper<typename remove_cv<_Tp>::type>::type
326 : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
354 : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
581 : public __or_<is_lvalue_reference<_Tp>,
582 is_rvalue_reference<_Tp>>::type
588 : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
588 : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
602 is_void<_Tp>>>::type
611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
612 is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
612 is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
762 typename add_rvalue_reference<_Tp>::type declval() noexcept;
777 : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
777 : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
825 : public __is_destructible_safe<_Tp>::type
889 typedef decltype(__test<_Tp>(0)) type;
894 : public __and_<__not_<is_void<_Tp>>,
895 __is_default_constructible_impl<_Tp>>
915 : public __is_default_constructible_atom<_Tp>::type
921 : public __is_default_constructible_safe<_Tp>::type
984 typedef decltype(__test<_Tp, _Arg>(0)) type;
989 : public __and_<is_destructible<_Tp>,
990 __is_direct_constructible_impl<_Tp, _Arg>>
1072 __is_direct_constructible_ref_cast<_Tp, _Arg>,
1073 __is_direct_constructible_new_safe<_Tp, _Arg>
1079 : public __is_direct_constructible_new<_Tp, _Arg>::type
1119 : public __is_direct_constructible<_Tp, _Arg>
1130 : public __is_constructible_impl<_Tp, _Args...>::type
1142 : public is_constructible<_Tp, const _Tp&>
1142 : public is_constructible<_Tp, const _Tp&>
1148 : public __is_copy_constructible_impl<_Tp>
1160 : public is_constructible<_Tp, _Tp&&>
1160 : public is_constructible<_Tp, _Tp&&>
1166 : public __is_move_constructible_impl<_Tp>
1286 : public is_assignable<_Tp&, const _Tp&>
1286 : public is_assignable<_Tp&, const _Tp&>
1292 : public __is_copy_assignable_impl<_Tp>
1304 : public is_assignable<_Tp&, _Tp&&>
1304 : public is_assignable<_Tp&, _Tp&&>
1310 : public __is_move_assignable_impl<_Tp>
1377 static void __helper(const _Tp&);
1380 static true_type __test(const _Tp&,
1381 decltype(__helper<const _Tp&>({}))* = 0);
1390 typedef decltype(__test(declval<_Tp>())) type;
1395 : public __is_implicitly_default_constructible_impl<_Tp>::type
1400 : public __and_<is_default_constructible<_Tp>,
1401 __is_implicitly_default_constructible_safe<_Tp>>
1526 static void __test_aux(_To1);
1538 typedef decltype(__test<_From, _To>(0)) type;
1545 : public __is_convertible_helper<_From, _To>::type
1554 { typedef _Tp type; };
1563 { typedef _Tp type; };
1574 remove_const<typename remove_volatile<_Tp>::type>::type type;
1629 { typedef _Tp type; };
1633 { typedef _Tp type; };
1659 { typedef _Tp&& type; };
1664 : public __add_rvalue_reference_helper<_Tp>