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

References

include/llvm/ADT/PointerEmbeddedInt.h
   61   PointerEmbeddedInt(IntT I) { *this = I; }
   72   operator IntT() const {
   73     if (std::is_signed<IntT>::value)
   83   using T = PointerEmbeddedInt<IntT, Bits>;
tools/clang/include/clang/AST/DataCollection.h
   54     std::is_integral<Type>::value || std::is_enum<Type>::value ||
   54     std::is_integral<Type>::value || std::is_enum<Type>::value ||
   55     std::is_convertible<Type, size_t>::value // for llvm::hash_code
   57 addDataToConsumer(T &DataConsumer, Type Data) {
tools/clang/include/clang/AST/Expr.h
 3414   typedef BinaryOperatorKind Opcode;
tools/clang/include/clang/AST/ExprCXX.h
  298     BinaryOperatorKind Opcode;
  313   BinaryOperatorKind getOperator() const { return getDecomposedForm().Opcode; }
 4546   BinaryOperatorKind Opcode;
 4550               BinaryOperatorKind Opcode, SourceLocation EllipsisLoc, Expr *RHS,
 4581   BinaryOperatorKind getOperator() const { return Opcode; }
tools/clang/include/clang/Sema/Sema.h
 3309                                    BinaryOperatorKind Opc,
 4841   static BinaryOperatorKind ConvertTokenKindToBinaryOpcode(tok::TokenKind Kind);
 4847                         BinaryOperatorKind Opc, Expr *LHSExpr, Expr *RHSExpr);
 4848   ExprResult CreateBuiltinBinOp(SourceLocation OpLoc, BinaryOperatorKind Opc,
 5511                               BinaryOperatorKind Operator,
 5516                                    BinaryOperatorKind Operator);
10397     BinaryOperatorKind Opc, QualType* CompLHSTy = nullptr);
10403     BinaryOperatorKind Opc, bool IsCompAssign = false);
10407       BinaryOperatorKind Opc);
10410       BinaryOperatorKind Opc);
10413     BinaryOperatorKind Opc);
10423                                          BinaryOperatorKind Opcode,
10464                                       BinaryOperatorKind Opc);
10543                                           BinaryOperatorKind Opc = BO_PtrMemD
tools/clang/lib/AST/Expr.cpp
 2038 BinaryOperatorKind
