reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

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 *;
  179 class SmallVectorTemplateBase : public SmallVectorTemplateCommon<T> {
  183   static void destroy_range(T *S, T *E) {
  183   static void destroy_range(T *S, T *E) {
  211   void push_back(const T &Elt) {
  214     ::new ((void*) this->end()) T(Elt);
  218   void push_back(T &&Elt) {
  240   T *NewElts = static_cast<T*>(llvm::safe_malloc(NewCapacity*sizeof(T)));
  240   T *NewElts = static_cast<T*>(llvm::safe_malloc(NewCapacity*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/lldb/include/lldb/Core/Disassembler.h
  189     std::vector<Operand> m_children;
  197     static Operand BuildRegister(ConstString &r);
  198     static Operand BuildImmediate(lldb::addr_t imm, bool neg);
  199     static Operand BuildImmediate(int64_t imm);
  200     static Operand BuildDereference(const Operand &ref);
  200     static Operand BuildDereference(const Operand &ref);
  201     static Operand BuildSum(const Operand &lhs, const Operand &rhs);
  201     static Operand BuildSum(const Operand &lhs, const Operand &rhs);
  201     static Operand BuildSum(const Operand &lhs, const Operand &rhs);
  202     static Operand BuildProduct(const Operand &lhs, const Operand &rhs);
  202     static Operand BuildProduct(const Operand &lhs, const Operand &rhs);
  202     static Operand BuildProduct(const Operand &lhs, const Operand &rhs);
  205   virtual bool ParseOperands(llvm::SmallVectorImpl<Operand> &operands) {
  240 std::function<bool(const Instruction::Operand &)>
  241 MatchBinaryOp(std::function<bool(const Instruction::Operand &)> base,
  242               std::function<bool(const Instruction::Operand &)> left,
  243               std::function<bool(const Instruction::Operand &)> right);
  245 std::function<bool(const Instruction::Operand &)>
  246 MatchUnaryOp(std::function<bool(const Instruction::Operand &)> base,
  247              std::function<bool(const Instruction::Operand &)> child);
  249 std::function<bool(const Instruction::Operand &)>
  252 std::function<bool(const Instruction::Operand &)> FetchRegOp(ConstString &reg);
  254 std::function<bool(const Instruction::Operand &)> MatchImmOp(int64_t imm);
  256 std::function<bool(const Instruction::Operand &)> FetchImmOp(int64_t &imm);
  258 std::function<bool(const Instruction::Operand &)>
  259 MatchOpType(Instruction::Operand::Type type);
tools/lldb/include/lldb/Expression/DWARFExpression.h
  249   bool MatchesOperand(StackFrame &frame, const Instruction::Operand &op);
tools/lldb/source/Core/Disassembler.cpp
 1345 Instruction::Operand Instruction::Operand::BuildRegister(ConstString &r) {
 1346   Operand ret;
 1352 Instruction::Operand Instruction::Operand::BuildImmediate(lldb::addr_t imm,
 1354   Operand ret;
 1361 Instruction::Operand Instruction::Operand::BuildImmediate(int64_t imm) {
 1362   Operand ret;
 1374 Instruction::Operand
 1375 Instruction::Operand::BuildDereference(const Operand &ref) {
 1376   Operand ret;
 1382 Instruction::Operand Instruction::Operand::BuildSum(const Operand &lhs,
 1382 Instruction::Operand Instruction::Operand::BuildSum(const Operand &lhs,
 1383                                                     const Operand &rhs) {
 1384   Operand ret;
 1390 Instruction::Operand Instruction::Operand::BuildProduct(const Operand &lhs,
 1390 Instruction::Operand Instruction::Operand::BuildProduct(const Operand &lhs,
 1391                                                         const Operand &rhs) {
 1392   Operand ret;
 1398 std::function<bool(const Instruction::Operand &)>
 1400     std::function<bool(const Instruction::Operand &)> base,
 1401     std::function<bool(const Instruction::Operand &)> left,
 1402     std::function<bool(const Instruction::Operand &)> right) {
 1410 std::function<bool(const Instruction::Operand &)>
 1412     std::function<bool(const Instruction::Operand &)> base,
 1413     std::function<bool(const Instruction::Operand &)> child) {
 1419 std::function<bool(const Instruction::Operand &)>
 1422     return (op.m_type == Instruction::Operand::Type::Register &&
 1428 std::function<bool(const Instruction::Operand &)>
 1431     if (op.m_type != Instruction::Operand::Type::Register) {
 1439 std::function<bool(const Instruction::Operand &)>
 1442     return (op.m_type == Instruction::Operand::Type::Immediate &&
 1448 std::function<bool(const Instruction::Operand &)>
 1451     if (op.m_type != Instruction::Operand::Type::Immediate) {
 1463 std::function<bool(const Instruction::Operand &)>
 1464 lldb_private::OperandMatchers::MatchOpType(Instruction::Operand::Type type) {
tools/lldb/source/Expression/DWARFExpression.cpp
 2973                                      const Instruction::Operand &operand) {
 3007         MatchUnaryOp(MatchOpType(Instruction::Operand::Type::Dereference),
 3013         MatchOpType(Instruction::Operand::Type::Dereference),
 3014         MatchBinaryOp(MatchOpType(Instruction::Operand::Type::Sum),
 3044         MatchUnaryOp(MatchOpType(Instruction::Operand::Type::Dereference),
 3050         MatchOpType(Instruction::Operand::Type::Dereference),
 3051         MatchBinaryOp(MatchOpType(Instruction::Operand::Type::Sum),
tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
  452   static std::pair<Operand, llvm::StringRef::const_iterator>
  455     Operand ret;
  456     ret.m_type = Operand::Type::Register;
  493   static std::pair<Operand, llvm::StringRef::const_iterator>
  496     Operand ret;
  497     ret.m_type = Operand::Type::Immediate;
  551   static std::pair<Operand, llvm::StringRef::const_iterator>
  554     std::pair<Operand, llvm::StringRef::const_iterator> offset_and_iterator =
  566     std::pair<Operand, llvm::StringRef::const_iterator> base_and_iterator =
  579     std::pair<Operand, llvm::StringRef::const_iterator> index_and_iterator =
  592     std::pair<Operand, llvm::StringRef::const_iterator>
  605     Operand product;
  606     product.m_type = Operand::Type::Product;
  610     Operand index;
  611     index.m_type = Operand::Type::Sum;
  616       Operand offset;
  617       offset.m_type = Operand::Type::Sum;
  621       Operand deref;
  622       deref.m_type = Operand::Type::Dereference;
  626       Operand deref;
  627       deref.m_type = Operand::Type::Dereference;
  634   static std::pair<Operand, llvm::StringRef::const_iterator>
  637     std::pair<Operand, llvm::StringRef::const_iterator> offset_and_iterator =
  649     std::pair<Operand, llvm::StringRef::const_iterator> base_and_iterator =
  663       Operand offset;
  664       offset.m_type = Operand::Type::Sum;
  668       Operand deref;
  669       deref.m_type = Operand::Type::Dereference;
  673       Operand deref;
  674       deref.m_type = Operand::Type::Dereference;
  681   static std::pair<Operand, llvm::StringRef::const_iterator>
  690     std::pair<Operand, llvm::StringRef::const_iterator> base_and_iterator =
  703     std::pair<Operand, llvm::StringRef::const_iterator> offset_and_iterator =
  714     Operand offset;
  715     offset.m_type = Operand::Type::Sum;
  719     Operand deref;
  720     deref.m_type = Operand::Type::Dereference;
  726   static std::pair<Operand, llvm::StringRef::const_iterator>
  735     std::pair<Operand, llvm::StringRef::const_iterator> base_and_iterator =
  748     Operand deref;
  749     deref.m_type = Operand::Type::Dereference;
  754   static void DumpOperand(const Operand &op, Stream &s) {
  756     case Operand::Type::Dereference:
  760     case Operand::Type::Immediate:
  766     case Operand::Type::Invalid:
  769     case Operand::Type::Product:
  776     case Operand::Type::Register:
  779     case Operand::Type::Sum:
  790       llvm::SmallVectorImpl<Instruction::Operand> &operands) override {
  803       Operand operand;
  856       for (const Operand &operand : operands) {
tools/lldb/source/Target/StackFrame.cpp
 1241 std::pair<const Instruction::Operand *, int64_t>
 1242 GetBaseExplainingValue(const Instruction::Operand &operand,
 1245   case Instruction::Operand::Type::Dereference:
 1246   case Instruction::Operand::Type::Immediate:
 1247   case Instruction::Operand::Type::Invalid:
 1248   case Instruction::Operand::Type::Product:
 1251   case Instruction::Operand::Type::Sum: {
 1252     const Instruction::Operand *immediate_child = nullptr;
 1253     const Instruction::Operand *variable_child = nullptr;
 1254     if (operand.m_children[0].m_type == Instruction::Operand::Type::Immediate) {
 1258                Instruction::Operand::Type::Immediate) {
 1271     std::pair<const Instruction::Operand *, int64_t> base_and_offset =
 1284   case Instruction::Operand::Type::Register: {
 1304 std::pair<const Instruction::Operand *, int64_t>
 1305 GetBaseExplainingDereference(const Instruction::Operand &operand,
 1308   if (operand.m_type == Instruction::Operand::Type::Dereference) {
 1341   llvm::SmallVector<Instruction::Operand, 3> operands;
 1353   for (const Instruction::Operand &operand : operands) {
 1354     std::pair<const Instruction::Operand *, int64_t> base_and_offset =
 1362     case Instruction::Operand::Type::Immediate: {
 1386     case Instruction::Operand::Type::Register: {
 1524   Instruction::Operand op =
 1525       offset ? Instruction::Operand::BuildDereference(
 1526                    Instruction::Operand::BuildSum(
 1527                        Instruction::Operand::BuildRegister(reg),
 1528                        Instruction::Operand::BuildImmediate(offset)))
 1529              : Instruction::Operand::BuildDereference(
 1530                    Instruction::Operand::BuildRegister(reg));
 1573       if (!MatchUnaryOp(MatchOpType(Instruction::Operand::Type::Dereference),
 1576               MatchOpType(Instruction::Operand::Type::Dereference),
 1577               MatchBinaryOp(MatchOpType(Instruction::Operand::Type::Sum),
 1583       llvm::SmallVector<Instruction::Operand, 1> operands;
 1591       case Instruction::Operand::Type::Immediate: {
 1626     llvm::SmallVector<Instruction::Operand, 2> operands;
 1631     Instruction::Operand *origin_operand = nullptr;
 1655                    MatchOpType(Instruction::Operand::Type::Dereference),
 1658                    MatchOpType(Instruction::Operand::Type::Dereference),
 1659                    MatchBinaryOp(MatchOpType(Instruction::Operand::Type::Sum),
usr/include/c++/7.4.0/bits/alloc_traits.h
  387       using allocator_type = allocator<_Tp>;
  389       using value_type = _Tp;
  392       using pointer = _Tp*;
  395       using const_pointer = const _Tp*;
  474 	construct(allocator_type& __a, _Up* __p, _Args&&... __args)
  474 	construct(allocator_type& __a, _Up* __p, _Args&&... __args)
  486 	destroy(allocator_type& __a, _Up* __p)
usr/include/c++/7.4.0/bits/allocator.h
  108     class allocator: public __allocator_base<_Tp>
  113       typedef _Tp*       pointer;
  114       typedef const _Tp* const_pointer;
  115       typedef _Tp&       reference;
  116       typedef const _Tp& const_reference;
  117       typedef _Tp        value_type;
  137 	allocator(const allocator<_Tp1>&) throw() { }
  158     operator!=(const allocator<_T1>&, const allocator<_T2>&)
  158     operator!=(const allocator<_T1>&, const allocator<_T2>&)
  164     operator!=(const allocator<_Tp>&, const allocator<_Tp>&)
  164     operator!=(const allocator<_Tp>&, const allocator<_Tp>&)
usr/include/c++/7.4.0/bits/move.h
   46     inline _GLIBCXX_CONSTEXPR _Tp*
   47     __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
   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
  104     : public __and_<__not_<is_nothrow_move_constructible<_Tp>>,
  105                     is_copy_constructible<_Tp>>::type { };
usr/include/c++/7.4.0/bits/std_function.h
  299       _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
  628       using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...);
usr/include/c++/7.4.0/bits/stl_construct.h
   74     _Construct(_T1* __p, _Args&&... __args)
   74     _Construct(_T1* __p, _Args&&... __args)
   75     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
   75     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
   97     _Destroy(_Tp* __pointer)
  204 	     allocator<_Tp>&)
usr/include/c++/7.4.0/bits/stl_iterator.h
 1224     __make_move_if_noexcept_iterator(_Tp* __i)
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h
  181       typedef _Tp                         value_type;
  183       typedef _Tp*                        pointer;
  184       typedef _Tp&                        reference;
  192       typedef _Tp                         value_type;
  194       typedef const _Tp*                  pointer;
  195       typedef const _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)
  342 	: first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
  379 		__and_<is_copy_assignable<_T1>,
  390 		__and_<is_move_assignable<_T1>,
  522     constexpr pair<typename __decay_and_strip<_T1>::__type,
  524     make_pair(_T1&& __x, _T2&& __y)
  526       typedef typename __decay_and_strip<_T1>::__type __ds_type1;
  529       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
usr/include/c++/7.4.0/bits/stl_uninitialized.h
  288 			   _ForwardIterator __result, allocator<_Tp>&)
usr/include/c++/7.4.0/bits/stl_vector.h
   77 	rebind<_Tp>::other _Tp_alloc_type;
  216     class vector : protected _Vector_base<_Tp, _Alloc>
  227       typedef _Vector_base<_Tp, _Alloc>			_Base;
  232       typedef _Tp					value_type;
  919       _Tp*
  923       const _Tp*
 1483 	_M_realloc_insert(iterator __position, _Args&&... __args);
usr/include/c++/7.4.0/ext/alloc_traits.h
  117       { typedef typename _Base_type::template rebind_alloc<_Tp> other; };
usr/include/c++/7.4.0/ext/new_allocator.h
   63       typedef _Tp*       pointer;
   64       typedef const _Tp* const_pointer;
   65       typedef _Tp&       reference;
   66       typedef const _Tp& const_reference;
   67       typedef _Tp        value_type;
   84 	new_allocator(const new_allocator<_Tp1>&) _GLIBCXX_USE_NOEXCEPT { }
  111 	return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
  130       { return size_t(-1) / sizeof(_Tp); }
  135 	construct(_Up* __p, _Args&&... __args)
  135 	construct(_Up* __p, _Args&&... __args)
  136 	{ ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
  140 	destroy(_Up* __p) { __p->~_Up(); }
  160     operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
  160     operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
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/tuple
  125       constexpr _Head_base(const _Head& __h)
  132         constexpr _Head_base(_UHead&& __h)
  159       static constexpr _Head&
  162       static constexpr const _Head&
  194       static constexpr _Head&
  197       static constexpr const _Head&
  210       constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail)
  216         constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail)
  248 		    const _Head& __head, const _Tail&... __tail)
  473       return __and_<is_constructible<_Elements, const _UElements&>...>::value;
  479       return __and_<is_convertible<const _UElements&, _Elements>...>::value;
  485       return __and_<is_constructible<_Elements, _UElements&&>...>::value;
  491       return __and_<is_convertible<_UElements&&, _Elements>...>::value;
  947         constexpr tuple(const _T1& __a1, const _T2& __a2)
  956         explicit constexpr tuple(const _T1& __a1, const _T2& __a2)
  971         constexpr tuple(_U1&& __a1, _U2&& __a2)
 1078 	      const _T1& __a1, const _T2& __a2)
 1090 	      const _T1& __a1, const _T2& __a2)
 1241         operator=(const pair<_U1, _U2>& __in)
 1250         operator=(pair<_U1, _U2>&& __in)
 1252 	  this->_M_head(*this) = std::forward<_U1>(__in.first);
 1588     constexpr tuple<_Elements&...>
 1589     tie(_Elements&... __args) noexcept
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
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
  567     : public __is_null_pointer_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
  631     : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  798       typedef decltype(__test<_Tp>(0)) type;
  811                remove_all_extents<_Tp>::type>::type
  825     : public __is_destructible_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>
 1215     : public __and_<is_constructible<_Tp, _Args...>,
 1216 		    __is_nt_constructible_impl<_Tp, _Args...>>
 1246     : public is_nothrow_constructible<_Tp, _Tp&&>
 1246     : public is_nothrow_constructible<_Tp, _Tp&&>
 1252     : public __is_nothrow_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>
 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; };
 1955     { typedef _Tp     type; };
 2104     { typedef typename remove_cv<_Up>::type __type; };
 2118       typedef typename remove_reference<_Tp>::type __remove_type;
 2131       typedef _Tp __type;
 2144 	typename decay<_Tp>::type>::__type __type;