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

Declarations

gen/tools/clang/include/clang/AST/DeclNodes.inc
  503 INDIRECTFIELD(IndirectField, ValueDecl)
tools/clang/include/clang/Sema/Sema.h
  202   class IndirectFieldDecl;

References

include/llvm/ADT/STLExtras.h
   75       typename std::add_pointer<typename std::add_const<T>::type>::type;
include/llvm/Support/Casting.h
   57   static inline bool doit(const From &Val) {
   58     return To::classof(&Val);
   66   static inline bool doit(const From &) { return true; }
   77     return isa_impl<To, From>::doit(Val);
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  142   return isa_impl_wrap<X, const Y,
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  309   return cast<X>(Val);
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  360                             typename cast_retty<X, Y>::ret_type>::type
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
tools/clang/include/clang/AST/ASTTypeTraits.h
   65     return ASTNodeKind(KindToKindId<T>::Id);
   65     return ASTNodeKind(KindToKindId<T>::Id);
   65     return ASTNodeKind(KindToKindId<T>::Id);
  251   const T *get() const {
  252     return BaseConverter<T>::get(NodeKind, Storage.buffer);
  394     static const T *get(ASTNodeKind NodeKind, const char Storage[]) {
  395       if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
  399     static const T &getUnchecked(ASTNodeKind NodeKind, const char Storage[]) {
  401       return *cast<T>(static_cast<const BaseT *>(
  469     : public DynCastPtrConverter<T, Decl> {};
tools/clang/include/clang/AST/Decl.h
 2902                           public Mergeable<IndirectFieldDecl> {
 2915   static IndirectFieldDecl *Create(ASTContext &C, DeclContext *DC,
 2919   static IndirectFieldDecl *CreateDeserialized(ASTContext &C, unsigned ID);
 2941   IndirectFieldDecl *getCanonicalDecl() override { return getFirstDecl(); }
 2942   const IndirectFieldDecl *getCanonicalDecl() const { return getFirstDecl(); }
tools/clang/include/clang/AST/DeclBase.h
 2536   static ::clang::DeclContext *doit(const FromTy *Val) {
 2537     return FromTy::castToDeclContext(Val);
tools/clang/include/clang/AST/DeclCXX.h
 2141   llvm::PointerUnion3<TypeSourceInfo *, FieldDecl *, IndirectFieldDecl *>
 2193   CXXCtorInitializer(ASTContext &Context, IndirectFieldDecl *Member,
 2219     return Initializee.is<IndirectFieldDecl*>();
 2283       return Initializee.get<IndirectFieldDecl*>()->getAnonField();
 2287   IndirectFieldDecl *getIndirectMember() const {
 2289       return Initializee.get<IndirectFieldDecl*>();
tools/clang/include/clang/AST/JSONNodeDumper.h
  166   template <typename T> void writePreviousDeclImpl(const Mergeable<T> *D) {
  167     const T *First = D->getFirstDecl();
tools/clang/include/clang/AST/Redeclarable.h
  318   decl_type *getFirstDecl() {
  319     auto *D = static_cast<decl_type *>(this);
  322     return cast<decl_type>(getPrimaryMergedDecl(const_cast<decl_type*>(D)));
  327   const decl_type *getFirstDecl() const {
  328     const auto *D = static_cast<const decl_type *>(this);
  331     return cast<decl_type>(getPrimaryMergedDecl(const_cast<decl_type*>(D)));
tools/clang/include/clang/AST/TextNodeDumper.h
  302   void VisitIndirectFieldDecl(const IndirectFieldDecl *D);
tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  110   const T *getNodeAs(StringRef ID) const {
  111     return MyBoundNodes.getNodeAs<T>(ID);
 1172 extern const internal::VariadicDynCastAllOfMatcher<Decl, IndirectFieldDecl>
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  160   const T *getNodeAs(StringRef ID) const {
  165     return It->second.get<T>();
  436     return canConvertTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  445   template <typename T> Matcher<T> convertTo() const {
  447     return unconditionalConvertTo<T>();
  499   explicit Matcher(MatcherInterface<T> *Implementation)
  507           typename std::enable_if<std::is_base_of<From, T>::value &&
  508                                !std::is_same<From, T>::value>::type * = nullptr)
  520             std::is_same<T, QualType>::value &&
  529     static_assert(std::is_base_of<To, T>::value, "Invalid dynCast call.");
  534   bool matches(const T &Node,
  581     return Other.dynCastTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
 1243   operator Matcher<T>() const {
 1245                ast_type_traits::ASTNodeKind::getFromNodeKind<T>())
 1246         .template unconditionalConvertTo<T>();
 1255 class BindableMatcher : public Matcher<T> {
 1257   explicit BindableMatcher(const Matcher<T> &M) : Matcher<T>(M) {}
 1258   explicit BindableMatcher(MatcherInterface<T> *Implementation)
 1265   Matcher<T> bind(StringRef ID) const {
 1370 inline Matcher<T> DynTypedMatcher::unconditionalConvertTo() const {
 1376 BindableMatcher<T> makeAllOfComposite(
 1377     ArrayRef<const Matcher<T> *> InnerMatchers) {
 1388   using PI = llvm::pointee_iterator<const Matcher<T> *const *>;
 1395           ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1397           .template unconditionalConvertTo<T>());
 1408     ArrayRef<const Matcher<InnerT> *> InnerMatchers) {
 1557     : public VariadicFunction<BindableMatcher<SourceT>, Matcher<TargetT>,
 1558                               makeDynCastAllOfComposite<SourceT, TargetT>> {
tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h
  199   ast_matchers::internal::Matcher<T> getTypedMatcher() const {
  202         ->template convertTo<T>();
  227       : MatcherOps(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()) {}
  228   typedef ast_matchers::internal::Matcher<T> MatcherT;
  232     return DynTypedMatcher(Matcher.convertTo<T>());
tools/clang/include/clang/Sema/Initialization.h
  364   InitializeMember(IndirectFieldDecl *Member,
tools/clang/include/clang/Sema/Lookup.h
  507   DeclClass *getAsSingle() const {
  509     return dyn_cast<DeclClass>(getFoundDecl());
tools/clang/include/clang/Sema/Sema.h
 4564       IndirectFieldDecl *indirectField,
tools/clang/include/clang/Serialization/ASTReader.h
 1887   T *ReadDeclAs(ModuleFile &F, const RecordData &R, unsigned &I) {
 1888     return cast_or_null<T>(GetDecl(ReadDeclID(F, R, I)));
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
  321   SVal getLValue(const IndirectFieldDecl *decl, SVal Base) const;
  741 inline SVal ProgramState::getLValue(const IndirectFieldDecl *D,
tools/clang/lib/AST/ASTImporter.cpp
  217           -> decltype(ToDeclT::Create(std::forward<Args>(args)...)) {
  218         return ToDeclT::Create(std::forward<Args>(args)...);
  229     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  229     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  234       CallOverloadedCreateFun<ToDeclT> OC;
  256     GetImportedOrCreateSpecialDecl(ToDeclT *&ToD, CreateFunT CreateFun,
  257                                    FromDeclT *FromD, Args &&... args) {
  262       ToD = cast_or_null<ToDeclT>(Importer.GetAlreadyImportedOrNull(FromD));
  470     ExpectedDecl VisitIndirectFieldDecl(IndirectFieldDecl *D);
 1728     if (isa<FieldDecl>(D) || isa<IndirectFieldDecl>(D) || isa<FriendDecl>(D)) {
 3445 ExpectedDecl ASTNodeImporter::VisitIndirectFieldDecl(IndirectFieldDecl *D) {
 3459     if (auto *FoundField = dyn_cast<IndirectFieldDecl>(FoundDecls[I])) {
 3459     if (auto *FoundField = dyn_cast<IndirectFieldDecl>(FoundDecls[I])) {
 3503   IndirectFieldDecl *ToIndirectField;
 7811     if (isa<FieldDecl>(*D) || isa<IndirectFieldDecl>(*D))
 8544         ToContext, cast_or_null<IndirectFieldDecl>(*ToIFieldOrErr),
tools/clang/lib/AST/Decl.cpp
  677   } else if (const auto *IFD = dyn_cast<IndirectFieldDecl>(D)) {
  677   } else if (const auto *IFD = dyn_cast<IndirectFieldDecl>(D)) {
  924         isa<IndirectFieldDecl>(D) ||
 1793   if (isa<FieldDecl>(D) || isa<IndirectFieldDecl>(D) || isa<MSPropertyDecl>(D))
 4377     return FieldDecl::classofKind(K) || IndirectFieldDecl::classofKind(K);
 4700 IndirectFieldDecl *
 4704   return new (C, DC) IndirectFieldDecl(C, DC, L, Id, T, CH);
 4707 IndirectFieldDecl *IndirectFieldDecl::CreateDeserialized(ASTContext &C,
 4709   return new (C, ID) IndirectFieldDecl(C, nullptr, SourceLocation(),
tools/clang/lib/AST/DeclCXX.cpp
  674       !isa<IndirectFieldDecl>(D) &&
 2373                                        IndirectFieldDecl *Member,
tools/clang/lib/AST/ExprClassification.cpp
  452                isa<IndirectFieldDecl>(D) ||
tools/clang/lib/AST/ExprConstant.cpp
 2739                                        const IndirectFieldDecl *IFD) {
 4165     } else if (const IndirectFieldDecl *IFD =
 4166                  dyn_cast<IndirectFieldDecl>(MemPtr.getDecl())) {
 5656     } else if (IndirectFieldDecl *IFD = I->getIndirectMember()) {
 7236     } else if (const IndirectFieldDecl *IFD = dyn_cast<IndirectFieldDecl>(MD)) {
 7236     } else if (const IndirectFieldDecl *IFD = dyn_cast<IndirectFieldDecl>(MD)) {
10252     } else if (auto *IFD = dyn_cast<IndirectFieldDecl>(ME->getMemberDecl())) {
10252     } else if (auto *IFD = dyn_cast<IndirectFieldDecl>(ME->getMemberDecl())) {
tools/clang/lib/AST/ItaniumMangle.cpp
  651   else if (const IndirectFieldDecl *IFD = dyn_cast<IndirectFieldDecl>(D))
  651   else if (const IndirectFieldDecl *IFD = dyn_cast<IndirectFieldDecl>(D))
tools/clang/lib/AST/MicrosoftMangle.cpp
 1459     if (isa<FieldDecl>(ND) || isa<IndirectFieldDecl>(ND)) {
tools/clang/lib/AST/RecordLayoutBuilder.cpp
 3168     const IndirectFieldDecl *IFD = cast<IndirectFieldDecl>(VD);
 3168     const IndirectFieldDecl *IFD = cast<IndirectFieldDecl>(VD);
tools/clang/lib/AST/TextNodeDumper.cpp
   24 static void dumpPreviousDeclImpl(raw_ostream &OS, const Mergeable<T> *D) {
   25   const T *First = D->getFirstDecl();
 1262 void TextNodeDumper::VisitIndirectFieldDecl(const IndirectFieldDecl *D) {
tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp
  608 const internal::VariadicDynCastAllOfMatcher<Decl, IndirectFieldDecl>
tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h
   75     return Value.isMatcher() && Value.getMatcher().hasTypedMatcher<T>();
   78   static ast_matchers::internal::Matcher<T> get(const VariantValue &Value) {
   79     return Value.getMatcher().getTypedMatcher<T>();
   83     return ArgKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  466       ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT> Func,
  469         DerivedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<DerivedT>()) {
  778     ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT>
tools/clang/lib/CodeGen/Address.h
  108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/CGClass.cpp
  598     IndirectFieldDecl *IndirectField = MemberInit->getIndirectMember();
tools/clang/lib/Sema/SemaDecl.cpp
 4700     if ((isa<FieldDecl>(D) || isa<IndirectFieldDecl>(D)) &&
 4718         if (IndirectFieldDecl *IF = dyn_cast<IndirectFieldDecl>(VD))
 4718         if (IndirectFieldDecl *IF = dyn_cast<IndirectFieldDecl>(VD))
 4729         IndirectFieldDecl *IndirectField = IndirectFieldDecl::Create(
 4729         IndirectFieldDecl *IndirectField = IndirectFieldDecl::Create(
 4781     if (const auto *IFD = dyn_cast<IndirectFieldDecl>(I))
 4781     if (const auto *IFD = dyn_cast<IndirectFieldDecl>(I))
16431       if (const auto *IFD = dyn_cast<IndirectFieldDecl>(I))
16431       if (const auto *IFD = dyn_cast<IndirectFieldDecl>(I))
tools/clang/lib/Sema/SemaDeclCXX.cpp
 2225           else if (IndirectFieldDecl *ID = I->getIndirectMember())
 3107       if ((isa<FieldDecl>(Field) || isa<IndirectFieldDecl>(Field)) &&
 3813       } else if (auto *IFD = dyn_cast<IndirectFieldDecl>(I)) {
 3813       } else if (auto *IFD = dyn_cast<IndirectFieldDecl>(I)) {
 4039       (Member = dyn_cast<IndirectFieldDecl>(Result.front())))
 4221   IndirectFieldDecl *IndirectMember = dyn_cast<IndirectFieldDecl>(Member);
 4221   IndirectFieldDecl *IndirectMember = dyn_cast<IndirectFieldDecl>(Member);
 4591                                FieldDecl *Field, IndirectFieldDecl *Indirect,
 4823                                    IndirectFieldDecl *Indirect) {
 4855                                     IndirectFieldDecl *Indirect = nullptr) {
 4982       if (IndirectFieldDecl *F = Member->getIndirectMember()) {
 5086     if (auto *F = dyn_cast<IndirectFieldDecl>(Mem)) {
 5086     if (auto *F = dyn_cast<IndirectFieldDecl>(Mem)) {
 6342           isa<IndirectFieldDecl>(D)) {
10107           !isa<IndirectFieldDecl>(Target) &&
tools/clang/lib/Sema/SemaExpr.cpp
 1834   if (IndirectFieldDecl *IFD = dyn_cast<IndirectFieldDecl>(D))
 1834   if (IndirectFieldDecl *IFD = dyn_cast<IndirectFieldDecl>(D))
 2382                               isa<IndirectFieldDecl>(R.getFoundDecl()) ||
 2987   if (IndirectFieldDecl *indirectField = dyn_cast<IndirectFieldDecl>(VD))
 2987   if (IndirectFieldDecl *indirectField = dyn_cast<IndirectFieldDecl>(VD))
12449     } else if (isa<FieldDecl>(dcl) || isa<IndirectFieldDecl>(dcl)) {
13683     if (isa<FieldDecl>(VD) || isa<IndirectFieldDecl>(VD))
13958     IndirectFieldDecl *IndirectMemberDecl = nullptr;
13960       if ((IndirectMemberDecl = R.getAsSingle<IndirectFieldDecl>()))
tools/clang/lib/Sema/SemaExprCXX.cpp
 7581                                 isa<IndirectFieldDecl>(ND) ||
tools/clang/lib/Sema/SemaExprMember.cpp
  110                  isa<IndirectFieldDecl>(D);
  213   bool IsField = isa<FieldDecl>(Rep) || isa<IndirectFieldDecl>(Rep);
  805                                                IndirectFieldDecl *indirectField,
  840   IndirectFieldDecl::chain_iterator
 1124   if (IndirectFieldDecl *FD = dyn_cast<IndirectFieldDecl>(MemberDecl))
 1124   if (IndirectFieldDecl *FD = dyn_cast<IndirectFieldDecl>(MemberDecl))
tools/clang/lib/Sema/SemaInit.cpp
 2258                                            IndirectFieldDecl *IndirectField) {
 2263   for (IndirectFieldDecl::chain_iterator PI = IndirectField->chain_begin(),
 2503         if (auto *IFD = dyn_cast<IndirectFieldDecl>(ND)) {
 2503         if (auto *IFD = dyn_cast<IndirectFieldDecl>(ND)) {
tools/clang/lib/Sema/SemaStmtAsm.cpp
  863     FD = dyn_cast<IndirectFieldDecl>(FieldResult.getFoundDecl());
tools/clang/lib/Sema/SemaTemplate.cpp
 6058   if (isa<FieldDecl>(Entity) || isa<IndirectFieldDecl>(Entity)) {
 6304       isa<IndirectFieldDecl>(DRE->getDecl()) ||
 6970        isa<IndirectFieldDecl>(VD))) {
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
 1064 Decl *TemplateDeclInstantiator::VisitIndirectFieldDecl(IndirectFieldDecl *D) {
 1079   IndirectFieldDecl *IndirectField = IndirectFieldDecl::Create(
 1079   IndirectFieldDecl *IndirectField = IndirectFieldDecl::Create(
 5033       IndirectFieldDecl *IndirectMember =
 5034          cast_or_null<IndirectFieldDecl>(FindInstantiatedDecl(
tools/clang/lib/Serialization/ASTReader.cpp
 9406     IndirectFieldDecl *IndirectMember = nullptr;
 9424       IndirectMember = ReadDeclAs<IndirectFieldDecl>(F, Record, Idx);
tools/clang/lib/Serialization/ASTReaderDecl.cpp
  249       operator T*() const { return dyn_cast_or_null<T>(Existing); }
  249       operator T*() const { return dyn_cast_or_null<T>(Existing); }
  376     void VisitIndirectFieldDecl(IndirectFieldDecl *FD);
  424     void mergeMergeable(Mergeable<T> *D);
 1347 void ASTDeclReader::VisitIndirectFieldDecl(IndirectFieldDecl *FD) {
 2563     if (T *Existing = ExistingRes)
 3084   if (const auto *IFDX = dyn_cast<IndirectFieldDecl>(X)) {
 3084   if (const auto *IFDX = dyn_cast<IndirectFieldDecl>(X)) {
 3085     const auto *IFDY = cast<IndirectFieldDecl>(Y);
 3085     const auto *IFDY = cast<IndirectFieldDecl>(Y);
 3816     D = IndirectFieldDecl::CreateDeserialized(Context, ID);
tools/clang/lib/Serialization/ASTWriterDecl.cpp
   97     void VisitIndirectFieldDecl(IndirectFieldDecl *D);
  935 void ASTDeclWriter::VisitIndirectFieldDecl(IndirectFieldDecl *D) {
tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
 2487   if (isa<FieldDecl>(D) || isa<IndirectFieldDecl>(D)) {
tools/clang/tools/libclang/CXType.cpp
 1034   if (const IndirectFieldDecl *IFD = dyn_cast<IndirectFieldDecl>(Res.front()))
 1034   if (const IndirectFieldDecl *IFD = dyn_cast<IndirectFieldDecl>(Res.front()))
 1064     if (const IndirectFieldDecl *IFD = dyn_cast_or_null<IndirectFieldDecl>(D))
 1064     if (const IndirectFieldDecl *IFD = dyn_cast_or_null<IndirectFieldDecl>(D))
tools/clang/unittests/AST/ASTImporterTest.cpp
 1425     if (isa<FieldDecl>(D) || isa<IndirectFieldDecl>(D)) {
tools/clang/unittests/AST/DeclMatcher.h
   22   NodeType *Node = nullptr;
   26       Node = const_cast<NodeType *>(Result.Nodes.getNodeAs<NodeType>(""));
   32   NodeType *match(const Decl *D, const MatcherType &AMatcher) {
tools/clang/unittests/AST/StructuralEquivalenceTest.cpp
  672   auto *A = FirstDeclMatcher<IndirectFieldDecl>().match(
  676   auto *B = FirstDeclMatcher<IndirectFieldDecl>().match(
  705   auto *A = FirstDeclMatcher<IndirectFieldDecl>().match(
  711   auto *A1 = FirstDeclMatcher<IndirectFieldDecl>().match(
tools/lldb/source/Symbol/ClangASTContext.cpp
 7970   typedef llvm::SmallVector<clang::IndirectFieldDecl *, 1> IndirectFieldVector;
 8002           clang::IndirectFieldDecl *indirect_field =
 8003               clang::IndirectFieldDecl::Create(
 8014         } else if (clang::IndirectFieldDecl *nested_indirect_field_decl =
 8015                        llvm::dyn_cast<clang::IndirectFieldDecl>(*di)) {
 8023           for (clang::IndirectFieldDecl::chain_iterator
 8031           clang::IndirectFieldDecl *indirect_field =
 8032               clang::IndirectFieldDecl::Create(
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_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
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1580     { typedef _Tp const     type; };
 1629     { typedef _Tp   type; };
 1983     { typedef _Up     type; };
 1999     { typedef typename remove_reference<_Tp>::type*     type; };
 2003     : public __add_pointer_helper<_Tp>