tools/clang/lib/AST/ExprConstant.cpp
 2485                               BinaryOperatorKind Opcode, APSInt RHS,
 2587                                   APFloat &LHS, BinaryOperatorKind Opcode,
 3802   BinaryOperatorKind Opcode;
 3909     BinaryOperatorKind Opcode, const APValue &RVal) {
11789       auto Op = E->getOpcode();
tools/clang/lib/AST/StmtProfile.cpp
 1329                                           BinaryOperatorKind &BinaryOp) {
 1539     BinaryOperatorKind BinaryOp = BO_Comma;
tools/clang/lib/Analysis/CFG.cpp
  113 static std::tuple<const Expr *, BinaryOperatorKind, const Expr *>
  115   BinaryOperatorKind Op = B->getOpcode();
  944     BinaryOperatorKind Bok = B->getOpcode();
 1009   TryResult analyzeLogicOperatorCondition(BinaryOperatorKind Relation,
 1049     BinaryOperatorKind BO1;
 1057     BinaryOperatorKind BO2;
tools/clang/lib/Analysis/CloneDetection.cpp
  186   template <class Ty> void addData(const Ty &Data) {
tools/clang/lib/CodeGen/CGExprScalar.cpp
 1539   BinaryOperatorKind Opcode = Info.Opcode;
tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp
 5864       BinaryOperatorKind BO = BO_Comma;
tools/clang/lib/CodeGen/CGStmtOpenMP.cpp
 3749                                                 BinaryOperatorKind BO,
 3842     LValue X, RValue E, BinaryOperatorKind BO, bool IsXLHSInRHSPart,
tools/clang/lib/CodeGen/CodeGenFunction.h
 3022       LValue X, RValue E, BinaryOperatorKind BO, bool IsXLHSInRHSPart,
tools/clang/lib/Sema/SemaChecking.cpp
 6685                                      BinaryOperatorKind BinOpKind,
 7060         BinaryOperatorKind BinOpKind = BinOp->getOpcode();
10593   constantValue(BinaryOperatorKind Op, ComparisonResult R, bool ConstantOnRHS) {
tools/clang/lib/Sema/SemaExpr.cpp
 7620 static bool IsArithmeticOp(BinaryOperatorKind Opc) {
 7635 static bool IsArithmeticBinaryExpr(Expr *E, BinaryOperatorKind *Opcode,
 7667     BinaryOperatorKind OpKind = BinaryOperator::getOverloadedOpcode(OO);
 7707   BinaryOperatorKind CondOpcode;
10312                                            BinaryOperatorKind Opc) {
12581 BinaryOperatorKind Sema::ConvertTokenKindToBinaryOpcode(tok::TokenKind Kind) {
12582   BinaryOperatorKind Opc;
13077 static void DiagnoseBitwisePrecedence(Sema &Self, BinaryOperatorKind Opc,
13187 static void DiagnoseBitwiseOpInBitwiseOp(Sema &S, BinaryOperatorKind Opc,
13244 static void DiagnoseBinOpPrecedence(Sema &Self, BinaryOperatorKind Opc,
13282   BinaryOperatorKind Opc = ConvertTokenKindToBinaryOpcode(Kind);
tools/clang/lib/Sema/SemaExprObjC.cpp
 4196                           BinaryOperatorKind Opc) {
tools/clang/lib/Sema/SemaInit.cpp
 7229     BinaryOperatorKind BOK = BO->getOpcode();
tools/clang/lib/Sema/SemaOpenMP.cpp
  103     using BOKPtrType = llvm::PointerEmbeddedInt<BinaryOperatorKind, 16>;
  107     void set(BinaryOperatorKind BO, SourceRange RR) {
  443                                  BinaryOperatorKind BOK);
  452                                    BinaryOperatorKind &BOK,
 1132                                            BinaryOperatorKind BOK) {
 1178     const ValueDecl *D, SourceRange &SR, BinaryOperatorKind &BOK,
 6415     BinaryOperatorKind BOK = (OOK == OO_Plus) ? BO_Add : BO_Sub;
 8217   BinaryOperatorKind Op;
13058   BinaryOperatorKind BOK = BO_Comma;
13590       BinaryOperatorKind ParentBOK;
tools/clang/lib/Sema/SemaOverload.cpp
12723                                        BinaryOperatorKind Opc,
tools/clang/lib/Sema/SemaPseudoObject.cpp
  218                                         BinaryOperatorKind opcode,
  291                                         BinaryOperatorKind opcode,
  330                                        BinaryOperatorKind opcode,
  432                                           BinaryOperatorKind opcode,
  466     BinaryOperatorKind nonCompound =
  894                                                 BinaryOperatorKind opcode,
 1002                                                 BinaryOperatorKind opcode,
 1590                                              BinaryOperatorKind opcode,
tools/clang/lib/Sema/SemaTemplateVariadic.cpp
 1197   BinaryOperatorKind Opc = ConvertTokenKindToBinaryOpcode(Operator);
 1203                                   BinaryOperatorKind Operator,
 1213                                        BinaryOperatorKind Operator) {
tools/clang/lib/Sema/TreeTransform.h
13198     BinaryOperatorKind Opc = BinaryOperator::getOverloadedOpcode(Op);
13240       BinaryOperatorKind Opc = BinaryOperator::getOverloadedOpcode(Op);
13303   BinaryOperatorKind Opc = BinaryOperator::getOverloadedOpcode(Op);
tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
 2015         BinaryOperatorKind op = (compareRes == 1) ? BO_GT : BO_LT;
tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp
 1572   auto BinOp = (Op == OO_Plus || Op == OO_PlusEqual) ? BO_Add : BO_Sub;
tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
  673   BinaryOperatorKind Opcode = BO->getOpcode();
tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp
   60 static inline bool EvaluatesToZero(APSInt &Val, BinaryOperatorKind op) {
   82       BinaryOperatorKind opc = binop->getOpcode();
tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp
  319   BinaryOperatorKind OpKind = BOp->getOpcode();
tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp
  118       if ((B->getOpcode() == BinaryOperatorKind::BO_Shl ||
  119            B->getOpcode() == BinaryOperatorKind::BO_Shr) &&
  122            << ((B->getOpcode() == BinaryOperatorKind::BO_Shl) ? "left"
  126       } else if ((B->getOpcode() == BinaryOperatorKind::BO_Shl ||
  127                   B->getOpcode() == BinaryOperatorKind::BO_Shr) &&
  131            << ((B->getOpcode() == BinaryOperatorKind::BO_Shl) ? "left"
  148       } else if (B->getOpcode() == BinaryOperatorKind::BO_Shl &&
  153       } else if (B->getOpcode() == BinaryOperatorKind::BO_Shl &&
tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
  101 static bool evalComparison(SVal LHSVal, BinaryOperatorKind ComparisonOp,
tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
  364           BinaryOperatorKind Op = cast<BinaryOperator>(S)->getOpcode();
tools/clang/tools/extra/clang-tidy/bugprone/StringIntegerAssignmentCheck.cpp
   81   bool handleBinaryOp(clang::BinaryOperatorKind Opcode, const Expr *const LHS,
tools/clang/tools/extra/clang-tidy/misc/RedundantExpressionCheck.cpp
  139 static bool areEquivalentRanges(BinaryOperatorKind OpcodeLHS,
  141                                 BinaryOperatorKind OpcodeRHS,
  159 static bool areExclusiveRanges(BinaryOperatorKind OpcodeLHS,
  161                                BinaryOperatorKind OpcodeRHS,
  203 static bool rangesFullyCoverDomain(BinaryOperatorKind OpcodeLHS,
  205                                    BinaryOperatorKind OpcodeRHS,
  250 static bool rangeSubsumesRange(BinaryOperatorKind OpcodeLHS,
  252                                BinaryOperatorKind OpcodeRHS,
  285 static void transformSubToCanonicalAddExpr(BinaryOperatorKind &Opcode,
  401                                  StringRef Id, BinaryOperatorKind &Opcode,
  495     const Expr *&OperandExpr, BinaryOperatorKind &Opcode, const Expr *&Symbol,
  574                                            BinaryOperatorKind &MainOpcode,
  575                                            BinaryOperatorKind &SideOpcode,
  771   BinaryOperatorKind LhsOpcode, RhsOpcode;
  775     BinaryOperatorKind Opcode = ComparisonOperator->getOpcode();
  796     BinaryOperatorKind Opcode = ComparisonOperator->getOpcode();
  825 static bool exprEvaluatesToZero(BinaryOperatorKind Opcode, APSInt Value) {
  829 static bool exprEvaluatesToBitwiseNegatedZero(BinaryOperatorKind Opcode,
  834 static bool exprEvaluatesToSymbolic(BinaryOperatorKind Opcode, APSInt Value) {
  844     BinaryOperatorKind Opcode = ComparisonOperator->getOpcode();
  848     BinaryOperatorKind LhsOpcode;
  889     BinaryOperatorKind Opcode = IneffectiveOperator->getOpcode();
  919     BinaryOperatorKind Opcode = ComparisonOperator->getOpcode();
  924     BinaryOperatorKind LhsOpcode, RhsOpcode;
  984       BinaryOperatorKind MainOpcode, SideOpcode;
tools/clang/tools/extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp
  136     const auto OpCode = BinaryOp->getOpcode();
  155     if (Value == 1 && (OpCode == BinaryOperatorKind::BO_EQ ||
  156                        OpCode == BinaryOperatorKind::BO_NE))
  160     if ((OpCode == BinaryOperatorKind::BO_GE && Value == 0 && ContainerIsLHS) ||
  161         (OpCode == BinaryOperatorKind::BO_LE && Value == 0 && !ContainerIsLHS))
  166       if ((OpCode == BinaryOperatorKind::BO_GT && ContainerIsLHS) ||
  167           (OpCode == BinaryOperatorKind::BO_LT && !ContainerIsLHS))
  169       if ((OpCode == BinaryOperatorKind::BO_LE && ContainerIsLHS) ||
  170           (OpCode == BinaryOperatorKind::BO_GE && !ContainerIsLHS))
  174     if (OpCode == BinaryOperatorKind::BO_NE && Value == 0)
  176     if ((OpCode == BinaryOperatorKind::BO_GT ||
  177          OpCode == BinaryOperatorKind::BO_GE) &&
  180     if ((OpCode == BinaryOperatorKind::BO_LT ||
  181          OpCode == BinaryOperatorKind::BO_LE) &&
tools/clang/tools/extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
   87 std::pair<BinaryOperatorKind, BinaryOperatorKind> Opposites[] = {
   87 std::pair<BinaryOperatorKind, BinaryOperatorKind> Opposites[] = {
   91   const BinaryOperatorKind Opcode = BinOp->getOpcode();
tools/clang/tools/extra/clang-tidy/utils/ASTUtils.cpp
   59     if (BO->getOpcode() == clang::BinaryOperatorKind::BO_Or)
tools/clang/tools/extra/clangd/refactor/tweaks/ExtractVariable.cpp
  203   BinaryOperatorKind Kind;
  283   BinaryOperatorKind OuterOp = Op.Kind;
  418     if (BinOpExpr->getOpcode() == BinaryOperatorKind::BO_Assign)
tools/clang/unittests/AST/DataCollectionTest.cpp
   32   template <class T> void addData(const T &Data) {
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
  184     typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>,
  185 			      is_move_constructible<_Tp>,
  186 			      is_move_assignable<_Tp>>::value>::type
  187     swap(_Tp& __a, _Tp& __b)
  187     swap(_Tp& __a, _Tp& __b)
  198       _Tp __tmp = _GLIBCXX_MOVE(__a);
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&>,
  101 		      is_constructible<_T2, const _U2&>>::value;
  101 		      is_constructible<_T2, const _U2&>>::value;
  107 	return __and_<is_convertible<const _U1&, _T1>,
  107 	return __and_<is_convertible<const _U1&, _T1>,
  108 		      is_convertible<const _U2&, _T2>>::value;
  108 		      is_convertible<const _U2&, _T2>>::value;
  114 	return __and_<is_constructible<_T1, _U1&&>,
  114 	return __and_<is_constructible<_T1, _U1&&>,
  115 		      is_constructible<_T2, _U2&&>>::value;
  115 		      is_constructible<_T2, _U2&&>>::value;
  121 	return __and_<is_convertible<_U1&&, _T1>,
  121 	return __and_<is_convertible<_U1&&, _T1>,
  122 		      is_convertible<_U2&&, _T2>>::value;
  122 		      is_convertible<_U2&&, _T2>>::value;
  128 	using __do_converts = __and_<is_convertible<const _U1&, _T1>,
  128 	using __do_converts = __and_<is_convertible<const _U1&, _T1>,
  129 				  is_convertible<_U2&&, _T2>>;
  129 				  is_convertible<_U2&&, _T2>>;
  133 	return __and_<is_constructible<_T1, const _U1&>,
  133 	return __and_<is_constructible<_T1, const _U1&>,
  134 		      is_constructible<_T2, _U2&&>,
  134 		      is_constructible<_T2, _U2&&>,
  142 	using __do_converts = __and_<is_convertible<_U1&&, _T1>,
  142 	using __do_converts = __and_<is_convertible<_U1&&, _T1>,
  143 				  is_convertible<const _U2&, _T2>>;
  143 				  is_convertible<const _U2&, _T2>>;
  147 	return __and_<is_constructible<_T1, _U1&&>,
  147 	return __and_<is_constructible<_T1, _U1&&>,
  148 		      is_constructible<_T2, const _U2&&>,
  148 		      is_constructible<_T2, const _U2&&>,
  209     : private __pair_base<_T1, _T2>
  209     : private __pair_base<_T1, _T2>
  211       typedef _T1 first_type;    /// @c first_type is the first bound type
  212       typedef _T2 second_type;   /// @c second_type is the second bound type
  214       _T1 first;                 /// @c first is a copy of the first object
  215       _T2 second;                /// @c second is a copy of the second object
  252       using _PCCP = _PCC<true, _T1, _T2>;
  252       using _PCCP = _PCC<true, _T1, _T2>;
  260       constexpr pair(const _T1& __a, const _T2& __b)
  260       constexpr pair(const _T1& __a, const _T2& __b)
  269       explicit constexpr pair(const _T1& __a, const _T2& __b)
  269       explicit constexpr pair(const _T1& __a, const _T2& __b)
  283 			    _T1, _T2>;
  283 			    _T1, _T2>;
  311        constexpr pair(_U1&& __x, const _T2& __y)
  311        constexpr pair(_U1&& __x, const _T2& __y)
  318        explicit constexpr pair(_U1&& __x, const _T2& __y)
  325        constexpr pair(const _T1& __x, _U2&& __y)
  325        constexpr pair(const _T1& __x, _U2&& __y)
  332        explicit pair(const _T1& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  342 	: first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
  342 	: first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
  379 		__and_<is_copy_assignable<_T1>,
  380 		       is_copy_assignable<_T2>>::value,
  390 		__and_<is_move_assignable<_T1>,
  391 		       is_move_assignable<_T2>>::value,
usr/include/c++/7.4.0/tuple
   56     struct __is_empty_non_tuple : is_empty<_Tp> { };
  125       constexpr _Head_base(const _Head& __h)
  132         constexpr _Head_base(_UHead&& __h)
  133 	: _M_head_impl(std::forward<_UHead>(__h)) { }
  159       static constexpr _Head&
  162       static constexpr const _Head&
  165       _Head _M_head_impl;
  186     : public _Tuple_impl<_Idx + 1, _Tail...>,
  187       private _Head_base<_Idx, _Head>
  191       typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited;
  192       typedef _Head_base<_Idx, _Head> _Base;
  194       static constexpr _Head&
  197       static constexpr const _Head&
  210       constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail)
  210       constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail)
  216         constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail)
  216         constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail)
  227 	_Base(std::forward<_Head>(_M_head(__in))) { }
  230         constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in)
  235         constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in)
  235         constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in)
  248 		    const _Head& __head, const _Tail&... __tail)
  248 		    const _Head& __head, const _Tail&... __tail)
  262         _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
  268 	_Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
  322 	  _M_head(*this) = std::forward<_UHead>
  323 	    (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in));
  323 	    (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in));
  325 	    (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in));
  325 	    (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in));
  473       return __and_<is_constructible<_Elements, const _UElements&>...>::value;
  473       return __and_<is_constructible<_Elements, const _UElements&>...>::value;
  479       return __and_<is_convertible<const _UElements&, _Elements>...>::value;
  479       return __and_<is_convertible<const _UElements&, _Elements>...>::value;
  485       return __and_<is_constructible<_Elements, _UElements&&>...>::value;
  485       return __and_<is_constructible<_Elements, _UElements&&>...>::value;
  491       return __and_<is_convertible<_UElements&&, _Elements>...>::value;
  491       return __and_<is_convertible<_UElements&&, _Elements>...>::value;
  508       return  __not_<is_same<tuple<_Elements...>,
  556     class tuple : public _Tuple_impl<0, _Elements...>
  558       typedef _Tuple_impl<0, _Elements...> _Inherited;
  598             _Elements...>;
  608         constexpr tuple(const _Elements&... __elements)
  619       explicit constexpr tuple(const _Elements&... __elements)
  628                       _Elements...>;
  636                       _Elements...>;
  646         constexpr tuple(_UElements&&... __elements)
  668             _Elements...>;
  730 	      const _Elements&... __elements)
  741                        const _Elements&... __elements)
  767 	tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in)
  771 	tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in)
  853         operator=(const tuple<_UElements...>& __in)
  863         operator=(tuple<_UElements...>&& __in)
 1448     make_tuple(_Elements&&... __args)
 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
  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
  742     : public __is_signed_helper<_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
  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
 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>
 1352     : public is_nothrow_assignable<_Tp&, _Tp&&>
 1352     : public is_nothrow_assignable<_Tp&, _Tp&&>
 1358     : public __is_nt_move_assignable_impl<_Tp>
 1526 	static void __test_aux(_To1);
 1538       typedef decltype(__test<_From, _To>(0)) type;
 1538       typedef decltype(__test<_From, _To>(0)) type;
 1545     : public __is_convertible_helper<_From, _To>::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>
 2104     { typedef typename remove_cv<_Up>::type __type; };
 2131       typedef _Tp __type;
 2574       typename remove_reference<_Tp>::type>::type>::type