|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Derived Classes
tools/clang/include/clang/AST/DeclTemplate.h 2746 class VarTemplatePartialSpecializationDecl
Declarations
gen/tools/clang/include/clang/AST/DeclNodes.inc 475 VARTEMPLATESPECIALIZATION(VarTemplateSpecialization, VarDecl)
tools/clang/include/clang/AST/ASTMutationListener.h 41 class VarTemplateSpecializationDecl;
tools/clang/include/clang/Sema/Sema.h 199 class VarTemplateSpecializationDecl;
References
include/llvm/ADT/FoldingSet.h 221 static void Profile(const T &X, FoldingSetNodeID &ID) {
224 static void Profile(T &X, FoldingSetNodeID &ID) {
232 static inline bool Equals(T &X, const FoldingSetNodeID &ID, unsigned IDHash,
240 static inline unsigned ComputeHash(T &X, FoldingSetNodeID &TempID);
250 : public DefaultFoldingSetTrait<T> {};
369 FoldingSetTrait<T>::Profile(X, TempID);
375 FoldingSetTrait<T>::Profile(X, TempID);
410 using iterator = FoldingSetIterator<T>;
415 using const_iterator = FoldingSetIterator<const T>;
420 using bucket_iterator = FoldingSetBucketIterator<T>;
432 bool RemoveNode(T *N) { return FoldingSetBase::RemoveNode(N); }
437 T *GetOrInsertNode(T *N) {
437 T *GetOrInsertNode(T *N) {
444 T *FindNodeOrInsertPos(const FoldingSetNodeID &ID, void *&InsertPos) {
451 void InsertNode(T *N, void *InsertPos) {
457 void InsertNode(T *N) {
473 template <class T> class FoldingSet final : public FoldingSetImpl<T> {
474 using Super = FoldingSetImpl<T>;
480 T *TN = static_cast<T *>(N);
481 FoldingSetTrait<T>::Profile(*TN, ID);
488 T *TN = static_cast<T *>(N);
489 return FoldingSetTrait<T>::Equals(*TN, ID, IDHash, TempID);
495 T *TN = static_cast<T *>(N);
496 return FoldingSetTrait<T>::ComputeHash(*TN, TempID);
559 FoldingSet<T> Set;
581 T *FindNodeOrInsertPos(const FoldingSetNodeID &ID, void *&InsertPos) {
588 T *GetOrInsertNode(T *N) {
588 T *GetOrInsertNode(T *N) {
589 T *Result = Set.GetOrInsertNode(N);
597 void InsertNode(T *N, void *InsertPos) {
604 void InsertNode(T *N) {
include/llvm/ADT/STLExtras.h 75 typename std::add_pointer<typename std::add_const<T>::type>::type;
include/llvm/ADT/iterator.h 68 : public std::iterator<IteratorCategoryT, T, DifferenceTypeT, PointerT,
206 : public iterator_facade_base<DerivedT, IteratorCategoryT, T,
288 pointee_iterator<WrappedIteratorT, T>, WrappedIteratorT,
290 T> {
296 T &operator*() const { return **this->I; }
include/llvm/Support/Casting.h 57 static inline bool doit(const From &Val) {
58 return To::classof(&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
305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
306 cast_or_null(Y *Val) {
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;
tools/clang/include/clang/AST/ASTMutationListener.h 68 const VarTemplateSpecializationDecl *D) {}
tools/clang/include/clang/AST/ASTNodeTraverser.h 429 void dumpTemplateDeclSpecialization(const SpecializationDecl *D) {
434 auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
453 for (const auto *Child : D->specializations())
502 VisitVarTemplateSpecializationDecl(const VarTemplateSpecializationDecl *D) {
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/DeclBase.h 2536 static ::clang::DeclContext *doit(const FromTy *Val) {
2537 return FromTy::castToDeclContext(Val);
tools/clang/include/clang/AST/DeclTemplate.h 756 using DeclType = EntryType;
758 static DeclType *getDecl(EntryType *D) {
762 static ArrayRef<TemplateArgument> getTemplateArgs(EntryType *D) {
771 SpecIterator<EntryType, SETraits, DeclType>,
771 SpecIterator<EntryType, SETraits, DeclType>,
772 typename llvm::FoldingSetVector<EntryType>::iterator,
774 EntryType>::iterator>::iterator_category,
775 DeclType *, ptrdiff_t, DeclType *, DeclType *> {
775 DeclType *, ptrdiff_t, DeclType *, DeclType *> {
775 DeclType *, ptrdiff_t, DeclType *, DeclType *> {
778 typename llvm::FoldingSetVector<EntryType>::iterator SetIter)
781 DeclType *operator*() const {
785 DeclType *operator->() const { return **this; }
789 static SpecIterator<EntryType>
790 makeSpecIterator(llvm::FoldingSetVector<EntryType> &Specs, bool isEnd) {
2555 static VarTemplateSpecializationDecl *
2560 static VarTemplateSpecializationDecl *CreateDeserialized(ASTContext &C,
2566 VarTemplateSpecializationDecl *getMostRecentDecl() {
2568 return cast<VarTemplateSpecializationDecl>(Recent);
2747 : public VarTemplateSpecializationDecl {
2898 llvm::FoldingSetVector<VarTemplateSpecializationDecl> Specializations;
2909 llvm::FoldingSetVector<VarTemplateSpecializationDecl> &
2959 VarTemplateSpecializationDecl *
2964 void AddSpecialization(VarTemplateSpecializationDecl *D, void *InsertPos);
3025 using spec_iterator = SpecIterator<VarTemplateSpecializationDecl>;
tools/clang/include/clang/AST/JSONNodeDumper.h 347 void writeTemplateDeclSpecialization(const SpecializationDecl *SD,
355 const auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
355 const auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
401 for (const auto *Child : TD->specializations())
tools/clang/include/clang/AST/RecursiveASTVisitor.h 1690 for (auto *SD : D->specializations()) {
1693 cast<VarTemplateSpecializationDecl>(RD)->getSpecializationKind()) {
tools/clang/include/clang/ASTMatchers/ASTMatchers.h 110 const T *getNodeAs(StringRef ID) const {
111 return MyBoundNodes.getNodeAs<T>(ID);
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h 160 const T *getNodeAs(StringRef ID) const {
165 return It->second.get<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 {
1335 template <typename T> operator Matcher<T>() const {
1337 Op, ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
1338 getMatchers<T>(std::index_sequence_for<Ps...>()))
1339 .template unconditionalConvertTo<T>();
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/Sema/Sema.h 8461 VarTemplateSpecializationDecl *BuildVarTemplateInstantiation(
8469 VarTemplateSpecializationDecl *CompleteVarTemplateSpecializationDecl(
8470 VarTemplateSpecializationDecl *VarSpec, VarDecl *PatternDecl,
8479 VarTemplateSpecializationDecl *PrevVTSD = nullptr);
tools/clang/include/clang/Sema/Template.h 549 VarTemplateSpecializationDecl *PrevDecl = nullptr);
tools/clang/include/clang/Serialization/ASTWriter.h 721 const VarTemplateSpecializationDecl *D) override;
tools/clang/lib/AST/ASTDumper.cpp 85 void ASTDumper::dumpTemplateDeclSpecialization(const SpecializationDecl *D,
93 auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
132 for (const auto *Child : D->specializations())
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));
502 ExpectedDecl VisitVarTemplateSpecializationDecl(VarTemplateSpecializationDecl *D);
5411 VarTemplateSpecializationDecl *D) {
5449 VarTemplateSpecializationDecl *D2 = VarTemplate->findSpecialization(
tools/clang/lib/AST/Decl.cpp 483 const VarTemplateSpecializationDecl *spec,
507 const VarTemplateSpecializationDecl *spec,
656 !isa<VarTemplateSpecializationDecl>(Var) &&
801 if (const auto *spec = dyn_cast<VarTemplateSpecializationDecl>(Var)) {
801 if (const auto *spec = dyn_cast<VarTemplateSpecializationDecl>(Var)) {
1006 if (const auto *spec = dyn_cast<VarTemplateSpecializationDecl>(VD))
1006 if (const auto *spec = dyn_cast<VarTemplateSpecializationDecl>(VD))
1145 if (const auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(Var))
1145 if (const auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(Var))
2132 if (auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(this)) {
2484 if (auto *VDTemplSpec = dyn_cast<VarTemplateSpecializationDecl>(VD)) {
2535 if (const auto *Spec = dyn_cast<VarTemplateSpecializationDecl>(this))
2535 if (const auto *Spec = dyn_cast<VarTemplateSpecializationDecl>(this))
2549 if (const auto *Spec = dyn_cast<VarTemplateSpecializationDecl>(this))
2549 if (const auto *Spec = dyn_cast<VarTemplateSpecializationDecl>(this))
2556 if (const auto *Spec = dyn_cast<VarTemplateSpecializationDecl>(this))
2556 if (const auto *Spec = dyn_cast<VarTemplateSpecializationDecl>(this))
2624 if (VarTemplateSpecializationDecl *Spec =
2625 dyn_cast<VarTemplateSpecializationDecl>(this)) {
tools/clang/lib/AST/DeclTemplate.cpp 235 typename RedeclarableTemplateDecl::SpecEntryTraits<EntryType>::DeclType *
237 llvm::FoldingSetVector<EntryType> &Specs, ArrayRef<TemplateArgument> Args,
239 using SETraits = SpecEntryTraits<EntryType>;
242 EntryType::Profile(ID, Args, getASTContext());
243 EntryType *Entry = Specs.FindNodeOrInsertPos(ID, InsertPos);
249 llvm::FoldingSetVector<EntryType> &Specializations, EntryType *Entry,
249 llvm::FoldingSetVector<EntryType> &Specializations, EntryType *Entry,
251 using SETraits = SpecEntryTraits<EntryType>;
264 EntryType *Existing = Specializations.GetOrInsertNode(Entry);
1016 llvm::FoldingSetVector<VarTemplateSpecializationDecl> &
1035 VarTemplateSpecializationDecl *
1041 void VarTemplateDecl::AddSpecialization(VarTemplateSpecializationDecl *D,
1109 VarTemplateSpecializationDecl *VarTemplateSpecializationDecl::Create(
1113 return new (Context, DC) VarTemplateSpecializationDecl(
1118 VarTemplateSpecializationDecl *
1121 VarTemplateSpecializationDecl(VarTemplateSpecialization, C);
tools/clang/lib/AST/ExternalASTMerger.cpp 456 for (auto *Spec : D->specializations()) {
tools/clang/lib/AST/ItaniumMangle.cpp 623 !isa<VarTemplateSpecializationDecl>(D))
807 if (const VarTemplateSpecializationDecl *Spec =
808 dyn_cast<VarTemplateSpecializationDecl>(ND)) {
tools/clang/lib/AST/Linkage.h 120 const VarTemplateSpecializationDecl *spec,
tools/clang/lib/AST/MicrosoftMangle.cpp 470 !isa<VarTemplateSpecializationDecl>(D) &&
777 if (const VarTemplateSpecializationDecl *Spec =
778 dyn_cast<VarTemplateSpecializationDecl>(ND)) {
tools/clang/lib/CodeGen/Address.h 108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/CGDebugInfo.cpp 1431 isa<VarTemplateSpecializationDecl>(V))
1873 auto *TS = dyn_cast<VarTemplateSpecializationDecl>(VL);
1961 if (const auto *VTpl = dyn_cast<VarTemplateSpecializationDecl>(VD)) {
1961 if (const auto *VTpl = dyn_cast<VarTemplateSpecializationDecl>(VD)) {
3295 if (isa<VarTemplateSpecializationDecl>(VD)) {
4521 if (isa<VarTemplateSpecializationDecl>(VD))
tools/clang/lib/Index/IndexSymbol.cpp 157 } else if (isa<VarTemplateSpecializationDecl>(D)) {
tools/clang/lib/Index/USRGeneration.cpp 332 if (const VarTemplateSpecializationDecl *Spec
333 = dyn_cast<VarTemplateSpecializationDecl>(D)) {
tools/clang/lib/Sema/Sema.cpp 618 for (const auto *Spec : Template->specializations())
tools/clang/lib/Sema/SemaExpr.cpp16714 VarTemplateSpecializationDecl *VarSpec =
16715 dyn_cast<VarTemplateSpecializationDecl>(Var);
16723 !isa<VarTemplateSpecializationDecl>(Var))
16765 isa<VarTemplateSpecializationDecl>(Var)) {
tools/clang/lib/Sema/SemaLambda.cpp 306 else if (auto *VTS = dyn_cast<VarTemplateSpecializationDecl>(Var)) {
306 else if (auto *VTS = dyn_cast<VarTemplateSpecializationDecl>(Var)) {
tools/clang/lib/Sema/SemaTemplate.cpp 801 if (isa<VarTemplateSpecializationDecl>(Instantiation)) {
3137 if (const auto *IV = dyn_cast<VarTemplateSpecializationDecl>(VD)) {
3137 if (const auto *IV = dyn_cast<VarTemplateSpecializationDecl>(VD)) {
3914 VarTemplateSpecializationDecl *PrevDecl = nullptr;
3922 VarTemplateSpecializationDecl *Specialization = nullptr;
3962 Specialization = VarTemplateSpecializationDecl::Create(
4052 if (VarTemplateSpecializationDecl *Spec = Template->findSpecialization(
4160 VarTemplateSpecializationDecl *Decl = BuildVarTemplateInstantiation(
10455 auto *SD = dyn_cast<VarTemplateSpecializationDecl>(RD);
10455 auto *SD = dyn_cast<VarTemplateSpecializationDecl>(RD);
tools/clang/lib/Sema/SemaTemplateInstantiate.cpp 73 VarTemplateSpecializationDecl *Spec =
74 dyn_cast<VarTemplateSpecializationDecl>(D);
571 isa<VarTemplateSpecializationDecl>(Active->Entity);
2714 if (isa<VarTemplateSpecializationDecl>(Var))
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp 3378 VarTemplateSpecializationDecl *D) {
3408 VarTemplateSpecializationDecl *PrevDecl =
3428 VarTemplateSpecializationDecl *PrevDecl) {
3444 VarTemplateSpecializationDecl *Var = VarTemplateSpecializationDecl::Create(
3444 VarTemplateSpecializationDecl *Var = VarTemplateSpecializationDecl::Create(
3728 VarTemplateSpecializationDecl *PrevDecl =
4405 VarTemplateSpecializationDecl *Sema::BuildVarTemplateInstantiation(
4447 return cast_or_null<VarTemplateSpecializationDecl>(
4454 VarTemplateSpecializationDecl *Sema::CompleteVarTemplateSpecializationDecl(
4455 VarTemplateSpecializationDecl *VarSpec, VarDecl *PatternDecl,
4488 VarTemplateSpecializationDecl *PrevDeclForVarTemplateSpecialization) {
4497 isa<VarTemplateSpecializationDecl>(NewVar) &&
4544 } else if (!isa<VarTemplateSpecializationDecl>(NewVar) &&
4576 if (VarTemplateSpecializationDecl *OldVTSD =
4577 dyn_cast<VarTemplateSpecializationDecl>(OldVar)) {
4580 cast<VarTemplateSpecializationDecl>(NewVar)->setSpecializationKind(
4714 VarTemplateSpecializationDecl *VarSpec =
4715 dyn_cast<VarTemplateSpecializationDecl>(Var);
4885 cast<VarTemplateSpecializationDecl>(Var)->setInstantiationOf(
5526 if (auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(D)) {
5526 if (auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(D)) {
tools/clang/lib/Serialization/ASTReader.cpp 7646 if (auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(D))
tools/clang/lib/Serialization/ASTReaderDecl.cpp 355 VisitVarTemplateSpecializationDeclImpl(VarTemplateSpecializationDecl *D);
357 void VisitVarTemplateSpecializationDecl(VarTemplateSpecializationDecl *D) {
1418 !isa<VarTemplateSpecializationDecl>(VD))
2207 VarTemplateSpecializationDecl *D) {
2221 VarTemplateSpecializationDecl::SpecializedPartialSpecialization();
2232 new (C) VarTemplateSpecializationDecl::ExplicitSpecializationInfo;
3742 D = VarTemplateSpecializationDecl::CreateDeserialized(Context, ID);
4293 if (auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(D)) {
4293 if (auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(D)) {
tools/clang/lib/Serialization/ASTWriter.cpp 6590 const VarTemplateDecl *TD, const VarTemplateSpecializationDecl *D) {
tools/clang/lib/Serialization/ASTWriterDecl.cpp 79 void VisitVarTemplateSpecializationDecl(VarTemplateSpecializationDecl *D);
188 typename RedeclarableTemplateDecl::SpecEntryTraits<EntryType>::DeclType *
189 getSpecializationDecl(EntryType &T) {
190 return RedeclarableTemplateDecl::SpecEntryTraits<EntryType>::getDecl(&T);
226 for (auto &Entry : Common->Specializations)
995 !isa<VarTemplateSpecializationDecl>(D)) {
1537 VarTemplateSpecializationDecl *D) {
tools/clang/tools/extra/clangd/AST.cpp 46 } else if (auto *Var = llvm::dyn_cast<VarTemplateSpecializationDecl>(&ND))
tools/clang/tools/extra/clangd/FindSymbols.cpp 250 if (auto *TemplSpec = llvm::dyn_cast<VarTemplateSpecializationDecl>(D)) {
250 if (auto *TemplSpec = llvm::dyn_cast<VarTemplateSpecializationDecl>(D)) {
tools/clang/unittests/AST/ASTImporterODRStrategiesTest.cpp 207 Decl, VarTemplateSpecializationDecl>
211 using DeclTy = VarTemplateSpecializationDecl;
253 auto *ToD = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
256 auto *FromD = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
tools/clang/unittests/AST/ASTImporterTest.cpp 819 const internal::VariadicDynCastAllOfMatcher<Decl, VarTemplateSpecializationDecl>
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) {
47 using UnaryPredicate = std::function<bool(const NodeType *)>;
51 if (auto N = Result.Nodes.getNodeAs<NodeType>("")) {
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h 123 typedef _Tp value_type;
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; };
1633 { typedef _Tp type; };
1983 { typedef _Up type; };
1999 { typedef typename remove_reference<_Tp>::type* type; };
2003 : public __add_pointer_helper<_Tp>