Skip to content

Instantly share code, notes, and snippets.

@locusf
Created December 29, 2016 16:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save locusf/052c6909893b6ea041b8f3519eaa8936 to your computer and use it in GitHub Desktop.
Save locusf/052c6909893b6ea041b8f3519eaa8936 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
TranslationUnitDecl 0x259fd20 <<invalid sloc>> <invalid sloc>
|-TypedefDecl 0x25a02a8 <<invalid sloc>> <invalid sloc> implicit __int128_t '__int128'
| `-BuiltinType 0x259ff90 '__int128'
|-TypedefDecl 0x25a0308 <<invalid sloc>> <invalid sloc> implicit __uint128_t 'unsigned __int128'
| `-BuiltinType 0x259ffb0 'unsigned __int128'
|-TypedefDecl 0x25a0638 <<invalid sloc>> <invalid sloc> implicit __NSConstantString 'struct __NSConstantString_tag'
| `-RecordType 0x25a03f0 'struct __NSConstantString_tag'
| `-CXXRecord 0x25a0358 '__NSConstantString_tag'
|-TypedefDecl 0x25a06c8 <<invalid sloc>> <invalid sloc> implicit __builtin_ms_va_list 'char *'
| `-PointerType 0x25a0690 'char *'
| `-BuiltinType 0x259fdb0 'char'
|-TypedefDecl 0x25a09e8 <<invalid sloc>> <invalid sloc> implicit __builtin_va_list 'struct __va_list_tag [1]'
| `-ConstantArrayType 0x25a0990 'struct __va_list_tag [1]' 1
| `-RecordType 0x25a07b0 'struct __va_list_tag'
| `-CXXRecord 0x25a0718 '__va_list_tag'
|-NamespaceDecl 0x25fd3b0 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:196:1, line:204:1> line:196:11 std
| |-TypedefDecl 0x25fd428 <line:198:3, col:26> col:26 referenced size_t 'unsigned long'
| | `-BuiltinType 0x259fed0 'unsigned long'
| `-TypedefDecl 0x25fd488 <line:199:3, col:28> col:28 referenced ptrdiff_t 'long'
| `-BuiltinType 0x259fe30 'long'
|-NamespaceDecl 0x25fd4d8 prev 0x25fd3b0 <line:218:1, line:221:1> line:218:11 std
| |-original Namespace 0x25fd3b0 'std'
| `-NamespaceDecl 0x25fd5e8 <line:220:3, col:69> col:20 __cxx11 inline
| `-AbiTagAttr 0x25fd650 <col:43, col:63> cxx11
|-NamespaceDecl 0x25fd6b0 <line:222:1, line:225:1> line:222:11 __gnu_cxx
| `-NamespaceDecl 0x25fd748 <line:224:3, col:69> col:20 __cxx11 inline
| `-AbiTagAttr 0x25fd7b0 <col:43, col:63> cxx11
|-NamespaceDecl 0x25fd8b8 prev 0x25fd4d8 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/functexcept.h:42:1, line:108:1> line:42:11 std
| |-original Namespace 0x25fd3b0 'std'
| |-VisibilityAttr 0x25fd920 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:67:49, col:67> Default
| |-FunctionDecl 0x25fda50 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/functexcept.h:47:3, line:48:59> col:3 __throw_bad_exception 'void (void) __attribute__((noreturn))'
| |-FunctionDecl 0x25fdb88 <line:51:3, line:52:55> col:3 used __throw_bad_alloc 'void (void) __attribute__((noreturn))'
| |-FunctionDecl 0x25fdcc0 <line:55:3, line:56:54> col:3 __throw_bad_cast 'void (void) __attribute__((noreturn))'
| |-FunctionDecl 0x25fddf8 <line:58:3, line:59:56> col:3 __throw_bad_typeid 'void (void) __attribute__((noreturn))'
| |-FunctionDecl 0x25fdfb0 <line:62:3, line:63:64> col:3 __throw_logic_error 'void (const char *) __attribute__((noreturn))'
| | `-ParmVarDecl 0x25fdeb0 <col:23, col:33> col:34 'const char *'
| |-FunctionDecl 0x25fe0f8 <line:65:3, line:66:65> col:3 __throw_domain_error 'void (const char *) __attribute__((noreturn))'
| | `-ParmVarDecl 0x25fe070 <col:24, col:34> col:35 'const char *'
| |-FunctionDecl 0x25fe240 <line:68:3, line:69:69> col:3 __throw_invalid_argument 'void (const char *) __attribute__((noreturn))'
| | `-ParmVarDecl 0x25fe1b8 <col:28, col:38> col:39 'const char *'
| |-FunctionDecl 0x2635010 <line:71:3, line:72:65> col:3 used __throw_length_error 'void (const char *) __attribute__((noreturn))'
| | `-ParmVarDecl 0x25fe300 <col:24, col:34> col:35 'const char *'
| |-FunctionDecl 0x2635158 <line:74:3, line:75:65> col:3 __throw_out_of_range 'void (const char *) __attribute__((noreturn))'
| | `-ParmVarDecl 0x26350d0 <col:24, col:34> col:35 'const char *'
| |-FunctionDecl 0x2635370 <line:77:3, line:79:53> line:78:3 __throw_out_of_range_fmt 'void (const char *, ...) __attribute__((noreturn))'
| | `-ParmVarDecl 0x2635218 <col:28, col:38> col:39 'const char *'
| |-FunctionDecl 0x26354b8 <line:81:3, line:82:66> col:3 __throw_runtime_error 'void (const char *) __attribute__((noreturn))'
| | `-ParmVarDecl 0x2635430 <col:25, col:35> col:36 'const char *'
| |-FunctionDecl 0x2635600 <line:84:3, line:85:64> col:3 __throw_range_error 'void (const char *) __attribute__((noreturn))'
| | `-ParmVarDecl 0x2635578 <col:23, col:33> col:34 'const char *'
| |-FunctionDecl 0x2635748 <line:87:3, line:88:67> col:3 __throw_overflow_error 'void (const char *) __attribute__((noreturn))'
| | `-ParmVarDecl 0x26356c0 <col:26, col:36> col:37 'const char *'
| |-FunctionDecl 0x2635890 <line:90:3, line:91:68> col:3 __throw_underflow_error 'void (const char *) __attribute__((noreturn))'
| | `-ParmVarDecl 0x2635808 <col:27, col:37> col:38 'const char *'
| |-FunctionDecl 0x26359d8 <line:94:3, line:95:64> col:3 __throw_ios_failure 'void (const char *) __attribute__((noreturn))'
| | `-ParmVarDecl 0x2635950 <col:23, col:33> col:34 'const char *'
| |-FunctionDecl 0x2635ba0 <line:97:3, line:98:57> col:3 __throw_system_error 'void (int) __attribute__((noreturn))'
| | `-ParmVarDecl 0x2635a98 <col:24> col:27 'int'
| |-FunctionDecl 0x2635ce8 <line:100:3, line:101:57> col:3 __throw_future_error 'void (int) __attribute__((noreturn))'
| | `-ParmVarDecl 0x2635c60 <col:24> col:27 'int'
| `-FunctionDecl 0x2635db8 <line:104:3, line:105:59> col:3 __throw_bad_function_call 'void (void) __attribute__((noreturn))'
|-LinkageSpecDecl 0x2635f08 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:67:1, line:413:1> line:67:8 C++
| `-NamespaceDecl 0x2635f88 prev 0x25fd8b8 <line:69:1, line:412:1> line:69:11 std
| |-original Namespace 0x25fd3b0 'std'
| |-VisibilityAttr 0x2635ff0 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:67:49, col:67> Default
| |-CXXRecordDecl 0x2638658 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:73:3, col:24> col:10 referenced struct __true_type definition
| | `-CXXRecordDecl 0x2638770 <col:3, col:10> col:10 implicit struct __true_type
| |-CXXRecordDecl 0x2638808 <line:74:3, col:25> col:10 referenced struct __false_type definition
| | `-CXXRecordDecl 0x2638920 <col:3, col:10> col:10 implicit struct __false_type
| |-ClassTemplateDecl 0x2638ad0 <line:76:3, line:78:36> line:77:12 __truth_type
| | |-NonTypeTemplateParmDecl 0x26389c8 <line:76:12> col:16 '_Bool'
| | |-CXXRecordDecl 0x2638a38 <line:77:5, line:78:36> line:77:12 struct __truth_type definition
| | | |-CXXRecordDecl 0x2638d68 <col:5, col:12> col:12 implicit struct __truth_type
| | | `-TypedefDecl 0x2638e10 <line:78:7, col:28> col:28 __type 'struct std::__false_type'
| | | `-RecordType 0x26388a0 'struct std::__false_type'
| | | `-CXXRecord 0x2638808 '__false_type'
| | `-ClassTemplateSpecialization 0x2638e88 '__truth_type'
| |-ClassTemplateSpecializationDecl 0x2638e88 <line:80:3, line:82:35> line:81:12 struct __truth_type definition
| | |-TemplateArgument integral 1
| | |-CXXRecordDecl 0x26390a8 <col:5, col:12> col:12 implicit struct __truth_type
| | `-TypedefDecl 0x2639150 <line:82:7, col:27> col:27 referenced __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateDecl 0x2639390 <line:86:3, line:91:5> line:87:12 __traitor
| | |-TemplateTypeParmDecl 0x26391a0 <line:86:12, col:18> col:18 class _Sp
| | |-TemplateTypeParmDecl 0x2639238 <col:23, col:29> col:29 class _Tp
| | |-CXXRecordDecl 0x26392f8 <line:87:5, line:91:5> line:87:12 struct __traitor definition
| | | |-CXXRecordDecl 0x263f080 <col:5, col:12> col:12 implicit struct __traitor
| | | |-EnumDecl 0x263f118 <line:89:7, col:65> col:7
| | | | `-EnumConstantDecl 0x263f398 <col:14, col:63> col:14 referenced __value 'enum std::__traitor::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:89:7)'
| | | | `-BinaryOperator 0x263f370 <col:24, col:63> '_Bool' '||'
| | | | |-CXXUnresolvedConstructExpr 0x263f270 <col:24, col:41> '_Bool'
| | | | | `-DependentScopeDeclRefExpr 0x263f230 <col:29, col:34> '<dependent type>' lvalue
| | | | `-CXXUnresolvedConstructExpr 0x263f340 <col:46, col:63> '_Bool'
| | | | `-DependentScopeDeclRefExpr 0x263f300 <col:51, col:56> '<dependent type>' lvalue
| | | `-TypedefDecl 0x263f600 <line:90:7, col:54> col:54 __type 'typename __truth_type<__value>::__type'
| | | `-DependentNameType 0x263f590 'typename __truth_type<__value>::__type' dependent
| | |-ClassTemplateSpecializationDecl 0x281c7f8 <line:86:3, line:91:5> line:87:12 struct __traitor definition
| | | |-TemplateArgument type 'struct std::__is_arithmetic<int>'
| | | |-TemplateArgument type 'struct std::__is_pointer<int>'
| | | |-CXXRecordDecl 0x281ca28 prev 0x281c7f8 <col:5, col:12> col:12 implicit struct __traitor
| | | |-EnumDecl 0x281cac0 <line:89:7> col:7
| | | | `-EnumConstantDecl 0x2719d28 <col:14, col:63> col:14 referenced __value 'enum std::__traitor<struct std::__is_arithmetic<int>, struct std::__is_pointer<int> >::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:89:7)'
| | | | `-ImplicitCastExpr 0x2719d78 <col:24, col:63> 'unsigned int' <IntegralCast>
| | | | `-BinaryOperator 0x2719d00 <col:24, col:63> '_Bool' '||'
| | | | |-CXXFunctionalCastExpr 0x2719958 <col:24, col:41> '_Bool' functional cast to _Bool <NoOp>
| | | | | `-ImplicitCastExpr 0x2719940 <col:29, col:34> '_Bool' <IntegralToBoolean>
| | | | | `-DeclRefExpr 0x2719908 <col:29, col:34> 'enum std::__traitor<struct std::__is_integer<int>, struct std::__is_floating<int> >::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:89:7)' EnumConstant 0x2719638 '__value' 'enum std::__traitor<struct std::__is_integer<int>, struct std::__is_floating<int> >::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:89:7)'
| | | | `-CXXFunctionalCastExpr 0x2719cd8 <col:46, col:63> '_Bool' functional cast to _Bool <NoOp>
| | | | `-ImplicitCastExpr 0x2719cc0 <col:51, col:56> '_Bool' <IntegralToBoolean>
| | | | `-DeclRefExpr 0x2719c88 <col:51, col:56> 'enum std::__is_pointer<int>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:313:7)' EnumConstant 0x2719bd0 '__value' 'enum std::__is_pointer<int>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:313:7)'
| | | `-TypedefDecl 0x2719ec0 <line:90:7, col:54> col:54 __type 'typename __truth_type<__value>::__type':'struct std::__true_type'
| | | `-ElaboratedType 0x2719e70 'typename __truth_type<__value>::__type' sugar
| | | `-TypedefType 0x2719780 '__type' sugar
| | | |-Typedef 0x2639150 '__type'
| | | `-RecordType 0x26386f0 'struct std::__true_type'
| | | `-CXXRecord 0x2638658 '__true_type'
| | `-ClassTemplateSpecializationDecl 0x281ce98 <line:86:3, line:91:5> line:87:12 struct __traitor definition
| | |-TemplateArgument type 'struct std::__is_integer<int>'
| | |-TemplateArgument type 'struct std::__is_floating<int>'
| | |-CXXRecordDecl 0x281d0c8 prev 0x281ce98 <col:5, col:12> col:12 implicit struct __traitor
| | |-EnumDecl 0x281d160 <line:89:7> col:7
| | | `-EnumConstantDecl 0x2719638 <col:14, col:63> col:14 referenced __value 'enum std::__traitor<struct std::__is_integer<int>, struct std::__is_floating<int> >::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:89:7)'
| | | `-ImplicitCastExpr 0x2719688 <col:24, col:63> 'unsigned int' <IntegralCast>
| | | `-BinaryOperator 0x2719610 <col:24, col:63> '_Bool' '||'
| | | |-CXXFunctionalCastExpr 0x281d2e0 <col:24, col:41> '_Bool' functional cast to _Bool <NoOp>
| | | | `-ImplicitCastExpr 0x281d2c8 <col:29, col:34> '_Bool' <IntegralToBoolean>
| | | | `-DeclRefExpr 0x281d290 <col:29, col:34> 'enum std::__is_integer<int>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:207:7)' EnumConstant 0x264c580 '__value' 'enum std::__is_integer<int>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:207:7)'
| | | `-CXXFunctionalCastExpr 0x27195e8 <col:46, col:63> '_Bool' functional cast to _Bool <NoOp>
| | | `-ImplicitCastExpr 0x27195d0 <col:51, col:56> '_Bool' <IntegralToBoolean>
| | | `-DeclRefExpr 0x2719598 <col:51, col:56> 'enum std::__is_floating<int>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:281:7)' EnumConstant 0x27194e0 '__value' 'enum std::__is_floating<int>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:281:7)'
| | `-TypedefDecl 0x27197f0 <line:90:7, col:54> col:54 __type 'typename __truth_type<__value>::__type':'struct std::__true_type'
| | `-ElaboratedType 0x27197a0 'typename __truth_type<__value>::__type' sugar
| | `-TypedefType 0x2719780 '__type' sugar
| | |-Typedef 0x2639150 '__type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateDecl 0x263f7e0 <line:94:3, line:99:5> line:95:12 __are_same
| | |-TemplateTypeParmDecl 0x263f650 <line:94:12> col:12 typename
| | |-TemplateTypeParmDecl 0x263f6b8 <col:22> col:22 typename
| | |-CXXRecordDecl 0x263f748 <line:95:5, line:99:5> line:95:12 struct __are_same definition
| | | |-CXXRecordDecl 0x263fa78 <col:5, col:12> col:12 implicit struct __are_same
| | | |-EnumDecl 0x263fb10 <line:97:7, col:26> col:7
| | | | `-EnumConstantDecl 0x263fbf0 <col:14, col:24> col:14 __value 'enum std::__are_same::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:97:7)'
| | | | `-IntegerLiteral 0x263fbd0 <col:24> 'int' 0
| | | `-TypedefDecl 0x263fc50 <line:98:7, col:28> col:28 __type 'struct std::__false_type'
| | | `-RecordType 0x26388a0 'struct std::__false_type'
| | | `-CXXRecord 0x2638808 '__false_type'
| | |-ClassTemplateSpecializationDecl 0x282fd98 <line:101:3, line:106:5> line:102:12 struct __are_same definition
| | | |-TemplateArgument type 'struct A *'
| | | |-TemplateArgument type 'struct A *'
| | | |-CXXRecordDecl 0x2830088 prev 0x282fd98 <col:5, col:12> col:12 implicit struct __are_same
| | | |-EnumDecl 0x2830120 <line:104:7> col:7
| | | | `-EnumConstantDecl 0x28301f0 <col:14, col:24> col:14 referenced __value 'enum std::__are_same<struct A *, struct A *>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:104:7)'
| | | | `-ImplicitCastExpr 0x2830240 <col:24> 'unsigned int' <IntegralCast>
| | | | `-IntegerLiteral 0x2642fb0 <col:24> 'int' 1
| | | `-TypedefDecl 0x2830258 <line:105:7, col:27> col:27 __type 'struct std::__true_type'
| | | `-RecordType 0x26386f0 'struct std::__true_type'
| | | `-CXXRecord 0x2638658 '__true_type'
| | `-ClassTemplateSpecializationDecl 0x2839d80 <line:101:3, line:106:5> line:102:12 struct __are_same definition
| | |-TemplateArgument type 'struct A'
| | |-TemplateArgument type 'struct A'
| | |-CXXRecordDecl 0x283a068 prev 0x2839d80 <col:5, col:12> col:12 implicit struct __are_same
| | |-EnumDecl 0x283a100 <line:104:7> col:7
| | | `-EnumConstantDecl 0x283a1d0 <col:14, col:24> col:14 referenced __value 'enum std::__are_same<struct A, struct A>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:104:7)'
| | | `-ImplicitCastExpr 0x283a220 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x2642fb0 <col:24> 'int' 1
| | `-TypedefDecl 0x283a238 <line:105:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplatePartialSpecializationDecl 0x263fe70 <line:101:3, line:106:5> line:102:12 struct __are_same definition
| | |-TemplateArgument type 'type-parameter-0-0'
| | |-TemplateArgument type 'type-parameter-0-0'
| | |-TemplateTypeParmDecl 0x263fca0 <line:101:12, col:21> col:21 referenced typename _Tp
| | |-CXXRecordDecl 0x2642e60 <line:102:5, col:12> col:12 implicit struct __are_same
| | |-EnumDecl 0x2642ef8 <line:104:7, col:26> col:7
| | | `-EnumConstantDecl 0x2642fd0 <col:14, col:24> col:14 __value 'enum std::__are_same<type-parameter-0-0, type-parameter-0-0>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:104:7)'
| | | `-IntegerLiteral 0x2642fb0 <col:24> 'int' 1
| | `-TypedefDecl 0x2643030 <line:105:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateDecl 0x2643198 <line:109:3, line:114:5> line:110:12 __is_void
| | |-TemplateTypeParmDecl 0x2643080 <line:109:12, col:21> col:21 typename _Tp
| | |-CXXRecordDecl 0x2643100 <line:110:5, line:114:5> line:110:12 struct __is_void definition
| | | |-CXXRecordDecl 0x2643408 <col:5, col:12> col:12 implicit struct __is_void
| | | |-EnumDecl 0x26434a0 <line:112:7, col:26> col:7
| | | | `-EnumConstantDecl 0x2643580 <col:14, col:24> col:14 __value 'enum std::__is_void::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:112:7)'
| | | | `-IntegerLiteral 0x2643560 <col:24> 'int' 0
| | | `-TypedefDecl 0x26435e0 <line:113:7, col:28> col:28 __type 'struct std::__false_type'
| | | `-RecordType 0x26388a0 'struct std::__false_type'
| | | `-CXXRecord 0x2638808 '__false_type'
| | `-ClassTemplateSpecialization 0x2643650 '__is_void'
| |-ClassTemplateSpecializationDecl 0x2643650 <line:116:3, line:121:5> line:117:12 struct __is_void definition
| | |-TemplateArgument type 'void'
| | |-CXXRecordDecl 0x2643878 <col:5, col:12> col:12 implicit struct __is_void
| | |-EnumDecl 0x2643910 <line:119:7, col:26> col:7
| | | `-EnumConstantDecl 0x26439f0 <col:14, col:24> col:14 __value 'enum std::__is_void<void>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:119:7)'
| | | `-ImplicitCastExpr 0x2643a40 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x26439d0 <col:24> 'int' 1
| | `-TypedefDecl 0x2643a68 <line:120:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateDecl 0x2643bd8 <line:126:3, line:131:5> line:127:12 __is_integer
| | |-TemplateTypeParmDecl 0x2643ab8 <line:126:12, col:21> col:21 typename _Tp
| | |-CXXRecordDecl 0x2643b40 <line:127:5, line:131:5> line:127:12 struct __is_integer definition
| | | |-CXXRecordDecl 0x2646120 <col:5, col:12> col:12 implicit struct __is_integer
| | | |-EnumDecl 0x26461b8 <line:129:7, col:26> col:7
| | | | `-EnumConstantDecl 0x2646290 <col:14, col:24> col:14 __value 'enum std::__is_integer::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:129:7)'
| | | | `-IntegerLiteral 0x2646270 <col:24> 'int' 0
| | | `-TypedefDecl 0x26462f0 <line:130:7, col:28> col:28 __type 'struct std::__false_type'
| | | `-RecordType 0x26388a0 'struct std::__false_type'
| | | `-CXXRecord 0x2638808 '__false_type'
| | |-ClassTemplateSpecialization 0x2646360 '__is_integer'
| | |-ClassTemplateSpecialization 0x26467e8 '__is_integer'
| | |-ClassTemplateSpecialization 0x2646c68 '__is_integer'
| | |-ClassTemplateSpecialization 0x26490e0 '__is_integer'
| | |-ClassTemplateSpecialization 0x2649568 '__is_integer'
| | |-ClassTemplateSpecialization 0x26499e8 '__is_integer'
| | |-ClassTemplateSpecialization 0x2649e68 '__is_integer'
| | |-ClassTemplateSpecialization 0x264c1e8 '__is_integer'
| | |-ClassTemplateSpecialization 0x264c668 '__is_integer'
| | |-ClassTemplateSpecialization 0x264cae8 '__is_integer'
| | |-ClassTemplateSpecialization 0x264f4e0 '__is_integer'
| | |-ClassTemplateSpecialization 0x264f968 '__is_integer'
| | |-ClassTemplateSpecialization 0x264fde8 '__is_integer'
| | |-ClassTemplateSpecializationDecl 0x2670758 <line:126:3, line:131:5> line:127:12 struct __is_integer definition
| | | |-TemplateArgument type 'long double'
| | | |-CXXRecordDecl 0x2670968 prev 0x2670758 <col:5, col:12> col:12 implicit struct __is_integer
| | | |-EnumDecl 0x2670a00 <line:129:7> col:7
| | | | `-EnumConstantDecl 0x2670ad0 <col:14, col:24> col:14 referenced __value 'enum std::__is_integer<long double>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:129:7)'
| | | | `-ImplicitCastExpr 0x2670b20 <col:24> 'unsigned int' <IntegralCast>
| | | | `-IntegerLiteral 0x2646270 <col:24> 'int' 0
| | | `-TypedefDecl 0x2670b38 <line:130:7, col:28> col:28 __type 'struct std::__false_type'
| | | `-RecordType 0x26388a0 'struct std::__false_type'
| | | `-CXXRecord 0x2638808 '__false_type'
| | |-ClassTemplateSpecializationDecl 0x2670f68 <line:126:3, line:131:5> line:127:12 struct __is_integer definition
| | | |-TemplateArgument type 'double'
| | | |-CXXRecordDecl 0x2671750 prev 0x2670f68 <col:5, col:12> col:12 implicit struct __is_integer
| | | |-EnumDecl 0x26717e8 <line:129:7> col:7
| | | | `-EnumConstantDecl 0x26718b0 <col:14, col:24> col:14 referenced __value 'enum std::__is_integer<double>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:129:7)'
| | | | `-ImplicitCastExpr 0x2671900 <col:24> 'unsigned int' <IntegralCast>
| | | | `-IntegerLiteral 0x2646270 <col:24> 'int' 0
| | | `-TypedefDecl 0x2671918 <line:130:7, col:28> col:28 __type 'struct std::__false_type'
| | | `-RecordType 0x26388a0 'struct std::__false_type'
| | | `-CXXRecord 0x2638808 '__false_type'
| | `-ClassTemplateSpecializationDecl 0x2671d48 <line:126:3, line:131:5> line:127:12 struct __is_integer definition
| | |-TemplateArgument type 'float'
| | |-CXXRecordDecl 0x2671f58 prev 0x2671d48 <col:5, col:12> col:12 implicit struct __is_integer
| | |-EnumDecl 0x2671ff0 <line:129:7> col:7
| | | `-EnumConstantDecl 0x26720c0 <col:14, col:24> col:14 referenced __value 'enum std::__is_integer<float>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:129:7)'
| | | `-ImplicitCastExpr 0x2672110 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x2646270 <col:24> 'int' 0
| | `-TypedefDecl 0x2672128 <line:130:7, col:28> col:28 __type 'struct std::__false_type'
| | `-RecordType 0x26388a0 'struct std::__false_type'
| | `-CXXRecord 0x2638808 '__false_type'
| |-ClassTemplateSpecializationDecl 0x2646360 <line:137:3, line:142:5> line:138:12 struct __is_integer definition
| | |-TemplateArgument type '_Bool'
| | |-CXXRecordDecl 0x2646588 <col:5, col:12> col:12 implicit struct __is_integer
| | |-EnumDecl 0x2646620 <line:140:7, col:26> col:7
| | | `-EnumConstantDecl 0x2646700 <col:14, col:24> col:14 __value 'enum std::__is_integer<_Bool>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:140:7)'
| | | `-ImplicitCastExpr 0x2646750 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x26466e0 <col:24> 'int' 1
| | `-TypedefDecl 0x2646778 <line:141:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x26467e8 <line:144:3, line:149:5> line:145:12 struct __is_integer definition
| | |-TemplateArgument type 'char'
| | |-CXXRecordDecl 0x2646a08 <col:5, col:12> col:12 implicit struct __is_integer
| | |-EnumDecl 0x2646aa0 <line:147:7, col:26> col:7
| | | `-EnumConstantDecl 0x2646b80 <col:14, col:24> col:14 __value 'enum std::__is_integer<char>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:147:7)'
| | | `-ImplicitCastExpr 0x2646bd0 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x2646b60 <col:24> 'int' 1
| | `-TypedefDecl 0x2646bf8 <line:148:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x2646c68 <line:151:3, line:156:5> line:152:12 struct __is_integer definition
| | |-TemplateArgument type 'signed char'
| | |-CXXRecordDecl 0x2646e88 <col:5, col:12> col:12 implicit struct __is_integer
| | |-EnumDecl 0x2646f20 <line:154:7, col:26> col:7
| | | `-EnumConstantDecl 0x2647000 <col:14, col:24> col:14 __value 'enum std::__is_integer<signed char>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:154:7)'
| | | `-ImplicitCastExpr 0x2647050 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x2646fe0 <col:24> 'int' 1
| | `-TypedefDecl 0x2649070 <line:155:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x26490e0 <line:158:3, line:163:5> line:159:12 struct __is_integer definition
| | |-TemplateArgument type 'unsigned char'
| | |-CXXRecordDecl 0x2649308 <col:5, col:12> col:12 implicit struct __is_integer
| | |-EnumDecl 0x26493a0 <line:161:7, col:26> col:7
| | | `-EnumConstantDecl 0x2649480 <col:14, col:24> col:14 __value 'enum std::__is_integer<unsigned char>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:161:7)'
| | | `-ImplicitCastExpr 0x26494d0 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x2649460 <col:24> 'int' 1
| | `-TypedefDecl 0x26494f8 <line:162:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x2649568 <line:166:3, line:171:5> line:167:12 struct __is_integer definition
| | |-TemplateArgument type 'wchar_t'
| | |-CXXRecordDecl 0x2649788 <col:5, col:12> col:12 implicit struct __is_integer
| | |-EnumDecl 0x2649820 <line:169:7, col:26> col:7
| | | `-EnumConstantDecl 0x2649900 <col:14, col:24> col:14 __value 'enum std::__is_integer<wchar_t>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:169:7)'
| | | `-ImplicitCastExpr 0x2649950 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x26498e0 <col:24> 'int' 1
| | `-TypedefDecl 0x2649978 <line:170:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x26499e8 <line:190:3, line:195:5> line:191:12 struct __is_integer definition
| | |-TemplateArgument type 'short'
| | |-CXXRecordDecl 0x2649c08 <col:5, col:12> col:12 implicit struct __is_integer
| | |-EnumDecl 0x2649ca0 <line:193:7, col:26> col:7
| | | `-EnumConstantDecl 0x2649d80 <col:14, col:24> col:14 __value 'enum std::__is_integer<short>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:193:7)'
| | | `-ImplicitCastExpr 0x2649dd0 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x2649d60 <col:24> 'int' 1
| | `-TypedefDecl 0x2649df8 <line:194:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x2649e68 <line:197:3, line:202:5> line:198:12 struct __is_integer definition
| | |-TemplateArgument type 'unsigned short'
| | |-CXXRecordDecl 0x264bf90 <col:5, col:12> col:12 implicit struct __is_integer
| | |-EnumDecl 0x264c028 <line:200:7, col:26> col:7
| | | `-EnumConstantDecl 0x264c100 <col:14, col:24> col:14 __value 'enum std::__is_integer<unsigned short>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:200:7)'
| | | `-ImplicitCastExpr 0x264c150 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x264c0e0 <col:24> 'int' 1
| | `-TypedefDecl 0x264c178 <line:201:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x264c1e8 <line:204:3, line:209:5> line:205:12 struct __is_integer definition
| | |-TemplateArgument type 'int'
| | |-CXXRecordDecl 0x264c408 <col:5, col:12> col:12 implicit struct __is_integer
| | |-EnumDecl 0x264c4a0 <line:207:7, col:26> col:7
| | | `-EnumConstantDecl 0x264c580 <col:14, col:24> col:14 referenced __value 'enum std::__is_integer<int>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:207:7)'
| | | `-ImplicitCastExpr 0x264c5d0 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x264c560 <col:24> 'int' 1
| | `-TypedefDecl 0x264c5f8 <line:208:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x264c668 <line:211:3, line:216:5> line:212:12 struct __is_integer definition
| | |-TemplateArgument type 'unsigned int'
| | |-CXXRecordDecl 0x264c888 <col:5, col:12> col:12 implicit struct __is_integer
| | |-EnumDecl 0x264c920 <line:214:7, col:26> col:7
| | | `-EnumConstantDecl 0x264ca00 <col:14, col:24> col:14 __value 'enum std::__is_integer<unsigned int>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:214:7)'
| | | `-ImplicitCastExpr 0x264ca50 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x264c9e0 <col:24> 'int' 1
| | `-TypedefDecl 0x264ca78 <line:215:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x264cae8 <line:218:3, line:223:5> line:219:12 struct __is_integer definition
| | |-TemplateArgument type 'long'
| | |-CXXRecordDecl 0x264cd08 <col:5, col:12> col:12 implicit struct __is_integer
| | |-EnumDecl 0x264cda0 <line:221:7, col:26> col:7
| | | `-EnumConstantDecl 0x264ce80 <col:14, col:24> col:14 referenced __value 'enum std::__is_integer<long>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:221:7)'
| | | `-ImplicitCastExpr 0x264ced0 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x264ce60 <col:24> 'int' 1
| | `-TypedefDecl 0x264f470 <line:222:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x264f4e0 <line:225:3, line:230:5> line:226:12 struct __is_integer definition
| | |-TemplateArgument type 'unsigned long'
| | |-CXXRecordDecl 0x264f708 <col:5, col:12> col:12 implicit struct __is_integer
| | |-EnumDecl 0x264f7a0 <line:228:7, col:26> col:7
| | | `-EnumConstantDecl 0x264f880 <col:14, col:24> col:14 __value 'enum std::__is_integer<unsigned long>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:228:7)'
| | | `-ImplicitCastExpr 0x264f8d0 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x264f860 <col:24> 'int' 1
| | `-TypedefDecl 0x264f8f8 <line:229:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x264f968 <line:232:3, line:237:5> line:233:12 struct __is_integer definition
| | |-TemplateArgument type 'long long'
| | |-CXXRecordDecl 0x264fb88 <col:5, col:12> col:12 implicit struct __is_integer
| | |-EnumDecl 0x264fc20 <line:235:7, col:26> col:7
| | | `-EnumConstantDecl 0x264fd00 <col:14, col:24> col:14 __value 'enum std::__is_integer<long long>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:235:7)'
| | | `-ImplicitCastExpr 0x264fd50 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x264fce0 <col:24> 'int' 1
| | `-TypedefDecl 0x264fd78 <line:236:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x264fde8 <line:239:3, line:244:5> line:240:12 struct __is_integer definition
| | |-TemplateArgument type 'unsigned long long'
| | |-CXXRecordDecl 0x2650008 <col:5, col:12> col:12 implicit struct __is_integer
| | |-EnumDecl 0x26500a0 <line:242:7, col:26> col:7
| | | `-EnumConstantDecl 0x2650180 <col:14, col:24> col:14 __value 'enum std::__is_integer<unsigned long long>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:242:7)'
| | | `-ImplicitCastExpr 0x26501d0 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x2650160 <col:24> 'int' 1
| | `-TypedefDecl 0x26501f8 <line:243:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateDecl 0x2650368 <line:278:3, line:283:5> line:279:12 __is_floating
| | |-TemplateTypeParmDecl 0x2650248 <line:278:12, col:21> col:21 typename _Tp
| | |-CXXRecordDecl 0x26502d0 <line:279:5, line:283:5> line:279:12 struct __is_floating definition
| | | |-CXXRecordDecl 0x2652ae8 <col:5, col:12> col:12 implicit struct __is_floating
| | | |-EnumDecl 0x2652b80 <line:281:7, col:26> col:7
| | | | `-EnumConstantDecl 0x2652c60 <col:14, col:24> col:14 __value 'enum std::__is_floating::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:281:7)'
| | | | `-IntegerLiteral 0x2652c40 <col:24> 'int' 0
| | | `-TypedefDecl 0x2652cc0 <line:282:7, col:28> col:28 __type 'struct std::__false_type'
| | | `-RecordType 0x26388a0 'struct std::__false_type'
| | | `-CXXRecord 0x2638808 '__false_type'
| | |-ClassTemplateSpecialization 0x2652d30 '__is_floating'
| | |-ClassTemplateSpecialization 0x26531b8 '__is_floating'
| | |-ClassTemplateSpecialization 0x2653638 '__is_floating'
| | `-ClassTemplateSpecializationDecl 0x281cd18 <line:278:3, line:283:5> line:279:12 struct __is_floating definition
| | |-TemplateArgument type 'int'
| | |-CXXRecordDecl 0x281d3d0 prev 0x281cd18 <col:5, col:12> col:12 implicit struct __is_floating
| | |-EnumDecl 0x281d468 <line:281:7> col:7
| | | `-EnumConstantDecl 0x27194e0 <col:14, col:24> col:14 referenced __value 'enum std::__is_floating<int>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:281:7)'
| | | `-ImplicitCastExpr 0x2719530 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x2652c40 <col:24> 'int' 0
| | `-TypedefDecl 0x2719548 <line:282:7, col:28> col:28 __type 'struct std::__false_type'
| | `-RecordType 0x26388a0 'struct std::__false_type'
| | `-CXXRecord 0x2638808 '__false_type'
| |-ClassTemplateSpecializationDecl 0x2652d30 <line:286:3, line:291:5> line:287:12 struct __is_floating definition
| | |-TemplateArgument type 'float'
| | |-CXXRecordDecl 0x2652f58 <col:5, col:12> col:12 implicit struct __is_floating
| | |-EnumDecl 0x2652ff0 <line:289:7, col:26> col:7
| | | `-EnumConstantDecl 0x26530d0 <col:14, col:24> col:14 __value 'enum std::__is_floating<float>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:289:7)'
| | | `-ImplicitCastExpr 0x2653120 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x26530b0 <col:24> 'int' 1
| | `-TypedefDecl 0x2653148 <line:290:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x26531b8 <line:293:3, line:298:5> line:294:12 struct __is_floating definition
| | |-TemplateArgument type 'double'
| | |-CXXRecordDecl 0x26533d8 <col:5, col:12> col:12 implicit struct __is_floating
| | |-EnumDecl 0x2653470 <line:296:7, col:26> col:7
| | | `-EnumConstantDecl 0x2653550 <col:14, col:24> col:14 __value 'enum std::__is_floating<double>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:296:7)'
| | | `-ImplicitCastExpr 0x26535a0 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x2653530 <col:24> 'int' 1
| | `-TypedefDecl 0x26535c8 <line:297:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x2653638 <line:300:3, line:305:5> line:301:12 struct __is_floating definition
| | |-TemplateArgument type 'long double'
| | |-CXXRecordDecl 0x26557c0 <col:5, col:12> col:12 implicit struct __is_floating
| | |-EnumDecl 0x2655858 <line:303:7, col:26> col:7
| | | `-EnumConstantDecl 0x2655930 <col:14, col:24> col:14 __value 'enum std::__is_floating<long double>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:303:7)'
| | | `-ImplicitCastExpr 0x2655980 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x2655910 <col:24> 'int' 1
| | `-TypedefDecl 0x26559a8 <line:304:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateDecl 0x2655b18 <line:310:3, line:315:5> line:311:12 __is_pointer
| | |-TemplateTypeParmDecl 0x26559f8 <line:310:12, col:21> col:21 typename _Tp
| | |-CXXRecordDecl 0x2655a80 <line:311:5, line:315:5> line:311:12 struct __is_pointer definition
| | | |-CXXRecordDecl 0x2655d88 <col:5, col:12> col:12 implicit struct __is_pointer
| | | |-EnumDecl 0x2655e20 <line:313:7, col:26> col:7
| | | | `-EnumConstantDecl 0x2655f00 <col:14, col:24> col:14 __value 'enum std::__is_pointer::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:313:7)'
| | | | `-IntegerLiteral 0x2655ee0 <col:24> 'int' 0
| | | `-TypedefDecl 0x2655f60 <line:314:7, col:28> col:28 __type 'struct std::__false_type'
| | | `-RecordType 0x26388a0 'struct std::__false_type'
| | | `-CXXRecord 0x2638808 '__false_type'
| | |-ClassTemplateSpecializationDecl 0x281c678 <line:310:3, line:315:5> line:311:12 struct __is_pointer definition
| | | |-TemplateArgument type 'int'
| | | |-CXXRecordDecl 0x2719a70 prev 0x281c678 <col:5, col:12> col:12 implicit struct __is_pointer
| | | |-EnumDecl 0x2719b08 <line:313:7> col:7
| | | | `-EnumConstantDecl 0x2719bd0 <col:14, col:24> col:14 referenced __value 'enum std::__is_pointer<int>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:313:7)'
| | | | `-ImplicitCastExpr 0x2719c20 <col:24> 'unsigned int' <IntegralCast>
| | | | `-IntegerLiteral 0x2655ee0 <col:24> 'int' 0
| | | `-TypedefDecl 0x2719c38 <line:314:7, col:28> col:28 __type 'struct std::__false_type'
| | | `-RecordType 0x26388a0 'struct std::__false_type'
| | | `-CXXRecord 0x2638808 '__false_type'
| | `-ClassTemplateSpecializationDecl 0x28396b0 <line:317:3, line:322:5> line:318:12 struct __is_pointer definition
| | |-TemplateArgument type 'struct A *'
| | |-CXXRecordDecl 0x2839978 prev 0x28396b0 <col:5, col:12> col:12 implicit struct __is_pointer
| | |-EnumDecl 0x2839a10 <line:320:7> col:7
| | | `-EnumConstantDecl 0x2839ae0 <col:14, col:24> col:14 referenced __value 'enum std::__is_pointer<struct A *>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:320:7)'
| | | `-ImplicitCastExpr 0x2839b30 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x26564f0 <col:24> 'int' 1
| | `-TypedefDecl 0x2839b48 <line:321:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplatePartialSpecializationDecl 0x2656178 <line:317:3, line:322:5> line:318:12 struct __is_pointer definition
| | |-TemplateArgument type 'type-parameter-0-0 *'
| | |-TemplateTypeParmDecl 0x2655fb0 <line:317:12, col:21> col:21 referenced typename _Tp
| | |-CXXRecordDecl 0x2656398 <line:318:5, col:12> col:12 implicit struct __is_pointer
| | |-EnumDecl 0x2656430 <line:320:7, col:26> col:7
| | | `-EnumConstantDecl 0x2656510 <col:14, col:24> col:14 __value 'enum std::__is_pointer<type-parameter-0-0 *>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:320:7)'
| | | `-IntegerLiteral 0x26564f0 <col:24> 'int' 1
| | `-TypedefDecl 0x2656570 <line:321:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateDecl 0x26566d8 <line:327:3, line:330:7> line:328:12 __is_arithmetic
| | |-TemplateTypeParmDecl 0x26565c0 <line:327:12, col:21> col:21 referenced typename _Tp
| | |-CXXRecordDecl 0x2656640 <line:328:5, line:330:7> line:328:12 struct __is_arithmetic definition
| | | |-public '__traitor<__is_integer<_Tp>, __is_floating<_Tp> >'
| | | `-CXXRecordDecl 0x2658ca8 <col:5, col:12> col:12 implicit struct __is_arithmetic
| | `-ClassTemplateSpecializationDecl 0x281c4e8 <line:327:3, line:330:7> line:328:12 struct __is_arithmetic definition
| | |-public '__traitor<__is_integer<int>, __is_floating<int> >':'struct std::__traitor<struct std::__is_integer<int>, struct std::__is_floating<int> >'
| | |-TemplateArgument type 'int'
| | `-CXXRecordDecl 0x2719870 prev 0x281c4e8 <col:5, col:12> col:12 implicit struct __is_arithmetic
| |-ClassTemplateDecl 0x2658e58 <line:335:3, line:338:7> line:336:12 __is_scalar
| | |-TemplateTypeParmDecl 0x2658d40 <line:335:12, col:21> col:21 referenced typename _Tp
| | |-CXXRecordDecl 0x2658dc0 <line:336:5, line:338:7> line:336:12 struct __is_scalar definition
| | | |-public '__traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >'
| | | `-CXXRecordDecl 0x2659488 <col:5, col:12> col:12 implicit struct __is_scalar
| | `-ClassTemplateSpecializationDecl 0x281c2a8 <line:335:3, line:338:7> line:336:12 struct __is_scalar definition
| | |-public '__traitor<__is_arithmetic<int>, __is_pointer<int> >':'struct std::__traitor<struct std::__is_arithmetic<int>, struct std::__is_pointer<int> >'
| | |-TemplateArgument type 'int'
| | `-CXXRecordDecl 0x2719f40 prev 0x281c2a8 <col:5, col:12> col:12 implicit struct __is_scalar
| |-ClassTemplateDecl 0x2659638 <line:343:3, line:348:5> line:344:12 __is_char
| | |-TemplateTypeParmDecl 0x2659520 <line:343:12, col:21> col:21 typename _Tp
| | |-CXXRecordDecl 0x26595a0 <line:344:5, line:348:5> line:344:12 struct __is_char definition
| | | |-CXXRecordDecl 0x265a358 <col:5, col:12> col:12 implicit struct __is_char
| | | |-EnumDecl 0x265a3f0 <line:346:7, col:26> col:7
| | | | `-EnumConstantDecl 0x265a4d0 <col:14, col:24> col:14 __value 'enum std::__is_char::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:346:7)'
| | | | `-IntegerLiteral 0x265a4b0 <col:24> 'int' 0
| | | `-TypedefDecl 0x265a530 <line:347:7, col:28> col:28 __type 'struct std::__false_type'
| | | `-RecordType 0x26388a0 'struct std::__false_type'
| | | `-CXXRecord 0x2638808 '__false_type'
| | |-ClassTemplateSpecialization 0x265a5a0 '__is_char'
| | `-ClassTemplateSpecialization 0x265aa28 '__is_char'
| |-ClassTemplateSpecializationDecl 0x265a5a0 <line:350:3, line:355:5> line:351:12 struct __is_char definition
| | |-TemplateArgument type 'char'
| | |-CXXRecordDecl 0x265a7c8 <col:5, col:12> col:12 implicit struct __is_char
| | |-EnumDecl 0x265a860 <line:353:7, col:26> col:7
| | | `-EnumConstantDecl 0x265a940 <col:14, col:24> col:14 __value 'enum std::__is_char<char>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:353:7)'
| | | `-ImplicitCastExpr 0x265a990 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x265a920 <col:24> 'int' 1
| | `-TypedefDecl 0x265a9b8 <line:354:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x265aa28 <line:358:3, line:363:5> line:359:12 struct __is_char definition
| | |-TemplateArgument type 'wchar_t'
| | |-CXXRecordDecl 0x265ac48 <col:5, col:12> col:12 implicit struct __is_char
| | |-EnumDecl 0x265ace0 <line:361:7, col:26> col:7
| | | `-EnumConstantDecl 0x265adc0 <col:14, col:24> col:14 __value 'enum std::__is_char<wchar_t>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:361:7)'
| | | `-ImplicitCastExpr 0x265ae10 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x265ada0 <col:24> 'int' 1
| | `-TypedefDecl 0x265ae38 <line:362:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateDecl 0x265afa8 <line:366:3, line:371:5> line:367:12 __is_byte
| | |-TemplateTypeParmDecl 0x265ae88 <line:366:12, col:21> col:21 typename _Tp
| | |-CXXRecordDecl 0x265af10 <line:367:5, line:371:5> line:367:12 struct __is_byte definition
| | | |-CXXRecordDecl 0x265d428 <col:5, col:12> col:12 implicit struct __is_byte
| | | |-EnumDecl 0x265d4c0 <line:369:7, col:26> col:7
| | | | `-EnumConstantDecl 0x265d5a0 <col:14, col:24> col:14 __value 'enum std::__is_byte::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:369:7)'
| | | | `-IntegerLiteral 0x265d580 <col:24> 'int' 0
| | | `-TypedefDecl 0x265d600 <line:370:7, col:28> col:28 __type 'struct std::__false_type'
| | | `-RecordType 0x26388a0 'struct std::__false_type'
| | | `-CXXRecord 0x2638808 '__false_type'
| | |-ClassTemplateSpecialization 0x265d670 '__is_byte'
| | |-ClassTemplateSpecialization 0x265daf8 '__is_byte'
| | `-ClassTemplateSpecialization 0x265df78 '__is_byte'
| |-ClassTemplateSpecializationDecl 0x265d670 <line:373:3, line:378:5> line:374:12 struct __is_byte definition
| | |-TemplateArgument type 'char'
| | |-CXXRecordDecl 0x265d898 <col:5, col:12> col:12 implicit struct __is_byte
| | |-EnumDecl 0x265d930 <line:376:7, col:26> col:7
| | | `-EnumConstantDecl 0x265da10 <col:14, col:24> col:14 __value 'enum std::__is_byte<char>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:376:7)'
| | | `-ImplicitCastExpr 0x265da60 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x265d9f0 <col:24> 'int' 1
| | `-TypedefDecl 0x265da88 <line:377:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x265daf8 <line:380:3, line:385:5> line:381:12 struct __is_byte definition
| | |-TemplateArgument type 'signed char'
| | |-CXXRecordDecl 0x265dd18 <col:5, col:12> col:12 implicit struct __is_byte
| | |-EnumDecl 0x265ddb0 <line:383:7, col:26> col:7
| | | `-EnumConstantDecl 0x265de90 <col:14, col:24> col:14 __value 'enum std::__is_byte<signed char>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:383:7)'
| | | `-ImplicitCastExpr 0x265dee0 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x265de70 <col:24> 'int' 1
| | `-TypedefDecl 0x265df08 <line:384:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateSpecializationDecl 0x265df78 <line:387:3, line:392:5> line:388:12 struct __is_byte definition
| | |-TemplateArgument type 'unsigned char'
| | |-CXXRecordDecl 0x265e198 <col:5, col:12> col:12 implicit struct __is_byte
| | |-EnumDecl 0x265e230 <line:390:7, col:26> col:7
| | | `-EnumConstantDecl 0x265fe00 <col:14, col:24> col:14 __value 'enum std::__is_byte<unsigned char>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:390:7)'
| | | `-ImplicitCastExpr 0x265fe50 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x265fde0 <col:24> 'int' 1
| | `-TypedefDecl 0x265fe78 <line:391:7, col:27> col:27 __type 'struct std::__true_type'
| | `-RecordType 0x26386f0 'struct std::__true_type'
| | `-CXXRecord 0x2638658 '__true_type'
| |-ClassTemplateDecl 0x265ffe8 <line:397:3, line:402:5> line:398:12 __is_move_iterator
| | |-TemplateTypeParmDecl 0x265fec8 <line:397:12, col:21> col:21 typename _Tp
| | |-CXXRecordDecl 0x265ff50 <line:398:5, line:402:5> line:398:12 struct __is_move_iterator definition
| | | |-CXXRecordDecl 0x2660258 <col:5, col:12> col:12 implicit struct __is_move_iterator
| | | |-EnumDecl 0x26602f0 <line:400:7, col:26> col:7
| | | | `-EnumConstantDecl 0x26603d0 <col:14, col:24> col:14 __value 'enum std::__is_move_iterator::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:400:7)'
| | | | `-IntegerLiteral 0x26603b0 <col:24> 'int' 0
| | | `-TypedefDecl 0x2660430 <line:401:7, col:28> col:28 __type 'struct std::__false_type'
| | | `-RecordType 0x26388a0 'struct std::__false_type'
| | | `-CXXRecord 0x2638808 '__false_type'
| | `-ClassTemplateSpecializationDecl 0x2836e28 <line:397:3, line:402:5> line:398:12 struct __is_move_iterator definition
| | |-TemplateArgument type 'struct A *'
| | |-CXXRecordDecl 0x2837030 prev 0x2836e28 <col:5, col:12> col:12 implicit struct __is_move_iterator
| | |-EnumDecl 0x28370c8 <line:400:7> col:7
| | | `-EnumConstantDecl 0x2837190 <col:14, col:24> col:14 referenced __value 'enum std::__is_move_iterator<struct A *>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:400:7)'
| | | `-ImplicitCastExpr 0x28371e0 <col:24> 'unsigned int' <IntegralCast>
| | | `-IntegerLiteral 0x26603b0 <col:24> 'int' 0
| | `-TypedefDecl 0x28371f8 <line:401:7, col:28> col:28 __type 'struct std::__false_type'
| | `-RecordType 0x26388a0 'struct std::__false_type'
| | `-CXXRecord 0x2638808 '__false_type'
| `-FunctionTemplateDecl 0x26606b8 <line:406:3, line:409:20> line:408:5 __miter_base
| |-TemplateTypeParmDecl 0x2660480 <line:406:12, col:21> col:21 referenced typename _Iterator
| |-FunctionDecl 0x2660610 <line:407:5, line:409:20> line:408:5 __miter_base '_Iterator (_Iterator)' inline
| | |-ParmVarDecl 0x2660510 <col:18, col:28> col:28 referenced __it '_Iterator'
| | `-CompoundStmt 0x2660750 <line:409:5, col:20>
| | `-ReturnStmt 0x2660738 <col:7, col:14>
| | `-DeclRefExpr 0x2660710 <col:14> '_Iterator' lvalue ParmVar 0x2660510 '__it' '_Iterator'
| `-FunctionDecl 0x28375d0 <line:407:5, line:409:20> line:408:5 used __miter_base 'struct A *(struct A *)' inline
| |-TemplateArgument type 'struct A *'
| |-ParmVarDecl 0x2837498 <col:18, col:28> col:28 used __it 'struct A *':'struct A *'
| `-CompoundStmt 0x2838160 <line:409:5, col:20>
| `-ReturnStmt 0x2838148 <col:7, col:14>
| `-ImplicitCastExpr 0x2838130 <col:14> 'struct A *':'struct A *' <LValueToRValue>
| `-DeclRefExpr 0x2838108 <col:14> 'struct A *':'struct A *' lvalue ParmVar 0x2837498 '__it' 'struct A *':'struct A *'
|-LinkageSpecDecl 0x26607a0 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/type_traits.h:37:1, line:219:1> line:37:8 C++
| `-NamespaceDecl 0x2660820 prev 0x25fd6b0 <line:39:1, line:218:1> line:39:11 __gnu_cxx
| |-original Namespace 0x25fd6b0 '__gnu_cxx'
| |-VisibilityAttr 0x2660888 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:67:49, col:67> Default
| |-ClassTemplateDecl 0x2660a50 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/type_traits.h:44:3, line:46:7> line:45:12 __enable_if
| | |-NonTypeTemplateParmDecl 0x26608d0 <line:44:12> col:16 '_Bool'
| | |-TemplateTypeParmDecl 0x2660928 <col:18> col:18 typename
| | |-CXXRecordDecl 0x26609b8 <line:45:5, line:46:7> line:45:12 struct __enable_if definition
| | | `-CXXRecordDecl 0x2660d08 <col:5, col:12> col:12 implicit struct __enable_if
| | |-ClassTemplateSpecializationDecl 0x271a048 <line:44:3, line:46:7> line:45:12 struct __enable_if definition
| | | |-TemplateArgument integral 0
| | | |-TemplateArgument type 'void'
| | | `-CXXRecordDecl 0x271a2d8 prev 0x271a048 <col:5, col:12> col:12 implicit struct __enable_if
| | |-ClassTemplateSpecializationDecl 0x271a590 <line:48:3, line:50:27> line:49:12 struct __enable_if definition
| | | |-TemplateArgument integral 1
| | | |-TemplateArgument type 'void'
| | | |-CXXRecordDecl 0x271a868 prev 0x271a590 <col:5, col:12> col:12 implicit struct __enable_if
| | | `-TypedefDecl 0x271a910 <line:50:7, col:19> col:19 referenced __type 'void':'void'
| | | `-SubstTemplateTypeParmType 0x271a7c0 'void' sugar
| | | |-TemplateTypeParmType 0x2666190 '_Tp' dependent depth 0 index 0
| | | | `-TemplateTypeParm 0x2660da0 '_Tp'
| | | `-BuiltinType 0x259fd70 'void'
| | `-ClassTemplateSpecializationDecl 0x2830318 <line:48:3, line:50:27> line:49:12 struct __enable_if definition
| | |-TemplateArgument integral 1
| | |-TemplateArgument type 'class std::vector<struct A, class std::allocator<struct A> >'
| | |-CXXRecordDecl 0x28305f8 prev 0x2830318 <col:5, col:12> col:12 implicit struct __enable_if
| | `-TypedefDecl 0x28306a0 <line:50:7, col:19> col:19 referenced __type 'class std::vector<struct A, class std::allocator<struct A> >':'class std::vector<struct A, class std::allocator<struct A> >'
| | `-SubstTemplateTypeParmType 0x2830550 'class std::vector<struct A, class std::allocator<struct A> >' sugar
| | |-TemplateTypeParmType 0x2666190 '_Tp' dependent depth 0 index 0
| | | `-TemplateTypeParm 0x2660da0 '_Tp'
| | `-RecordType 0x280b140 'class std::vector<struct A, class std::allocator<struct A> >'
| | `-ClassTemplateSpecialization 0x280b040 'vector'
| |-ClassTemplatePartialSpecializationDecl 0x2666330 <line:48:3, line:50:27> line:49:12 struct __enable_if definition
| | |-TemplateArgument integral 1
| | |-TemplateArgument type 'type-parameter-0-0'
| | |-TemplateTypeParmDecl 0x2660da0 <line:48:12, col:21> col:21 referenced typename _Tp
| | |-CXXRecordDecl 0x2666598 <line:49:5, col:12> col:12 implicit struct __enable_if
| | `-TypedefDecl 0x2666640 <line:50:7, col:19> col:19 __type '_Tp'
| | `-TemplateTypeParmType 0x2666190 '_Tp' dependent depth 0 index 0
| | `-TemplateTypeParm 0x2660da0 '_Tp'
| |-ClassTemplateDecl 0x26668c8 <line:54:3, line:56:31> line:55:12 __conditional_type
| | |-NonTypeTemplateParmDecl 0x26666a0 <line:54:12, col:17> col:17 '_Bool' _Cond
| | |-TemplateTypeParmDecl 0x26666f8 <col:24, col:33> col:33 referenced typename _Iftrue
| | |-TemplateTypeParmDecl 0x2666768 <col:42, col:51> col:51 typename _Iffalse
| | |-CXXRecordDecl 0x2666830 <line:55:5, line:56:31> line:55:12 struct __conditional_type definition
| | | |-CXXRecordDecl 0x2666bc8 <col:5, col:12> col:12 implicit struct __conditional_type
| | | `-TypedefDecl 0x2666c70 <line:56:7, col:23> col:23 __type '_Iftrue'
| | | `-TemplateTypeParmType 0x2666740 '_Iftrue' dependent depth 0 index 1
| | | `-TemplateTypeParm 0x26666f8 '_Iftrue'
| | `-ClassTemplateSpecializationDecl 0x27cd5e0 <line:54:3, line:56:31> line:55:12 struct __conditional_type definition
| | |-TemplateArgument integral 1
| | |-TemplateArgument type 'struct __gnu_cxx::__numeric_traits_integer<long>'
| | |-TemplateArgument type 'struct __gnu_cxx::__numeric_traits_floating<long>'
| | |-CXXRecordDecl 0x27cdaf0 prev 0x27cd5e0 <col:5, col:12> col:12 implicit struct __conditional_type
| | `-TypedefDecl 0x27cdbc8 <line:56:7, col:23> col:23 referenced __type 'struct __gnu_cxx::__numeric_traits_integer<long>':'struct __gnu_cxx::__numeric_traits_integer<long>'
| | `-SubstTemplateTypeParmType 0x27cdb90 'struct __gnu_cxx::__numeric_traits_integer<long>' sugar
| | |-TemplateTypeParmType 0x2666740 '_Iftrue' dependent depth 0 index 1
| | | `-TemplateTypeParm 0x26666f8 '_Iftrue'
| | `-RecordType 0x27cd3a0 'struct __gnu_cxx::__numeric_traits_integer<long>'
| | `-ClassTemplateSpecialization 0x27cd2b0 '__numeric_traits_integer'
| |-ClassTemplatePartialSpecializationDecl 0x2666f88 <line:58:3, line:60:32> line:59:12 struct __conditional_type definition
| | |-TemplateArgument integral 0
| | |-TemplateArgument type 'type-parameter-0-0'
| | |-TemplateArgument type 'type-parameter-0-1'
| | |-TemplateTypeParmDecl 0x2666cc0 <line:58:12, col:21> col:21 referenced typename _Iftrue
| | |-TemplateTypeParmDecl 0x2666d28 <col:30, col:39> col:39 referenced typename _Iffalse
| | |-CXXRecordDecl 0x2667cd0 <line:59:5, col:12> col:12 implicit struct __conditional_type
| | `-TypedefDecl 0x2667d78 <line:60:7, col:24> col:24 __type '_Iffalse'
| | `-TemplateTypeParmType 0x2666d70 '_Iffalse' dependent depth 0 index 1
| | `-TemplateTypeParm 0x2666d28 '_Iffalse'
| |-ClassTemplateDecl 0x2667ee8 <line:64:3, line:72:5> line:65:12 __add_unsigned
| | |-TemplateTypeParmDecl 0x2667dc8 <line:64:12, col:21> col:21 referenced typename _Tp
| | |-CXXRecordDecl 0x2667e50 <line:65:5, line:72:5> line:65:12 struct __add_unsigned definition
| | | |-CXXRecordDecl 0x2668158 <col:5, col:12> col:12 implicit struct __add_unsigned
| | | |-AccessSpecDecl 0x26681f0 <line:67:5, col:12> col:5 private
| | | |-TypedefDecl 0x26685b0 <line:68:7, col:65> col:65 referenced __if_type '__enable_if<std::__is_integer<_Tp>::__value, _Tp>'
| | | | `-TemplateSpecializationType 0x26684c0 '__enable_if<std::__is_integer<_Tp>::__value, _Tp>' dependent __enable_if
| | | | |-TemplateArgument expr
| | | | | `-DependentScopeDeclRefExpr 0x2668398 <col:27, col:51> '<dependent type>' lvalue
| | | | `-TemplateArgument type '_Tp'
| | | |-AccessSpecDecl 0x2668600 <line:70:5, col:11> col:5 public
| | | `-TypedefDecl 0x2668740 <line:71:7, col:42> col:42 __type 'typename __if_type::__type'
| | | `-DependentNameType 0x26686d0 'typename __if_type::__type' dependent
| | |-ClassTemplateSpecialization 0x26687b0 '__add_unsigned'
| | |-ClassTemplateSpecialization 0x2668af0 '__add_unsigned'
| | |-ClassTemplateSpecialization 0x266a380 '__add_unsigned'
| | |-ClassTemplateSpecialization 0x266a6c0 '__add_unsigned'
| | |-ClassTemplateSpecialization 0x266aa00 '__add_unsigned'
| | |-ClassTemplateSpecialization 0x266ad40 '__add_unsigned'
| | |-ClassTemplateSpecialization 0x266b080 '__add_unsigned'
| | `-ClassTemplateSpecialization 0x266b288 '__add_unsigned'
| |-ClassTemplateSpecializationDecl 0x26687b0 <line:74:3, line:76:37> line:75:12 struct __add_unsigned definition
| | |-TemplateArgument type 'char'
| | |-CXXRecordDecl 0x26689d8 <col:5, col:12> col:12 implicit struct __add_unsigned
| | `-TypedefDecl 0x2668a80 <line:76:7, col:29> col:29 __type 'unsigned char'
| | `-BuiltinType 0x259fe70 'unsigned char'
| |-ClassTemplateSpecializationDecl 0x2668af0 <line:78:3, line:80:37> line:79:12 struct __add_unsigned definition
| | |-TemplateArgument type 'signed char'
| | |-CXXRecordDecl 0x266a268 <col:5, col:12> col:12 implicit struct __add_unsigned
| | `-TypedefDecl 0x266a310 <line:80:7, col:29> col:29 __type 'unsigned char'
| | `-BuiltinType 0x259fe70 'unsigned char'
| |-ClassTemplateSpecializationDecl 0x266a380 <line:82:3, line:84:38> line:83:12 struct __add_unsigned definition
| | |-TemplateArgument type 'short'
| | |-CXXRecordDecl 0x266a5a8 <col:5, col:12> col:12 implicit struct __add_unsigned
| | `-TypedefDecl 0x266a650 <line:84:7, col:30> col:30 __type 'unsigned short'
| | `-BuiltinType 0x259fe90 'unsigned short'
| |-ClassTemplateSpecializationDecl 0x266a6c0 <line:86:3, line:88:36> line:87:12 struct __add_unsigned definition
| | |-TemplateArgument type 'int'
| | |-CXXRecordDecl 0x266a8e8 <col:5, col:12> col:12 implicit struct __add_unsigned
| | `-TypedefDecl 0x266a990 <line:88:7, col:28> col:28 __type 'unsigned int'
| | `-BuiltinType 0x259feb0 'unsigned int'
| |-ClassTemplateSpecializationDecl 0x266aa00 <line:90:3, line:92:37> line:91:12 struct __add_unsigned definition
| | |-TemplateArgument type 'long'
| | |-CXXRecordDecl 0x266ac28 <col:5, col:12> col:12 implicit struct __add_unsigned
| | `-TypedefDecl 0x266acd0 <line:92:7, col:29> col:29 __type 'unsigned long'
| | `-BuiltinType 0x259fed0 'unsigned long'
| |-ClassTemplateSpecializationDecl 0x266ad40 <line:94:3, line:96:42> line:95:12 struct __add_unsigned definition
| | |-TemplateArgument type 'long long'
| | |-CXXRecordDecl 0x266af68 <col:5, col:12> col:12 implicit struct __add_unsigned
| | `-TypedefDecl 0x266b010 <line:96:7, col:34> col:34 __type 'unsigned long long'
| | `-BuiltinType 0x259fef0 'unsigned long long'
| |-ClassTemplateSpecializationDecl 0x266b080 <line:99:3, line:100:31> col:12 struct __add_unsigned
| | `-TemplateArgument type '_Bool'
| |-ClassTemplateSpecializationDecl 0x266b288 <line:102:3, line:103:34> col:12 struct __add_unsigned
| | `-TemplateArgument type 'wchar_t'
| |-ClassTemplateDecl 0x266b568 <line:107:3, line:115:5> line:108:12 __remove_unsigned
| | |-TemplateTypeParmDecl 0x266b448 <line:107:12, col:21> col:21 referenced typename _Tp
| | |-CXXRecordDecl 0x266b4d0 <line:108:5, line:115:5> line:108:12 struct __remove_unsigned definition
| | | |-CXXRecordDecl 0x266b7d8 <col:5, col:12> col:12 implicit struct __remove_unsigned
| | | |-AccessSpecDecl 0x266b870 <line:110:5, col:12> col:5 private
| | | |-TypedefDecl 0x266bb90 <line:111:7, col:65> col:65 referenced __if_type '__enable_if<std::__is_integer<_Tp>::__value, _Tp>'
| | | | `-TemplateSpecializationType 0x266baa0 '__enable_if<std::__is_integer<_Tp>::__value, _Tp>' dependent __enable_if
| | | | |-TemplateArgument expr
| | | | | `-DependentScopeDeclRefExpr 0x266b9e8 <col:27, col:51> '<dependent type>' lvalue
| | | | `-TemplateArgument type '_Tp'
| | | |-AccessSpecDecl 0x266bbe0 <line:113:5, col:11> col:5 public
| | | `-TypedefDecl 0x266bcd0 <line:114:7, col:42> col:42 __type 'typename __if_type::__type'
| | | `-DependentNameType 0x266bc60 'typename __if_type::__type' dependent
| | |-ClassTemplateSpecialization 0x266bd40 '__remove_unsigned'
| | |-ClassTemplateSpecialization 0x266c080 '__remove_unsigned'
| | |-ClassTemplateSpecialization 0x266cc20 '__remove_unsigned'
| | |-ClassTemplateSpecialization 0x266cf60 '__remove_unsigned'
| | |-ClassTemplateSpecialization 0x266d2a0 '__remove_unsigned'
| | |-ClassTemplateSpecialization 0x266d5e0 '__remove_unsigned'
| | |-ClassTemplateSpecialization 0x266da70 '__remove_unsigned'
| | `-ClassTemplateSpecialization 0x266dc58 '__remove_unsigned'
| |-ClassTemplateSpecializationDecl 0x266bd40 <line:117:3, line:119:35> line:118:12 struct __remove_unsigned definition
| | |-TemplateArgument type 'char'
| | |-CXXRecordDecl 0x266bf68 <col:5, col:12> col:12 implicit struct __remove_unsigned
| | `-TypedefDecl 0x266c010 <line:119:7, col:27> col:27 __type 'signed char'
| | `-BuiltinType 0x259fdd0 'signed char'
| |-ClassTemplateSpecializationDecl 0x266c080 <line:121:3, line:123:35> line:122:12 struct __remove_unsigned definition
| | |-TemplateArgument type 'unsigned char'
| | |-CXXRecordDecl 0x266cb08 <col:5, col:12> col:12 implicit struct __remove_unsigned
| | `-TypedefDecl 0x266cbb0 <line:123:7, col:27> col:27 __type 'signed char'
| | `-BuiltinType 0x259fdd0 'signed char'
| |-ClassTemplateSpecializationDecl 0x266cc20 <line:125:3, line:127:29> line:126:12 struct __remove_unsigned definition
| | |-TemplateArgument type 'unsigned short'
| | |-CXXRecordDecl 0x266ce48 <col:5, col:12> col:12 implicit struct __remove_unsigned
| | `-TypedefDecl 0x266cef0 <line:127:7, col:21> col:21 __type 'short'
| | `-BuiltinType 0x259fdf0 'short'
| |-ClassTemplateSpecializationDecl 0x266cf60 <line:129:3, line:131:27> line:130:12 struct __remove_unsigned definition
| | |-TemplateArgument type 'unsigned int'
| | |-CXXRecordDecl 0x266d188 <col:5, col:12> col:12 implicit struct __remove_unsigned
| | `-TypedefDecl 0x266d230 <line:131:7, col:19> col:19 __type 'int'
| | `-BuiltinType 0x259fe10 'int'
| |-ClassTemplateSpecializationDecl 0x266d2a0 <line:133:3, line:135:28> line:134:12 struct __remove_unsigned definition
| | |-TemplateArgument type 'unsigned long'
| | |-CXXRecordDecl 0x266d4c8 <col:5, col:12> col:12 implicit struct __remove_unsigned
| | `-TypedefDecl 0x266d570 <line:135:7, col:20> col:20 __type 'long'
| | `-BuiltinType 0x259fe30 'long'
| |-ClassTemplateSpecializationDecl 0x266d5e0 <line:137:3, line:139:33> line:138:12 struct __remove_unsigned definition
| | |-TemplateArgument type 'unsigned long long'
| | |-CXXRecordDecl 0x266d808 <col:5, col:12> col:12 implicit struct __remove_unsigned
| | `-TypedefDecl 0x266d8b0 <line:139:7, col:25> col:25 __type 'long long'
| | `-BuiltinType 0x259fe50 'long long'
| |-ClassTemplateSpecializationDecl 0x266da70 <line:142:3, line:143:34> col:12 struct __remove_unsigned
| | `-TemplateArgument type '_Bool'
| |-ClassTemplateSpecializationDecl 0x266dc58 <line:145:3, line:146:37> col:12 struct __remove_unsigned
| | `-TemplateArgument type 'wchar_t'
| |-FunctionTemplateDecl 0x266e088 <line:150:3, line:153:26> line:152:5 __is_null_pointer
| | |-TemplateTypeParmDecl 0x266de18 <line:150:12, col:21> col:21 referenced typename _Type
| | `-FunctionDecl 0x266dfe0 <line:151:5, line:153:26> line:152:5 __is_null_pointer '_Bool (_Type *)' inline
| | |-ParmVarDecl 0x266ded8 <col:23, col:30> col:30 referenced __ptr '_Type *'
| | `-CompoundStmt 0x266e168 <line:153:5, col:26>
| | `-ReturnStmt 0x266e150 <col:7, col:23>
| | `-BinaryOperator 0x266e128 <col:14, col:23> '<dependent type>' '=='
| | |-DeclRefExpr 0x266e0e0 <col:14> '_Type *' lvalue ParmVar 0x266ded8 '__ptr' '_Type *'
| | `-IntegerLiteral 0x266e108 <col:23> 'int' 0
| |-FunctionTemplateDecl 0x266e3c8 <line:155:3, line:158:21> line:157:5 __is_null_pointer
| | |-TemplateTypeParmDecl 0x266e188 <line:155:12, col:21> col:21 referenced typename _Type
| | `-FunctionDecl 0x266e320 <line:156:5, line:158:21> line:157:5 __is_null_pointer '_Bool (_Type)' inline
| | |-ParmVarDecl 0x266e220 <col:23> col:28 '_Type'
| | `-CompoundStmt 0x266e450 <line:158:5, col:21>
| | `-ReturnStmt 0x266e438 <col:7, col:14>
| | `-CXXBoolLiteralExpr 0x266e420 <col:14> '_Bool' false
| |-ClassTemplateDecl 0x266e768 <line:167:3, line:169:30> line:168:12 __promote
| | |-TemplateTypeParmDecl 0x266e470 <line:167:12, col:21> col:21 referenced typename _Tp
| | |-NonTypeTemplateParmDecl 0x266e658 <col:26, col:57> col:31 '_Bool'
| | | `-TemplateArgument expr
| | | `-DependentScopeDeclRefExpr 0x266e608 <col:33, col:57> '<dependent type>' lvalue
| | |-CXXRecordDecl 0x266e6d0 <line:168:5, line:169:30> line:168:12 struct __promote definition
| | | |-CXXRecordDecl 0x2670120 <col:5, col:12> col:12 implicit struct __promote
| | | `-TypedefDecl 0x26701c8 <line:169:7, col:22> col:22 __type 'double'
| | | `-BuiltinType 0x259ff30 'double'
| | |-ClassTemplateSpecialization 0x2670bd8 '__promote'
| | |-ClassTemplateSpecialization 0x26719b8 '__promote'
| | `-ClassTemplateSpecialization 0x26721c8 '__promote'
| |-ClassTemplatePartialSpecializationDecl 0x2670400 <line:174:3, line:176:7> line:175:12 struct __promote definition
| | |-TemplateArgument type 'type-parameter-0-0'
| | |-TemplateArgument integral 0
| | |-TemplateTypeParmDecl 0x2670218 <line:174:12, col:21> col:21 referenced typename _Tp
| | `-CXXRecordDecl 0x2670668 <line:175:5, col:12> col:12 implicit struct __promote
| |-ClassTemplateSpecializationDecl 0x2670bd8 <line:178:3, line:180:35> line:179:12 struct __promote definition
| | |-TemplateArgument type 'long double'
| | |-TemplateArgument integral 0
| | |-CXXRecordDecl 0x2670e18 <col:5, col:12> col:12 implicit struct __promote
| | `-TypedefDecl 0x2670ec0 <line:180:7, col:27> col:27 __type 'long double'
| | `-BuiltinType 0x259ff50 'long double'
| |-ClassTemplateSpecializationDecl 0x26719b8 <line:182:3, line:184:30> line:183:12 struct __promote definition
| | |-TemplateArgument type 'double'
| | |-TemplateArgument integral 0
| | |-CXXRecordDecl 0x2671bf8 <col:5, col:12> col:12 implicit struct __promote
| | `-TypedefDecl 0x2671ca0 <line:184:7, col:22> col:22 __type 'double'
| | `-BuiltinType 0x259ff30 'double'
| |-ClassTemplateSpecializationDecl 0x26721c8 <line:186:3, line:188:29> line:187:12 struct __promote definition
| | |-TemplateArgument type 'float'
| | |-TemplateArgument integral 0
| | |-CXXRecordDecl 0x2672408 <col:5, col:12> col:12 implicit struct __promote
| | `-TypedefDecl 0x26724b0 <line:188:7, col:21> col:21 __type 'float'
| | `-BuiltinType 0x259ff10 'float'
| |-ClassTemplateDecl 0x2673920 <line:190:3, line:196:5> line:193:12 __promote_2
| | |-TemplateTypeParmDecl 0x2672500 <line:190:12, col:21> col:21 referenced typename _Tp
| | |-TemplateTypeParmDecl 0x2672568 <col:26, col:35> col:35 referenced typename _Up
| | |-TemplateTypeParmDecl 0x2673350 <line:191:12, col:53> col:21 referenced typename _Tp2
| | | `-TemplateArgument type 'typename __promote<_Tp>::__type'
| | |-TemplateTypeParmDecl 0x26737c0 <line:192:12, col:53> col:21 referenced typename _Up2
| | | `-TemplateArgument type 'typename __promote<_Up>::__type'
| | `-CXXRecordDecl 0x2673888 <line:193:5, line:196:5> line:193:12 struct __promote_2 definition
| | |-CXXRecordDecl 0x2673c18 <col:5, col:12> col:12 implicit struct __promote_2
| | `-TypedefDecl 0x2673db8 <line:195:7, col:43> col:43 __type 'typeof (_Tp2() + _Up2())'
| | `-TypeOfExprType 0x2673d70 'typeof (_Tp2() + _Up2())' dependent
| | `-ParenExpr 0x2673d48 <col:25, col:41> '<dependent type>'
| | `-BinaryOperator 0x2673d20 <col:26, col:40> '<dependent type>' '+'
| | |-CXXUnresolvedConstructExpr 0x2673cc0 <col:26, col:31> '_Tp2'
| | `-CXXUnresolvedConstructExpr 0x2673cf8 <col:35, col:40> '_Up2'
| |-ClassTemplateDecl 0x26750c0 <line:198:3, line:205:5> line:202:12 __promote_3
| | |-TemplateTypeParmDecl 0x2673e08 <line:198:12, col:21> col:21 referenced typename _Tp
| | |-TemplateTypeParmDecl 0x2673e78 <col:26, col:35> col:35 referenced typename _Up
| | |-TemplateTypeParmDecl 0x2673ee8 <col:40, col:49> col:49 referenced typename _Vp
| | |-TemplateTypeParmDecl 0x2674770 <line:199:12, col:53> col:21 referenced typename _Tp2
| | | `-TemplateArgument type 'typename __promote<_Tp>::__type'
| | |-TemplateTypeParmDecl 0x2674ab0 <line:200:12, col:53> col:21 referenced typename _Up2
| | | `-TemplateArgument type 'typename __promote<_Up>::__type'
| | |-TemplateTypeParmDecl 0x2674f50 <line:201:12, col:53> col:21 referenced typename _Vp2
| | | `-TemplateArgument type 'typename __promote<_Vp>::__type'
| | `-CXXRecordDecl 0x2675028 <line:202:5, line:205:5> line:202:12 struct __promote_3 definition
| | |-CXXRecordDecl 0x2675418 <col:5, col:12> col:12 implicit struct __promote_3
| | `-TypedefDecl 0x2675b98 <line:204:7, col:52> col:52 __type 'typeof (_Tp2() + _Up2() + _Vp2())'
| | `-TypeOfExprType 0x2675b50 'typeof (_Tp2() + _Up2() + _Vp2())' dependent
| | `-ParenExpr 0x2675b30 <col:25, col:50> '<dependent type>'
| | `-BinaryOperator 0x2675580 <col:26, col:49> '<dependent type>' '+'
| | |-BinaryOperator 0x2675520 <col:26, col:40> '<dependent type>' '+'
| | | |-CXXUnresolvedConstructExpr 0x26754c0 <col:26, col:31> '_Tp2'
| | | `-CXXUnresolvedConstructExpr 0x26754f8 <col:35, col:40> '_Up2'
| | `-CXXUnresolvedConstructExpr 0x2675558 <col:44, col:49> '_Vp2'
| `-ClassTemplateDecl 0x2676dc0 <line:207:3, line:215:5> line:212:12 __promote_4
| |-TemplateTypeParmDecl 0x2675be8 <line:207:12, col:21> col:21 referenced typename _Tp
| |-TemplateTypeParmDecl 0x2675c58 <col:26, col:35> col:35 referenced typename _Up
| |-TemplateTypeParmDecl 0x2675cc8 <col:40, col:49> col:49 referenced typename _Vp
| |-TemplateTypeParmDecl 0x2675d38 <col:54, col:63> col:63 referenced typename _Wp
| |-TemplateTypeParmDecl 0x2676080 <line:208:12, col:53> col:21 referenced typename _Tp2
| | `-TemplateArgument type 'typename __promote<_Tp>::__type'
| |-TemplateTypeParmDecl 0x26763c0 <line:209:12, col:53> col:21 referenced typename _Up2
| | `-TemplateArgument type 'typename __promote<_Up>::__type'
| |-TemplateTypeParmDecl 0x2676700 <line:210:12, col:53> col:21 referenced typename _Vp2
| | `-TemplateArgument type 'typename __promote<_Vp>::__type'
| |-TemplateTypeParmDecl 0x2676c40 <line:211:12, col:53> col:21 referenced typename _Wp2
| | `-TemplateArgument type 'typename __promote<_Wp>::__type'
| `-CXXRecordDecl 0x2676d28 <line:212:5, line:215:5> line:212:12 struct __promote_4 definition
| |-CXXRecordDecl 0x2677178 <col:5, col:12> col:12 implicit struct __promote_4
| `-TypedefDecl 0x26773d8 <line:214:7, col:61> col:61 __type 'typeof (_Tp2() + _Up2() + _Vp2() + _Wp2())'
| `-TypeOfExprType 0x2677390 'typeof (_Tp2() + _Up2() + _Vp2() + _Wp2())' dependent
| `-ParenExpr 0x2677368 <col:25, col:59> '<dependent type>'
| `-BinaryOperator 0x2677340 <col:26, col:58> '<dependent type>' '+'
| |-BinaryOperator 0x26772e0 <col:26, col:49> '<dependent type>' '+'
| | |-BinaryOperator 0x2677280 <col:26, col:40> '<dependent type>' '+'
| | | |-CXXUnresolvedConstructExpr 0x2677220 <col:26, col:31> '_Tp2'
| | | `-CXXUnresolvedConstructExpr 0x2677258 <col:35, col:40> '_Up2'
| | `-CXXUnresolvedConstructExpr 0x26772b8 <col:44, col:49> '_Vp2'
| `-CXXUnresolvedConstructExpr 0x2677318 <col:53, col:58> '_Wp2'
|-NamespaceDecl 0x2677458 prev 0x2660820 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:37:1, line:131:1> line:37:11 __gnu_cxx
| |-original Namespace 0x25fd6b0 '__gnu_cxx'
| |-VisibilityAttr 0x26774c0 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:67:49, col:67> Default
| |-ClassTemplateDecl 0x2677618 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:54:3, line:65:5> line:55:12 __numeric_traits_integer
| | |-TemplateTypeParmDecl 0x26774f8 <line:54:12, col:21> col:21 referenced typename _Value
| | |-CXXRecordDecl 0x2677580 <line:55:5, line:65:5> line:55:12 struct __numeric_traits_integer definition
| | | |-CXXRecordDecl 0x2677888 <col:5, col:12> col:12 implicit struct __numeric_traits_integer
| | | |-VarDecl 0x2677930 <line:58:7, line:48:68> line:58:27 __min 'const _Value' static cinit
| | | | `-ParenExpr 0x267b118 <line:48:3, col:68> '<dependent type>'
| | | | `-ConditionalOperator 0x267b0e8 <line:43:31, line:48:67> '<dependent type>'
| | | | |-ParenExpr 0x2677aa0 <line:43:31, col:45> '<dependent type>'
| | | | | `-BinaryOperator 0x2677a78 <col:32, col:44> '<dependent type>' '<'
| | | | | |-CStyleCastExpr 0x2677a30 <col:32, col:40> '_Value' <Dependent>
| | | | | | `-ParenExpr 0x2677a10 <col:37, col:40> 'int'
| | | | | | `-UnaryOperator 0x26779b0 <col:38, col:39> 'int' prefix '-'
| | | | | | `-IntegerLiteral 0x2677990 <col:39> 'int' 1
| | | | | `-IntegerLiteral 0x2677a58 <col:44> 'int' 0
| | | | |-BinaryOperator 0x267b068 <line:48:28, line:45:54> '<dependent type>' '<<'
| | | | | |-CStyleCastExpr 0x2677af0 <line:48:28, col:33> '_Value' <Dependent>
| | | | | | `-IntegerLiteral 0x2677ac0 <col:33> 'int' 1
| | | | | `-ParenExpr 0x267b048 <line:45:3, col:54> '<dependent type>'
| | | | | `-BinaryOperator 0x267b020 <col:4, line:43:45> '<dependent type>' '-'
| | | | | |-BinaryOperator 0x2677b80 <line:45:4, <built-in>:35:22> 'unsigned long' '*'
| | | | | | |-UnaryExprOrTypeTraitExpr 0x2677b28 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:45:4, col:14> 'unsigned long' sizeof '_Value'
| | | | | | `-ImplicitCastExpr 0x2677b68 <<built-in>:35:22> 'unsigned long' <IntegralCast>
| | | | | | `-IntegerLiteral 0x2677b48 <col:22> 'int' 8
| | | | | `-ParenExpr 0x267b000 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:43:31, col:45> '<dependent type>'
| | | | | `-BinaryOperator 0x267afd8 <col:32, col:44> '<dependent type>' '<'
| | | | | |-CStyleCastExpr 0x267af90 <col:32, col:40> '_Value' <Dependent>
| | | | | | `-ParenExpr 0x267af70 <col:37, col:40> 'int'
| | | | | | `-UnaryOperator 0x267af10 <col:38, col:39> 'int' prefix '-'
| | | | | | `-IntegerLiteral 0x2677ba8 <col:39> 'int' 1
| | | | | `-IntegerLiteral 0x267afb8 <col:44> 'int' 0
| | | | `-CStyleCastExpr 0x267b0c0 <line:48:62, col:67> '_Value' <Dependent>
| | | | `-IntegerLiteral 0x267b090 <col:67> 'int' 0
| | | |-VarDecl 0x267b148 <line:59:7, line:52:72> line:59:27 __max 'const _Value' static cinit
| | | | `-ParenExpr 0x267b7c8 <line:51:3, line:52:72> '<dependent type>'
| | | | `-ConditionalOperator 0x267b798 <line:43:31, line:52:71> '<dependent type>'
| | | | |-ParenExpr 0x267b2b8 <line:43:31, col:45> '<dependent type>'
| | | | | `-BinaryOperator 0x267b290 <col:32, col:44> '<dependent type>' '<'
| | | | | |-CStyleCastExpr 0x267b248 <col:32, col:40> '_Value' <Dependent>
| | | | | | `-ParenExpr 0x267b228 <col:37, col:40> 'int'
| | | | | | `-UnaryOperator 0x267b1c8 <col:38, col:39> 'int' prefix '-'
| | | | | | `-IntegerLiteral 0x267b1a8 <col:39> 'int' 1
| | | | | `-IntegerLiteral 0x267b270 <col:44> 'int' 0
| | | | |-ParenExpr 0x267b700 <line:52:4, col:61> '<dependent type>'
| | | | | `-BinaryOperator 0x267b6d8 <col:5, col:60> '<dependent type>' '+'
| | | | | |-ParenExpr 0x267b698 <col:5, col:56> '<dependent type>'
| | | | | | `-BinaryOperator 0x267b670 <col:6, col:55> '<dependent type>' '<<'
| | | | | | |-ParenExpr 0x267b630 <col:6, col:50> '<dependent type>'
| | | | | | | `-BinaryOperator 0x267b608 <col:7, col:49> '<dependent type>' '-'
| | | | | | | |-ParenExpr 0x267b5c8 <col:7, col:45> '<dependent type>'
| | | | | | | | `-BinaryOperator 0x267b5a0 <col:8, col:44> '<dependent type>' '<<'
| | | | | | | | |-CStyleCastExpr 0x267b308 <col:8, col:13> '_Value' <Dependent>
| | | | | | | | | `-IntegerLiteral 0x267b2d8 <col:13> 'int' 1
| | | | | | | | `-ParenExpr 0x267b580 <col:18, col:44> '<dependent type>'
| | | | | | | | `-BinaryOperator 0x267b558 <line:45:3, line:52:43> '<dependent type>' '-'
| | | | | | | | |-ParenExpr 0x267b518 <line:45:3, col:54> '<dependent type>'
| | | | | | | | | `-BinaryOperator 0x267b4f0 <col:4, line:43:45> '<dependent type>' '-'
| | | | | | | | | |-BinaryOperator 0x267b398 <line:45:4, <built-in>:35:22> 'unsigned long' '*'
| | | | | | | | | | |-UnaryExprOrTypeTraitExpr 0x267b340 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:45:4, col:14> 'unsigned long' sizeof '_Value'
| | | | | | | | | | `-ImplicitCastExpr 0x267b380 <<built-in>:35:22> 'unsigned long' <IntegralCast>
| | | | | | | | | | `-IntegerLiteral 0x267b360 <col:22> 'int' 8
| | | | | | | | | `-ParenExpr 0x267b4d0 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:43:31, col:45> '<dependent type>'
| | | | | | | | | `-BinaryOperator 0x267b4a8 <col:32, col:44> '<dependent type>' '<'
| | | | | | | | | |-CStyleCastExpr 0x267b460 <col:32, col:40> '_Value' <Dependent>
| | | | | | | | | | `-ParenExpr 0x267b440 <col:37, col:40> 'int'
| | | | | | | | | | `-UnaryOperator 0x267b3e0 <col:38, col:39> 'int' prefix '-'
| | | | | | | | | | `-IntegerLiteral 0x267b3c0 <col:39> 'int' 1
| | | | | | | | | `-IntegerLiteral 0x267b488 <col:44> 'int' 0
| | | | | | | | `-IntegerLiteral 0x267b538 <line:52:43> 'int' 1
| | | | | | | `-IntegerLiteral 0x267b5e8 <col:49> 'int' 1
| | | | | | `-IntegerLiteral 0x267b650 <col:55> 'int' 1
| | | | | `-IntegerLiteral 0x267b6b8 <col:60> 'int' 1
| | | | `-UnaryOperator 0x267b778 <col:65, col:71> '<dependent type>' prefix '~'
| | | | `-CStyleCastExpr 0x267b750 <col:66, col:71> '_Value' <Dependent>
| | | | `-IntegerLiteral 0x267b720 <col:71> 'int' 0
| | | |-VarDecl 0x267b7f8 <line:63:7, line:43:45> line:63:25 __is_signed 'const _Bool' static cinit
| | | | `-ParenExpr 0x267b968 <line:43:31, col:45> '<dependent type>'
| | | | `-BinaryOperator 0x267b940 <col:32, col:44> '<dependent type>' '<'
| | | | |-CStyleCastExpr 0x267b8f8 <col:32, col:40> '_Value' <Dependent>
| | | | | `-ParenExpr 0x267b8d8 <col:37, col:40> 'int'
| | | | | `-UnaryOperator 0x267b878 <col:38, col:39> 'int' prefix '-'
| | | | | `-IntegerLiteral 0x267b858 <col:39> 'int' 1
| | | | `-IntegerLiteral 0x267b920 <col:44> 'int' 0
| | | `-VarDecl 0x267b998 <line:64:7, line:45:54> line:64:24 __digits 'const int' static cinit
| | | `-ParenExpr 0x267bbe0 <line:45:3, col:54> '<dependent type>'
| | | `-BinaryOperator 0x267bbb8 <col:4, line:43:45> '<dependent type>' '-'
| | | |-BinaryOperator 0x267ba60 <line:45:4, <built-in>:35:22> 'unsigned long' '*'
| | | | |-UnaryExprOrTypeTraitExpr 0x267ba08 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:45:4, col:14> 'unsigned long' sizeof '_Value'
| | | | `-ImplicitCastExpr 0x267ba48 <<built-in>:35:22> 'unsigned long' <IntegralCast>
| | | | `-IntegerLiteral 0x267ba28 <col:22> 'int' 8
| | | `-ParenExpr 0x267bb98 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:43:31, col:45> '<dependent type>'
| | | `-BinaryOperator 0x267bb70 <col:32, col:44> '<dependent type>' '<'
| | | |-CStyleCastExpr 0x267bb28 <col:32, col:40> '_Value' <Dependent>
| | | | `-ParenExpr 0x267bb08 <col:37, col:40> 'int'
| | | | `-UnaryOperator 0x267baa8 <col:38, col:39> 'int' prefix '-'
| | | | `-IntegerLiteral 0x267ba88 <col:39> 'int' 1
| | | `-IntegerLiteral 0x267bb50 <col:44> 'int' 0
| | `-ClassTemplateSpecializationDecl 0x27cd2b0 <line:54:3, line:65:5> line:55:12 struct __numeric_traits_integer definition
| | |-TemplateArgument type 'long'
| | |-CXXRecordDecl 0x27cdcf0 prev 0x27cd2b0 <col:5, col:12> col:12 implicit struct __numeric_traits_integer
| | |-VarDecl 0x27cddc8 <line:58:7, line:48:68> line:58:27 __min 'const long':'const long' static cinit
| | | `-ParenExpr 0x27ce160 <line:48:3, col:68> 'long':'long'
| | | `-ConditionalOperator 0x27ce130 <line:43:31, line:48:67> 'long':'long'
| | | |-ParenExpr 0x27cdec8 <line:43:31, col:45> '_Bool'
| | | | `-BinaryOperator 0x27cdea0 <col:32, col:44> '_Bool' '<'
| | | | |-CStyleCastExpr 0x27cde60 <col:32, col:40> 'long':'long' <NoOp>
| | | | | `-ImplicitCastExpr 0x27cde48 <col:37, col:40> 'long':'long' <IntegralCast>
| | | | | `-ParenExpr 0x2677a10 <col:37, col:40> 'int'
| | | | | `-UnaryOperator 0x26779b0 <col:38, col:39> 'int' prefix '-'
| | | | | `-IntegerLiteral 0x2677990 <col:39> 'int' 1
| | | | `-ImplicitCastExpr 0x27cde88 <col:44> 'long' <IntegralCast>
| | | | `-IntegerLiteral 0x2677a58 <col:44> 'int' 0
| | | |-BinaryOperator 0x27ce0b8 <line:48:28, line:45:54> 'long':'long' '<<'
| | | | |-CStyleCastExpr 0x27cdf10 <line:48:28, col:33> 'long':'long' <NoOp>
| | | | | `-ImplicitCastExpr 0x27cdef8 <col:33> 'long':'long' <IntegralCast>
| | | | | `-IntegerLiteral 0x2677ac0 <col:33> 'int' 1
| | | | `-ParenExpr 0x27ce098 <line:45:3, col:54> 'unsigned long'
| | | | `-BinaryOperator 0x27ce070 <col:4, line:43:45> 'unsigned long' '-'
| | | | |-BinaryOperator 0x27cdf80 <line:45:4, <built-in>:35:22> 'unsigned long' '*'
| | | | | |-UnaryExprOrTypeTraitExpr 0x27cdf48 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:45:4, col:14> 'unsigned long' sizeof 'long':'long'
| | | | | `-ImplicitCastExpr 0x27cdf68 <<built-in>:35:22> 'unsigned long' <IntegralCast>
| | | | | `-IntegerLiteral 0x2677b48 <col:22> 'int' 8
| | | | `-ImplicitCastExpr 0x27ce058 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:43:31, col:45> 'unsigned long' <IntegralCast>
| | | | `-ParenExpr 0x27ce038 <col:31, col:45> '_Bool'
| | | | `-BinaryOperator 0x27ce010 <col:32, col:44> '_Bool' '<'
| | | | |-CStyleCastExpr 0x27cdfd0 <col:32, col:40> 'long':'long' <NoOp>
| | | | | `-ImplicitCastExpr 0x27cdfb8 <col:37, col:40> 'long':'long' <IntegralCast>
| | | | | `-ParenExpr 0x267af70 <col:37, col:40> 'int'
| | | | | `-UnaryOperator 0x267af10 <col:38, col:39> 'int' prefix '-'
| | | | | `-IntegerLiteral 0x2677ba8 <col:39> 'int' 1
| | | | `-ImplicitCastExpr 0x27cdff8 <col:44> 'long' <IntegralCast>
| | | | `-IntegerLiteral 0x267afb8 <col:44> 'int' 0
| | | `-CStyleCastExpr 0x27ce108 <line:48:62, col:67> 'long':'long' <NoOp>
| | | `-ImplicitCastExpr 0x27ce0f0 <col:67> 'long':'long' <IntegralCast>
| | | `-IntegerLiteral 0x267b090 <col:67> 'int' 0
| | |-VarDecl 0x27ce1d8 <line:59:7, line:52:72> line:59:27 referenced __max 'const long':'const long' static cinit
| | | `-ParenExpr 0x27ce718 <line:51:3, line:52:72> 'long'
| | | `-ConditionalOperator 0x27ce6e8 <line:43:31, line:52:71> 'long'
| | | |-ParenExpr 0x27ce2d8 <line:43:31, col:45> '_Bool'
| | | | `-BinaryOperator 0x27ce2b0 <col:32, col:44> '_Bool' '<'
| | | | |-CStyleCastExpr 0x27ce270 <col:32, col:40> 'long':'long' <NoOp>
| | | | | `-ImplicitCastExpr 0x27ce258 <col:37, col:40> 'long':'long' <IntegralCast>
| | | | | `-ParenExpr 0x267b228 <col:37, col:40> 'int'
| | | | | `-UnaryOperator 0x267b1c8 <col:38, col:39> 'int' prefix '-'
| | | | | `-IntegerLiteral 0x267b1a8 <col:39> 'int' 1
| | | | `-ImplicitCastExpr 0x27ce298 <col:44> 'long' <IntegralCast>
| | | | `-IntegerLiteral 0x267b270 <col:44> 'int' 0
| | | |-ParenExpr 0x27ce658 <line:52:4, col:61> 'long'
| | | | `-BinaryOperator 0x27ce630 <col:5, col:60> 'long' '+'
| | | | |-ParenExpr 0x27ce5f8 <col:5, col:56> 'long'
| | | | | `-BinaryOperator 0x27ce5d0 <col:6, col:55> 'long' '<<'
| | | | | |-ParenExpr 0x27ce5b0 <col:6, col:50> 'long'
| | | | | | `-BinaryOperator 0x27ce588 <col:7, col:49> 'long' '-'
| | | | | | |-ParenExpr 0x27ce550 <col:7, col:45> 'long':'long'
| | | | | | | `-BinaryOperator 0x27ce528 <col:8, col:44> 'long':'long' '<<'
| | | | | | | |-CStyleCastExpr 0x27ce320 <col:8, col:13> 'long':'long' <NoOp>
| | | | | | | | `-ImplicitCastExpr 0x27ce308 <col:13> 'long':'long' <IntegralCast>
| | | | | | | | `-IntegerLiteral 0x267b2d8 <col:13> 'int' 1
| | | | | | | `-ParenExpr 0x27ce508 <col:18, col:44> 'unsigned long'
| | | | | | | `-BinaryOperator 0x27ce4e0 <line:45:3, line:52:43> 'unsigned long' '-'
| | | | | | | |-ParenExpr 0x27ce4a8 <line:45:3, col:54> 'unsigned long'
| | | | | | | | `-BinaryOperator 0x27ce480 <col:4, line:43:45> 'unsigned long' '-'
| | | | | | | | |-BinaryOperator 0x27ce390 <line:45:4, <built-in>:35:22> 'unsigned long' '*'
| | | | | | | | | |-UnaryExprOrTypeTraitExpr 0x27ce358 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:45:4, col:14> 'unsigned long' sizeof 'long':'long'
| | | | | | | | | `-ImplicitCastExpr 0x27ce378 <<built-in>:35:22> 'unsigned long' <IntegralCast>
| | | | | | | | | `-IntegerLiteral 0x267b360 <col:22> 'int' 8
| | | | | | | | `-ImplicitCastExpr 0x27ce468 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:43:31, col:45> 'unsigned long' <IntegralCast>
| | | | | | | | `-ParenExpr 0x27ce448 <col:31, col:45> '_Bool'
| | | | | | | | `-BinaryOperator 0x27ce420 <col:32, col:44> '_Bool' '<'
| | | | | | | | |-CStyleCastExpr 0x27ce3e0 <col:32, col:40> 'long':'long' <NoOp>
| | | | | | | | | `-ImplicitCastExpr 0x27ce3c8 <col:37, col:40> 'long':'long' <IntegralCast>
| | | | | | | | | `-ParenExpr 0x267b440 <col:37, col:40> 'int'
| | | | | | | | | `-UnaryOperator 0x267b3e0 <col:38, col:39> 'int' prefix '-'
| | | | | | | | | `-IntegerLiteral 0x267b3c0 <col:39> 'int' 1
| | | | | | | | `-ImplicitCastExpr 0x27ce408 <col:44> 'long' <IntegralCast>
| | | | | | | | `-IntegerLiteral 0x267b488 <col:44> 'int' 0
| | | | | | | `-ImplicitCastExpr 0x27ce4c8 <line:52:43> 'unsigned long' <IntegralCast>
| | | | | | | `-IntegerLiteral 0x267b538 <col:43> 'int' 1
| | | | | | `-ImplicitCastExpr 0x27ce570 <col:49> 'long' <IntegralCast>
| | | | | | `-IntegerLiteral 0x267b5e8 <col:49> 'int' 1
| | | | | `-IntegerLiteral 0x267b650 <col:55> 'int' 1
| | | | `-ImplicitCastExpr 0x27ce618 <col:60> 'long' <IntegralCast>
| | | | `-IntegerLiteral 0x267b6b8 <col:60> 'int' 1
| | | `-UnaryOperator 0x27ce6c8 <col:65, col:71> 'long':'long' prefix '~'
| | | `-CStyleCastExpr 0x27ce6a0 <col:66, col:71> 'long':'long' <NoOp>
| | | `-ImplicitCastExpr 0x27ce688 <col:71> 'long':'long' <IntegralCast>
| | | `-IntegerLiteral 0x267b720 <col:71> 'int' 0
| | |-VarDecl 0x27ce780 <line:63:7, line:43:45> line:63:25 __is_signed 'const _Bool' static cinit
| | | `-ParenExpr 0x27ce880 <line:43:31, col:45> '_Bool'
| | | `-BinaryOperator 0x27ce858 <col:32, col:44> '_Bool' '<'
| | | |-CStyleCastExpr 0x27ce818 <col:32, col:40> 'long':'long' <NoOp>
| | | | `-ImplicitCastExpr 0x27ce800 <col:37, col:40> 'long':'long' <IntegralCast>
| | | | `-ParenExpr 0x267b8d8 <col:37, col:40> 'int'
| | | | `-UnaryOperator 0x267b878 <col:38, col:39> 'int' prefix '-'
| | | | `-IntegerLiteral 0x267b858 <col:39> 'int' 1
| | | `-ImplicitCastExpr 0x27ce840 <col:44> 'long' <IntegralCast>
| | | `-IntegerLiteral 0x267b920 <col:44> 'int' 0
| | `-VarDecl 0x27ce8e8 <line:64:7, line:45:54> line:64:24 __digits 'const int' static cinit
| | `-ImplicitCastExpr 0x27cead8 <line:45:3, col:54> 'const int' <IntegralCast>
| | `-ParenExpr 0x27ceab8 <col:3, col:54> 'unsigned long'
| | `-BinaryOperator 0x27cea90 <col:4, line:43:45> 'unsigned long' '-'
| | |-BinaryOperator 0x27ce9a0 <line:45:4, <built-in>:35:22> 'unsigned long' '*'
| | | |-UnaryExprOrTypeTraitExpr 0x27ce968 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:45:4, col:14> 'unsigned long' sizeof 'long':'long'
| | | `-ImplicitCastExpr 0x27ce988 <<built-in>:35:22> 'unsigned long' <IntegralCast>
| | | `-IntegerLiteral 0x267ba28 <col:22> 'int' 8
| | `-ImplicitCastExpr 0x27cea78 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:43:31, col:45> 'unsigned long' <IntegralCast>
| | `-ParenExpr 0x27cea58 <col:31, col:45> '_Bool'
| | `-BinaryOperator 0x27cea30 <col:32, col:44> '_Bool' '<'
| | |-CStyleCastExpr 0x27ce9f0 <col:32, col:40> 'long':'long' <NoOp>
| | | `-ImplicitCastExpr 0x27ce9d8 <col:37, col:40> 'long':'long' <IntegralCast>
| | | `-ParenExpr 0x267bb08 <col:37, col:40> 'int'
| | | `-UnaryOperator 0x267baa8 <col:38, col:39> 'int' prefix '-'
| | | `-IntegerLiteral 0x267ba88 <col:39> 'int' 1
| | `-ImplicitCastExpr 0x27cea18 <col:44> 'long' <IntegralCast>
| | `-IntegerLiteral 0x267bb50 <col:44> 'int' 0
| |-VarDecl 0x267beb0 parent 0x2677580 prev 0x2677930 <line:67:3, line:68:52> col:52 __min 'const _Value'
| |-VarDecl 0x267c620 parent 0x2677580 prev 0x267b148 <line:70:3, line:71:52> col:52 __max 'const _Value'
| |-VarDecl 0x267c950 parent 0x2677580 prev 0x267b7f8 <line:73:3, line:74:50> col:50 __is_signed 'const _Bool'
| |-VarDecl 0x267cc80 parent 0x2677580 prev 0x267b998 <line:76:3, line:77:49> col:49 __digits 'const int'
| |-ClassTemplateDecl 0x267ce38 <line:99:3, line:109:5> line:100:12 __numeric_traits_floating
| | |-TemplateTypeParmDecl 0x267cd20 <line:99:12, col:21> col:21 referenced typename _Value
| | |-CXXRecordDecl 0x267cda0 <line:100:5, line:109:5> line:100:12 struct __numeric_traits_floating definition
| | | |-CXXRecordDecl 0x267d0a8 <col:5, col:12> col:12 implicit struct __numeric_traits_floating
| | | |-VarDecl 0x267d150 <line:103:7, line:90:38> line:103:24 __max_digits10 'const int' static cinit
| | | | `-ImplicitCastExpr 0x267f4c8 <line:89:3, line:90:38> 'const int' <IntegralCast>
| | | | `-ParenExpr 0x267f4a8 <line:89:3, line:90:38> 'long'
| | | | `-BinaryOperator 0x267f480 <line:89:4, line:90:34> 'long' '+'
| | | | |-ImplicitCastExpr 0x267f468 <line:89:4> 'long' <IntegralCast>
| | | | | `-IntegerLiteral 0x267d1b0 <col:4> 'int' 2
| | | | `-BinaryOperator 0x267f440 <line:85:3, line:90:34> 'long' '/'
| | | | |-BinaryOperator 0x267f3e0 <line:85:3, line:90:27> 'long' '*'
| | | | | |-ImplicitCastExpr 0x267f3c8 <line:85:3, line:86:60> 'long' <IntegralCast>
| | | | | | `-ParenExpr 0x267f388 <line:85:3, line:86:60> 'int'
| | | | | | `-ConditionalOperator 0x267f358 <line:85:4, <built-in>:136:27> 'int'
| | | | | | |-DependentScopeDeclRefExpr 0x267f068 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:85:4, col:33> '<dependent type>' lvalue
| | | | | | |-IntegerLiteral 0x267f0a8 <<built-in>:108:26> 'int' 24
| | | | | | `-ConditionalOperator 0x267f328 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:86:6, <built-in>:136:27> 'int'
| | | | | | |-DependentScopeDeclRefExpr 0x267f2a8 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:86:6, col:36> '<dependent type>' lvalue
| | | | | | |-IntegerLiteral 0x267f2e8 <<built-in>:122:26> 'int' 53
| | | | | | `-IntegerLiteral 0x267f308 <line:136:27> 'int' 64
| | | | | `-IntegerLiteral 0x267f3a8 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:90:27> 'long' 643
| | | | `-ImplicitCastExpr 0x267f428 <col:34> 'long' <IntegralCast>
| | | | `-IntegerLiteral 0x267f408 <col:34> 'int' 2136
| | | |-VarDecl 0x267f4f0 <line:106:7, col:39> col:25 __is_signed 'const _Bool' static cinit
| | | | `-CXXBoolLiteralExpr 0x267f550 <col:39> '_Bool' true
| | | |-VarDecl 0x267f578 <line:107:7, line:86:60> line:107:24 __digits10 'const int' static cinit
| | | | `-ParenExpr 0x267fa38 <line:85:3, line:86:60> 'int'
| | | | `-ConditionalOperator 0x267fa08 <line:85:4, <built-in>:131:22> 'int'
| | | | |-DependentScopeDeclRefExpr 0x267f778 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:85:4, col:33> '<dependent type>' lvalue
| | | | |-IntegerLiteral 0x267f7b8 <<built-in>:103:21> 'int' 6
| | | | `-ConditionalOperator 0x267f9d8 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:86:6, <built-in>:131:22> 'int'
| | | | |-DependentScopeDeclRefExpr 0x267f958 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:86:6, col:36> '<dependent type>' lvalue
| | | | |-IntegerLiteral 0x267f998 <<built-in>:117:21> 'int' 15
| | | | `-IntegerLiteral 0x267f9b8 <line:131:22> 'int' 18
| | | `-VarDecl 0x267fa68 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:108:7, line:86:60> line:108:24 __max_exponent10 'const int' static cinit
| | | `-ParenExpr 0x267ff28 <line:85:3, line:86:60> 'int'
| | | `-ConditionalOperator 0x267fef8 <line:85:4, <built-in>:137:29> 'int'
| | | |-DependentScopeDeclRefExpr 0x267fc68 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:85:4, col:33> '<dependent type>' lvalue
| | | |-IntegerLiteral 0x267fca8 <<built-in>:109:28> 'int' 38
| | | `-ConditionalOperator 0x267fec8 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:86:6, <built-in>:137:29> 'int'
| | | |-DependentScopeDeclRefExpr 0x267fe48 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:86:6, col:36> '<dependent type>' lvalue
| | | |-IntegerLiteral 0x267fe88 <<built-in>:123:28> 'int' 308
| | | `-IntegerLiteral 0x267fea8 <line:137:29> 'int' 4932
| | `-ClassTemplateSpecializationDecl 0x27cd448 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/ext/numeric_traits.h:99:3, line:109:5> line:100:12 struct __numeric_traits_floating
| | `-TemplateArgument type 'long'
| |-VarDecl 0x2617f30 parent 0x267cda0 prev 0x267d150 <line:111:3, line:112:50> col:50 __max_digits10 'const int'
| |-VarDecl 0x2618260 parent 0x267cda0 prev 0x267f4f0 <line:114:3, line:115:51> col:51 __is_signed 'const _Bool'
| |-VarDecl 0x2618590 parent 0x267cda0 prev 0x267f578 <line:117:3, line:118:50> col:50 __digits10 'const int'
| |-VarDecl 0x26188c0 parent 0x267cda0 prev 0x267fa68 <line:120:3, line:121:50> col:50 __max_exponent10 'const int'
| |-ClassTemplateDecl 0x2618a78 <line:123:3, line:128:7> line:124:12 __numeric_traits
| | |-TemplateTypeParmDecl 0x2618960 <line:123:12, col:21> col:21 referenced typename _Value
| | |-CXXRecordDecl 0x26189e0 <line:124:5, line:128:7> line:124:12 struct __numeric_traits definition
| | | |-public '__conditional_type<std::__is_integer<_Value>::__value, __numeric_traits_integer<_Value>, __numeric_traits_floating<_Value> >::__type'
| | | `-CXXRecordDecl 0x2683d00 <col:5, col:12> col:12 implicit struct __numeric_traits
| | `-ClassTemplateSpecializationDecl 0x27ccf80 <line:123:3, line:128:7> line:124:12 struct __numeric_traits definition
| | |-public 'typename __conditional_type<std::__is_integer<long>::__value, __numeric_traits_integer<long>, __numeric_traits_floating<long> >::__type':'struct __gnu_cxx::__numeric_traits_integer<long>'
| | |-TemplateArgument type 'long'
| | `-CXXRecordDecl 0x27ceb68 prev 0x27ccf80 <col:5, col:12> col:12 implicit struct __numeric_traits
| `-VarDecl 0x27cecb8 parent 0x27cd2b0 prev 0x27ce1d8 <line:71:5, col:52> col:52 __max 'const long':'const long'
|-NamespaceDecl 0x2683dc8 prev 0x2635f88 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/move.h:36:1, line:54:1> line:36:11 std
| |-original Namespace 0x25fd3b0 'std'
| |-VisibilityAttr 0x2683e30 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:67:49, col:67> Default
| `-FunctionTemplateDecl 0x2684138 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/move.h:45:3, line:51:5> line:47:5 __addressof
| |-TemplateTypeParmDecl 0x2683e68 <line:45:12, col:21> col:21 referenced typename _Tp
| |-FunctionDecl 0x2684090 <line:46:5, line:51:5> line:47:5 __addressof '_Tp *(_Tp &)' inline
| | |-ParmVarDecl 0x2683f58 <col:17, col:22> col:22 referenced __r '_Tp &'
| | `-CompoundStmt 0x2684340 <line:48:5, line:51:5>
| | `-ReturnStmt 0x2684328 <line:49:7, line:50:66>
| | `-CXXReinterpretCastExpr 0x26842f8 <line:49:14, line:50:66> '_Tp *' reinterpret_cast<_Tp *> <Dependent>
| | `-UnaryOperator 0x26842c8 <col:3, col:65> 'char *' prefix '&'
| | `-CXXConstCastExpr 0x2684298 <col:4, col:65> 'char' lvalue const_cast<char &> <NoOp>
| | `-CXXReinterpretCastExpr 0x26841f8 <col:22, col:64> 'const volatile char' lvalue reinterpret_cast<const volatile char &> <Dependent>
| | `-DeclRefExpr 0x2684190 <col:61> '_Tp' lvalue ParmVar 0x2683f58 '__r' '_Tp &'
| `-FunctionDecl 0x2840890 <line:46:5, line:51:5> line:47:5 used __addressof 'struct A *(struct A &)' inline
| |-TemplateArgument type 'struct A'
| |-ParmVarDecl 0x2840788 <col:17, col:22> col:22 used __r 'struct A &'
| `-CompoundStmt 0x2841430 <line:48:5, line:51:5>
| `-ReturnStmt 0x2841418 <line:49:7, line:50:66>
| `-CXXReinterpretCastExpr 0x28413e8 <line:49:14, line:50:66> 'struct A *' reinterpret_cast<struct A *> <BitCast>
| `-UnaryOperator 0x28413c8 <col:3, col:65> 'char *' prefix '&'
| `-CXXConstCastExpr 0x2841398 <col:4, col:65> 'char' lvalue const_cast<char &> <NoOp>
| `-CXXReinterpretCastExpr 0x2841368 <col:22, col:64> 'const volatile char' lvalue reinterpret_cast<const volatile char &> <LValueBitCast>
| `-DeclRefExpr 0x2841318 <col:61> 'struct A':'struct A' lvalue ParmVar 0x2840788 '__r' 'struct A &'
|-NamespaceDecl 0x2684390 prev 0x2683dc8 <line:159:1, line:215:1> line:159:11 std
| |-original Namespace 0x25fd3b0 'std'
| |-VisibilityAttr 0x26843f8 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:67:49, col:67> Default
| |-FunctionTemplateDecl 0x268a368 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/move.h:174:3, line:193:5> line:184:5 swap
| | |-TemplateTypeParmDecl 0x2684430 <line:174:12, col:21> col:21 referenced typename _Tp
| | `-FunctionDecl 0x268a2c0 <line:175:5, line:193:5> line:184:5 swap 'void (_Tp &, _Tp &)' inline
| | |-ParmVarDecl 0x26844e8 <col:10, col:15> col:15 referenced __a '_Tp &'
| | |-ParmVarDecl 0x2684558 <col:20, col:25> col:25 referenced __b '_Tp &'
| | `-CompoundStmt 0x268a5c8 <line:186:5, line:193:5>
| | |-DeclStmt 0x268a480 <line:190:7, col:37>
| | | `-VarDecl 0x268a3d8 <col:7, line:155:36> line:190:11 referenced __tmp '_Tp' cinit
| | | `-ParenExpr 0x268a460 <line:155:30, col:36> '_Tp' lvalue
| | | `-DeclRefExpr 0x268a438 <line:190:33> '_Tp' lvalue ParmVar 0x26844e8 '__a' '_Tp &'
| | |-BinaryOperator 0x268a508 <line:191:7, line:155:36> '<dependent type>' '='
| | | |-DeclRefExpr 0x268a498 <line:191:7> '_Tp' lvalue ParmVar 0x26844e8 '__a' '_Tp &'
| | | `-ParenExpr 0x268a4e8 <line:155:30, col:36> '_Tp' lvalue
| | | `-DeclRefExpr 0x268a4c0 <line:191:27> '_Tp' lvalue ParmVar 0x2684558 '__b' '_Tp &'
| | `-BinaryOperator 0x268a5a0 <line:192:7, line:155:36> '<dependent type>' '='
| | |-DeclRefExpr 0x268a530 <line:192:7> '_Tp' lvalue ParmVar 0x2684558 '__b' '_Tp &'
| | `-ParenExpr 0x268a580 <line:155:30, col:36> '_Tp' lvalue
| | `-DeclRefExpr 0x268a558 <line:192:27> '_Tp' lvalue Var 0x268a3d8 '__tmp' '_Tp'
| `-FunctionTemplateDecl 0x268ab88 <line:198:3, line:211:5> line:206:5 swap
| |-TemplateTypeParmDecl 0x268a5f8 <line:198:12, col:21> col:21 referenced typename _Tp
| |-NonTypeTemplateParmDecl 0x268a6a0 <col:26, col:33> col:33 referenced 'size_t':'unsigned long' _Nm
| `-FunctionDecl 0x268aae0 <line:199:5, line:211:5> line:206:5 swap 'void (_Tp (&)[_Nm], _Tp (&)[_Nm])' inline
| |-ParmVarDecl 0x268a878 <col:10, col:24> col:16 referenced __a '_Tp (&)[_Nm]'
| |-ParmVarDecl 0x268a9c8 <col:27, col:41> col:33 referenced __b '_Tp (&)[_Nm]'
| `-CompoundStmt 0x268af40 <line:208:5, line:211:5>
| `-ForStmt 0x268af08 <line:209:7, line:210:25>
| |-DeclStmt 0x268ac90 <line:209:12, col:26>
| | `-VarDecl 0x268abf8 <col:12, col:25> col:19 referenced __n 'size_t':'unsigned long' cinit
| | `-ImplicitCastExpr 0x268ac78 <col:25> 'size_t':'unsigned long' <IntegralCast>
| | `-IntegerLiteral 0x268ac58 <col:25> 'int' 0
| |-<<<NULL>>>
| |-BinaryOperator 0x268ad10 <col:28, col:34> '_Bool' '<'
| | |-ImplicitCastExpr 0x268acf8 <col:28> 'size_t':'unsigned long' <LValueToRValue>
| | | `-DeclRefExpr 0x268aca8 <col:28> 'size_t':'unsigned long' lvalue Var 0x268abf8 '__n' 'size_t':'unsigned long'
| | `-DeclRefExpr 0x268acd0 <col:34> 'size_t':'unsigned long' NonTypeTemplateParm 0x268a6a0 '_Nm' 'size_t':'unsigned long'
| |-UnaryOperator 0x268ad60 <col:39, col:41> 'size_t':'unsigned long' lvalue prefix '++'
| | `-DeclRefExpr 0x268ad38 <col:41> 'size_t':'unsigned long' lvalue Var 0x268abf8 '__n' 'size_t':'unsigned long'
| `-CallExpr 0x268aed0 <line:210:2, col:25> '<dependent type>'
| |-UnresolvedLookupExpr 0x268ad80 <col:2> '<overloaded function type>' lvalue (ADL) = 'swap' 0x268ab88 0x268a368
| |-ArraySubscriptExpr 0x268ae30 <col:7, col:14> '<dependent type>' lvalue
| | |-DeclRefExpr 0x268ade0 <col:7> '_Tp [_Nm]':'_Tp [_Nm]' lvalue ParmVar 0x268a878 '__a' '_Tp (&)[_Nm]'
| | `-DeclRefExpr 0x268ae08 <col:11> 'size_t':'unsigned long' lvalue Var 0x268abf8 '__n' 'size_t':'unsigned long'
| `-ArraySubscriptExpr 0x268aea8 <col:17, col:24> '<dependent type>' lvalue
| |-DeclRefExpr 0x268ae58 <col:17> '_Tp [_Nm]':'_Tp [_Nm]' lvalue ParmVar 0x268a9c8 '__b' '_Tp (&)[_Nm]'
| `-DeclRefExpr 0x268ae80 <col:21> 'size_t':'unsigned long' lvalue Var 0x268abf8 '__n' 'size_t':'unsigned long'
|-NamespaceDecl 0x268af90 prev 0x2684390 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_pair.h:65:1, line:442:1> line:65:11 std
| |-original Namespace 0x25fd3b0 'std'
| |-VisibilityAttr 0x268aff8 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:67:49, col:67> Default
| |-ClassTemplateDecl 0x268b1c0 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_pair.h:146:3, line:358:5> line:147:12 pair
| | |-TemplateTypeParmDecl 0x268b030 <line:146:12, col:21> col:21 referenced typename _T1
| | |-TemplateTypeParmDecl 0x268b098 <col:26, col:35> col:35 referenced typename _T2
| | `-CXXRecordDecl 0x268b128 <line:147:5, line:358:5> line:147:12 struct pair definition
| | |-CXXRecordDecl 0x268b4a8 <col:5, col:12> col:12 implicit referenced struct pair
| | |-TypedefDecl 0x268b550 <line:149:7, col:19> col:19 first_type '_T1'
| | | `-TemplateTypeParmType 0x268b070 '_T1' dependent depth 0 index 0
| | | `-TemplateTypeParm 0x268b030 '_T1'
| | |-TypedefDecl 0x268b5b0 <line:150:7, col:19> col:19 second_type '_T2'
| | | `-TemplateTypeParmType 0x268b0e0 '_T2' dependent depth 0 index 1
| | | `-TemplateTypeParm 0x268b098 '_T2'
| | |-FieldDecl 0x268b610 <line:152:7, col:11> col:11 first '_T1'
| | |-FieldDecl 0x268b668 <line:153:7, col:11> col:11 second '_T2'
| | |-CXXConstructorDecl 0x268b6f0 <line:167:26, line:168:29> line:167:26 pair<_T1, _T2> 'void (void)'
| | | |-CXXCtorInitializer Field 0x268b610 'first' '_T1'
| | | | `-ParenListExpr 0x268c0a8 <line:168:14, col:15> 'NULL TYPE'
| | | |-CXXCtorInitializer Field 0x268b668 'second' '_T2'
| | | | `-ParenListExpr 0x268c0f8 <col:24, col:25> 'NULL TYPE'
| | | `-CompoundStmt 0x268c158 <col:27, col:29>
| | |-CXXConstructorDecl 0x268ba00 <line:186:7, line:187:35> line:186:7 pair<_T1, _T2> 'void (const _T1 &, const _T2 &)'
| | | |-ParmVarDecl 0x268b818 <col:12, col:23> col:23 referenced __a 'const _T1 &'
| | | |-ParmVarDecl 0x268b8e8 <col:28, col:39> col:39 referenced __b 'const _T2 &'
| | | |-CXXCtorInitializer Field 0x268b610 'first' '_T1'
| | | | `-ParenListExpr 0x268c198 <line:187:14, col:18> 'NULL TYPE'
| | | | `-DeclRefExpr 0x268c170 <col:15> 'const _T1' lvalue ParmVar 0x268b818 '__a' 'const _T1 &'
| | | |-CXXCtorInitializer Field 0x268b668 'second' '_T2'
| | | | `-ParenListExpr 0x268c218 <col:27, col:31> 'NULL TYPE'
| | | | `-DeclRefExpr 0x268c1f0 <col:28> 'const _T2' lvalue ParmVar 0x268b8e8 '__b' 'const _T2 &'
| | | `-CompoundStmt 0x268c2a8 <col:33, col:35>
| | `-FunctionTemplateDecl 0x268c028 <line:206:7, line:208:43> line:207:2 pair<_T1, _T2>
| | |-TemplateTypeParmDecl 0x268bac8 <line:206:16, col:25> col:25 referenced typename _U1
| | |-TemplateTypeParmDecl 0x268bb68 <col:30, col:39> col:39 referenced typename _U2
| | `-CXXConstructorDecl 0x268bf70 <line:207:2, line:208:43> line:207:2 pair<_T1, _T2> 'void (const pair<_U1, _U2> &)'
| | |-ParmVarDecl 0x268be68 <col:7, col:29> col:29 referenced __p 'const pair<_U1, _U2> &'
| | |-CXXCtorInitializer Field 0x268b610 'first' '_T1'
| | | `-ParenListExpr 0x268c340 <line:208:9, col:19> 'NULL TYPE'
| | | `-CXXDependentScopeMemberExpr 0x268c2e8 <col:10, col:14> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x268c2c0 <col:10> 'const pair<_U1, _U2>' lvalue ParmVar 0x268be68 '__p' 'const pair<_U1, _U2> &'
| | |-CXXCtorInitializer Field 0x268b668 'second' '_T2'
| | | `-ParenListExpr 0x268c418 <col:28, col:39> 'NULL TYPE'
| | | `-CXXDependentScopeMemberExpr 0x268c3c0 <col:29, col:33> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x268c398 <col:29> 'const pair<_U1, _U2>' lvalue ParmVar 0x268be68 '__p' 'const pair<_U1, _U2> &'
| | `-CompoundStmt 0x268c480 <col:41, col:43>
| |-FunctionTemplateDecl 0x268cb48 <line:361:3, line:364:66> line:363:5 operator==
| | |-TemplateTypeParmDecl 0x268c498 <line:361:12, col:21> col:21 referenced typename _T1
| | |-TemplateTypeParmDecl 0x268c508 <col:26, col:35> col:35 referenced typename _T2
| | `-FunctionDecl 0x268caa0 <line:362:5, line:364:66> line:363:5 operator== '_Bool (const pair<_T1, _T2> &, const pair<_T1, _T2> &)' inline
| | |-ParmVarDecl 0x268c778 <col:16, col:38> col:38 referenced __x 'const pair<_T1, _T2> &'
| | |-ParmVarDecl 0x268c988 <col:43, col:65> col:65 referenced __y 'const pair<_T1, _T2> &'
| | `-CompoundStmt 0x268cf28 <line:364:5, col:66>
| | `-ReturnStmt 0x268cf10 <col:7, col:58>
| | `-BinaryOperator 0x268cee8 <col:14, col:58> '<dependent type>' '&&'
| | |-CXXOperatorCallExpr 0x268cd00 <col:14, col:31> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x268cca8 <col:24> '<overloaded function type>' lvalue (ADL) = 'operator==' 0x268cb48
| | | |-CXXDependentScopeMemberExpr 0x268cbd0 <col:14, col:18> '<dependent type>' lvalue
| | | | `-DeclRefExpr 0x268cba8 <col:14> 'const pair<_T1, _T2>' lvalue ParmVar 0x268c778 '__x' 'const pair<_T1, _T2> &'
| | | `-CXXDependentScopeMemberExpr 0x268cc50 <col:27, col:31> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x268cc28 <col:27> 'const pair<_T1, _T2>' lvalue ParmVar 0x268c988 '__y' 'const pair<_T1, _T2> &'
| | `-CXXOperatorCallExpr 0x268cea0 <col:40, col:58> '<dependent type>'
| | |-UnresolvedLookupExpr 0x268ce48 <col:51> '<overloaded function type>' lvalue (ADL) = 'operator==' 0x268cb48
| | |-CXXDependentScopeMemberExpr 0x268cd70 <col:40, col:44> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x268cd48 <col:40> 'const pair<_T1, _T2>' lvalue ParmVar 0x268c778 '__x' 'const pair<_T1, _T2> &'
| | `-CXXDependentScopeMemberExpr 0x268cdf0 <col:54, col:58> '<dependent type>' lvalue
| | `-DeclRefExpr 0x268cdc8 <col:54> 'const pair<_T1, _T2>' lvalue ParmVar 0x268c988 '__y' 'const pair<_T1, _T2> &'
| |-FunctionTemplateDecl 0x268d598 <line:367:3, line:371:65> line:369:5 operator<
| | |-TemplateTypeParmDecl 0x268cf48 <line:367:12, col:21> col:21 referenced typename _T1
| | |-TemplateTypeParmDecl 0x268cfb8 <col:26, col:35> col:35 referenced typename _T2
| | `-FunctionDecl 0x268d4f0 <line:368:5, line:371:65> line:369:5 operator< '_Bool (const pair<_T1, _T2> &, const pair<_T1, _T2> &)' inline
| | |-ParmVarDecl 0x268d1f8 <col:15, col:37> col:37 referenced __x 'const pair<_T1, _T2> &'
| | |-ParmVarDecl 0x268d418 <col:42, col:64> col:64 referenced __y 'const pair<_T1, _T2> &'
| | `-CompoundStmt 0x268dba0 <line:370:5, line:371:65>
| | `-ReturnStmt 0x268db88 <line:370:7, line:371:62>
| | `-BinaryOperator 0x268db60 <line:370:14, line:371:62> '<dependent type>' '||'
| | |-CXXOperatorCallExpr 0x268d750 <line:370:14, col:30> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x268d6f8 <col:24> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x268d598
| | | |-CXXDependentScopeMemberExpr 0x268d648 <col:14, col:18> '<dependent type>' lvalue
| | | | `-DeclRefExpr 0x268d5f8 <col:14> 'const pair<_T1, _T2>' lvalue ParmVar 0x268d1f8 '__x' 'const pair<_T1, _T2> &'
| | | `-CXXDependentScopeMemberExpr 0x268d6a0 <col:26, col:30> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x268d620 <col:26> 'const pair<_T1, _T2>' lvalue ParmVar 0x268d418 '__y' 'const pair<_T1, _T2> &'
| | `-ParenExpr 0x268db40 <line:371:10, col:62> '<dependent type>'
| | `-BinaryOperator 0x268db18 <col:11, col:56> '<dependent type>' '&&'
| | |-UnaryOperator 0x268d958 <col:11, col:34> '<dependent type>' prefix '!'
| | | `-ParenExpr 0x268d938 <col:12, col:34> '<dependent type>'
| | | `-CXXOperatorCallExpr 0x268d8f0 <col:13, col:29> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x268d898 <col:23> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x268d598
| | | |-CXXDependentScopeMemberExpr 0x268d7e8 <col:13, col:17> '<dependent type>' lvalue
| | | | `-DeclRefExpr 0x268d798 <col:13> 'const pair<_T1, _T2>' lvalue ParmVar 0x268d418 '__y' 'const pair<_T1, _T2> &'
| | | `-CXXDependentScopeMemberExpr 0x268d840 <col:25, col:29> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x268d7c0 <col:25> 'const pair<_T1, _T2>' lvalue ParmVar 0x268d1f8 '__x' 'const pair<_T1, _T2> &'
| | `-CXXOperatorCallExpr 0x268dad0 <col:39, col:56> '<dependent type>'
| | |-UnresolvedLookupExpr 0x268da78 <col:50> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x268d598
| | |-CXXDependentScopeMemberExpr 0x268d9c8 <col:39, col:43> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x268d978 <col:39> 'const pair<_T1, _T2>' lvalue ParmVar 0x268d1f8 '__x' 'const pair<_T1, _T2> &'
| | `-CXXDependentScopeMemberExpr 0x268da20 <col:52, col:56> '<dependent type>' lvalue
| | `-DeclRefExpr 0x268d9a0 <col:52> 'const pair<_T1, _T2>' lvalue ParmVar 0x268d418 '__y' 'const pair<_T1, _T2> &'
| |-FunctionTemplateDecl 0x268e1f8 <line:374:3, line:377:29> line:376:5 operator!=
| | |-TemplateTypeParmDecl 0x268dbc0 <line:374:12, col:21> col:21 referenced typename _T1
| | |-TemplateTypeParmDecl 0x268dc28 <col:26, col:35> col:35 referenced typename _T2
| | `-FunctionDecl 0x268e150 <line:375:5, line:377:29> line:376:5 operator!= '_Bool (const pair<_T1, _T2> &, const pair<_T1, _T2> &)' inline
| | |-ParmVarDecl 0x268de68 <col:16, col:38> col:38 referenced __x 'const pair<_T1, _T2> &'
| | |-ParmVarDecl 0x268e078 <col:43, col:65> col:65 referenced __y 'const pair<_T1, _T2> &'
| | `-CompoundStmt 0x268e3b0 <line:377:5, col:29>
| | `-ReturnStmt 0x268e398 <col:7, col:26>
| | `-UnaryOperator 0x268e378 <col:14, col:26> '<dependent type>' prefix '!'
| | `-ParenExpr 0x268e358 <col:15, col:26> '<dependent type>'
| | `-CXXOperatorCallExpr 0x268e310 <col:16, col:23> '<dependent type>'
| | |-UnresolvedLookupExpr 0x268e2b8 <col:20> '<overloaded function type>' lvalue (ADL) = 'operator==' 0x268cb48
| | |-DeclRefExpr 0x268e258 <col:16> 'const pair<_T1, _T2>' lvalue ParmVar 0x268de68 '__x' 'const pair<_T1, _T2> &'
| | `-DeclRefExpr 0x268e290 <col:23> 'const pair<_T1, _T2>' lvalue ParmVar 0x268e078 '__y' 'const pair<_T1, _T2> &'
| |-FunctionTemplateDecl 0x268ea08 <line:380:3, line:383:25> line:382:5 operator>
| | |-TemplateTypeParmDecl 0x268e3d0 <line:380:12, col:21> col:21 referenced typename _T1
| | |-TemplateTypeParmDecl 0x268e438 <col:26, col:35> col:35 referenced typename _T2
| | `-FunctionDecl 0x268e960 <line:381:5, line:383:25> line:382:5 operator> '_Bool (const pair<_T1, _T2> &, const pair<_T1, _T2> &)' inline
| | |-ParmVarDecl 0x268e678 <col:15, col:37> col:37 referenced __x 'const pair<_T1, _T2> &'
| | |-ParmVarDecl 0x268e888 <col:42, col:64> col:64 referenced __y 'const pair<_T1, _T2> &'
| | `-CompoundStmt 0x268eb70 <line:383:5, col:25>
| | `-ReturnStmt 0x268eb58 <col:7, col:20>
| | `-CXXOperatorCallExpr 0x268eb10 <col:14, col:20> '<dependent type>'
| | |-UnresolvedLookupExpr 0x268eab8 <col:18> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x268d598
| | |-DeclRefExpr 0x268ea68 <col:14> 'const pair<_T1, _T2>' lvalue ParmVar 0x268e888 '__y' 'const pair<_T1, _T2> &'
| | `-DeclRefExpr 0x268ea90 <col:20> 'const pair<_T1, _T2>' lvalue ParmVar 0x268e678 '__x' 'const pair<_T1, _T2> &'
| |-FunctionTemplateDecl 0x268f1c8 <line:386:3, line:389:28> line:388:5 operator<=
| | |-TemplateTypeParmDecl 0x268eb90 <line:386:12, col:21> col:21 referenced typename _T1
| | |-TemplateTypeParmDecl 0x268ebf8 <col:26, col:35> col:35 referenced typename _T2
| | `-FunctionDecl 0x268f120 <line:387:5, line:389:28> line:388:5 operator<= '_Bool (const pair<_T1, _T2> &, const pair<_T1, _T2> &)' inline
| | |-ParmVarDecl 0x268ee38 <col:16, col:38> col:38 referenced __x 'const pair<_T1, _T2> &'
| | |-ParmVarDecl 0x268f048 <col:43, col:65> col:65 referenced __y 'const pair<_T1, _T2> &'
| | `-CompoundStmt 0x268f398 <line:389:5, col:28>
| | `-ReturnStmt 0x268f380 <col:7, col:25>
| | `-UnaryOperator 0x268f360 <col:14, col:25> '<dependent type>' prefix '!'
| | `-ParenExpr 0x268f340 <col:15, col:25> '<dependent type>'
| | `-CXXOperatorCallExpr 0x268f2f8 <col:16, col:22> '<dependent type>'
| | |-UnresolvedLookupExpr 0x268f2a0 <col:20> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x268d598
| | |-DeclRefExpr 0x268f228 <col:16> 'const pair<_T1, _T2>' lvalue ParmVar 0x268f048 '__y' 'const pair<_T1, _T2> &'
| | `-DeclRefExpr 0x268f250 <col:22> 'const pair<_T1, _T2>' lvalue ParmVar 0x268ee38 '__x' 'const pair<_T1, _T2> &'
| |-FunctionTemplateDecl 0x268f9f8 <line:392:3, line:395:28> line:394:5 operator>=
| | |-TemplateTypeParmDecl 0x268f3b8 <line:392:12, col:21> col:21 referenced typename _T1
| | |-TemplateTypeParmDecl 0x268f428 <col:26, col:35> col:35 referenced typename _T2
| | `-FunctionDecl 0x268f950 <line:393:5, line:395:28> line:394:5 operator>= '_Bool (const pair<_T1, _T2> &, const pair<_T1, _T2> &)' inline
| | |-ParmVarDecl 0x268f668 <col:16, col:38> col:38 referenced __x 'const pair<_T1, _T2> &'
| | |-ParmVarDecl 0x268f878 <col:43, col:65> col:65 referenced __y 'const pair<_T1, _T2> &'
| | `-CompoundStmt 0x268fba0 <line:395:5, col:28>
| | `-ReturnStmt 0x268fb88 <col:7, col:25>
| | `-UnaryOperator 0x268fb68 <col:14, col:25> '<dependent type>' prefix '!'
| | `-ParenExpr 0x268fb48 <col:15, col:25> '<dependent type>'
| | `-CXXOperatorCallExpr 0x268fb00 <col:16, col:22> '<dependent type>'
| | |-UnresolvedLookupExpr 0x268faa8 <col:20> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x268d598
| | |-DeclRefExpr 0x268fa58 <col:16> 'const pair<_T1, _T2>' lvalue ParmVar 0x268f668 '__x' 'const pair<_T1, _T2> &'
| | `-DeclRefExpr 0x268fa80 <col:22> 'const pair<_T1, _T2>' lvalue ParmVar 0x268f878 '__y' 'const pair<_T1, _T2> &'
| `-FunctionTemplateDecl 0x2690060 <line:433:3, line:436:40> line:435:5 make_pair
| |-TemplateTypeParmDecl 0x268fbc0 <line:433:12, col:21> col:21 referenced typename _T1
| |-TemplateTypeParmDecl 0x268fc28 <col:26, col:35> col:35 referenced typename _T2
| `-FunctionDecl 0x268ffb8 <line:434:5, line:436:40> line:435:5 make_pair 'pair<_T1, _T2> (_T1, _T2)' inline
| |-ParmVarDecl 0x268fdf8 <col:15, col:19> col:19 referenced __x '_T1'
| |-ParmVarDecl 0x268fe68 <col:24, col:28> col:28 referenced __y '_T2'
| `-CompoundStmt 0x2690300 <line:436:5, col:40>
| `-ReturnStmt 0x26902e8 <col:7, col:37>
| `-CXXUnresolvedConstructExpr 0x26902b0 <col:14, col:37> 'pair<_T1, _T2>'
| |-DeclRefExpr 0x2690230 <col:29> '_T1' lvalue ParmVar 0x268fdf8 '__x' '_T1'
| `-DeclRefExpr 0x2690258 <col:34> '_T2' lvalue ParmVar 0x268fe68 '__y' '_T2'
|-NamespaceDecl 0x2690350 prev 0x268af90 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_iterator_base_types.h:70:1, line:238:1> line:70:11 std
| |-original Namespace 0x25fd3b0 'std'
| |-VisibilityAttr 0x26903b8 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:67:49, col:67> Default
| |-CXXRecordDecl 0x26903f0 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_iterator_base_types.h:89:3, col:31> col:10 referenced struct input_iterator_tag definition
| | `-CXXRecordDecl 0x2690510 <col:3, col:10> col:10 implicit struct input_iterator_tag
| |-CXXRecordDecl 0x26905a8 <line:92:3, col:32> col:10 referenced struct output_iterator_tag definition
| | `-CXXRecordDecl 0x26906c0 <col:3, col:10> col:10 implicit struct output_iterator_tag
| |-CXXRecordDecl 0x2690758 <line:95:3, col:61> col:10 referenced struct forward_iterator_tag definition
| | |-public 'struct std::input_iterator_tag'
| | `-CXXRecordDecl 0x26908b0 <col:3, col:10> col:10 implicit struct forward_iterator_tag
| |-CXXRecordDecl 0x2690948 <line:99:3, col:69> col:10 referenced struct bidirectional_iterator_tag definition
| | |-public 'struct std::forward_iterator_tag'
| | `-CXXRecordDecl 0x2690aa0 <col:3, col:10> col:10 implicit struct bidirectional_iterator_tag
| |-CXXRecordDecl 0x2690b38 <line:103:3, col:75> col:10 referenced struct random_access_iterator_tag definition
| | |-public 'struct std::bidirectional_iterator_tag'
| | `-CXXRecordDecl 0x2690c90 <col:3, col:10> col:10 implicit struct random_access_iterator_tag
| |-ClassTemplateDecl 0x2691138 <line:116:3, line:130:5> line:118:12 iterator
| | |-TemplateTypeParmDecl 0x2690d28 <line:116:12, col:21> col:21 referenced typename _Category
| | |-TemplateTypeParmDecl 0x2690d98 <col:32, col:41> col:41 referenced typename _Tp
| | |-TemplateTypeParmDecl 0x2690e40 <col:46, col:67> col:55 referenced typename _Distance
| | | `-TemplateArgument type 'ptrdiff_t':'long'
| | |-TemplateTypeParmDecl 0x2690f18 <line:117:12, col:35> col:21 referenced typename _Pointer
| | | `-TemplateArgument type '_Tp *'
| | |-TemplateTypeParmDecl 0x2690ff8 <col:38, col:63> col:47 referenced typename _Reference
| | | `-TemplateArgument type '_Tp &'
| | |-CXXRecordDecl 0x26910a0 <line:118:5, line:130:5> line:118:12 struct iterator definition
| | | |-CXXRecordDecl 0x2694f38 <col:5, col:12> col:12 implicit struct iterator
| | | |-TypedefDecl 0x2694fe0 <line:121:7, col:26> col:26 iterator_category '_Category'
| | | | `-TemplateTypeParmType 0x2690d70 '_Category' dependent depth 0 index 0
| | | | `-TemplateTypeParm 0x2690d28 '_Category'
| | | |-TypedefDecl 0x2695040 <line:123:7, col:26> col:26 value_type '_Tp'
| | | | `-TemplateTypeParmType 0x2690de0 '_Tp' dependent depth 0 index 1
| | | | `-TemplateTypeParm 0x2690d98 '_Tp'
| | | |-TypedefDecl 0x26950a0 <line:125:7, col:26> col:26 difference_type '_Distance'
| | | | `-TemplateTypeParmType 0x2690e80 '_Distance' dependent depth 0 index 2
| | | | `-TemplateTypeParm 0x2690e40 '_Distance'
| | | |-TypedefDecl 0x2695100 <line:127:7, col:26> col:26 pointer '_Pointer'
| | | | `-TemplateTypeParmType 0x2690f60 '_Pointer' dependent depth 0 index 3
| | | | `-TemplateTypeParm 0x2690f18 '_Pointer'
| | | `-TypedefDecl 0x2695160 <line:129:7, col:26> col:26 reference '_Reference'
| | | `-TemplateTypeParmType 0x2691040 '_Reference' dependent depth 0 index 4
| | | `-TemplateTypeParm 0x2690ff8 '_Reference'
| | |-ClassTemplateSpecializationDecl 0x26b8878 <line:116:3, line:130:5> line:118:12 struct iterator definition
| | | |-TemplateArgument type 'struct std::output_iterator_tag'
| | | |-TemplateArgument type 'void'
| | | |-TemplateArgument type 'void'
| | | |-TemplateArgument type 'void'
| | | |-TemplateArgument type 'void'
| | | |-CXXRecordDecl 0x26b8be8 prev 0x26b8878 <col:5, col:12> col:12 implicit struct iterator
| | | |-TypedefDecl 0x26b8cb8 <line:121:7, col:26> col:26 iterator_category 'struct std::output_iterator_tag':'struct std::output_iterator_tag'
| | | | `-SubstTemplateTypeParmType 0x26b8c80 'struct std::output_iterator_tag' sugar
| | | | |-TemplateTypeParmType 0x2690d70 '_Category' dependent depth 0 index 0
| | | | | `-TemplateTypeParm 0x2690d28 '_Category'
| | | | `-RecordType 0x2690640 'struct std::output_iterator_tag'
| | | | `-CXXRecord 0x26905a8 'output_iterator_tag'
| | | |-TypedefDecl 0x26b8d48 <line:123:7, col:26> col:26 value_type 'void':'void'
| | | | `-SubstTemplateTypeParmType 0x26b8d10 'void' sugar
| | | | |-TemplateTypeParmType 0x2690de0 '_Tp' dependent depth 0 index 1
| | | | | `-TemplateTypeParm 0x2690d98 '_Tp'
| | | | `-BuiltinType 0x259fd70 'void'
| | | |-TypedefDecl 0x26b8dd8 <line:125:7, col:26> col:26 difference_type 'void':'void'
| | | | `-SubstTemplateTypeParmType 0x26b8da0 'void' sugar
| | | | |-TemplateTypeParmType 0x2690e80 '_Distance' dependent depth 0 index 2
| | | | | `-TemplateTypeParm 0x2690e40 '_Distance'
| | | | `-BuiltinType 0x259fd70 'void'
| | | |-TypedefDecl 0x26b8e68 <line:127:7, col:26> col:26 pointer 'void':'void'
| | | | `-SubstTemplateTypeParmType 0x26b8e30 'void' sugar
| | | | |-TemplateTypeParmType 0x2690f60 '_Pointer' dependent depth 0 index 3
| | | | | `-TemplateTypeParm 0x2690f18 '_Pointer'
| | | | `-BuiltinType 0x259fd70 'void'
| | | `-TypedefDecl 0x26b8ef8 <line:129:7, col:26> col:26 reference 'void':'void'
| | | `-SubstTemplateTypeParmType 0x26b8ec0 'void' sugar
| | | |-TemplateTypeParmType 0x2691040 '_Reference' dependent depth 0 index 4
| | | | `-TemplateTypeParm 0x2690ff8 '_Reference'
| | | `-BuiltinType 0x259fd70 'void'
| | |-ClassTemplateSpecializationDecl 0x27a77d8 <line:116:3, line:130:5> line:118:12 struct iterator definition
| | | |-TemplateArgument type 'struct std::random_access_iterator_tag'
| | | |-TemplateArgument type '_Bool'
| | | |-TemplateArgument type 'long'
| | | |-TemplateArgument type '_Bool *'
| | | |-TemplateArgument type '_Bool &'
| | | |-CXXRecordDecl 0x27a7a90 prev 0x27a77d8 <col:5, col:12> col:12 implicit struct iterator
| | | |-TypedefDecl 0x27a7b68 <line:121:7, col:26> col:26 referenced iterator_category 'struct std::random_access_iterator_tag':'struct std::random_access_iterator_tag'
| | | | `-SubstTemplateTypeParmType 0x27a7b30 'struct std::random_access_iterator_tag' sugar
| | | | |-TemplateTypeParmType 0x2690d70 '_Category' dependent depth 0 index 0
| | | | | `-TemplateTypeParm 0x2690d28 '_Category'
| | | | `-RecordType 0x2690bd0 'struct std::random_access_iterator_tag'
| | | | `-CXXRecord 0x2690b38 'random_access_iterator_tag'
| | | |-TypedefDecl 0x27a7bc8 <line:123:7, col:26> col:26 referenced value_type '_Bool':'_Bool'
| | | | `-SubstTemplateTypeParmType 0x27a7700 '_Bool' sugar
| | | | |-TemplateTypeParmType 0x2690de0 '_Tp' dependent depth 0 index 1
| | | | | `-TemplateTypeParm 0x2690d98 '_Tp'
| | | | `-BuiltinType 0x259fd90 '_Bool'
| | | |-TypedefDecl 0x27a7c58 <line:125:7, col:26> col:26 referenced difference_type 'long':'long'
| | | | `-SubstTemplateTypeParmType 0x27a7c20 'long' sugar
| | | | |-TemplateTypeParmType 0x2690e80 '_Distance' dependent depth 0 index 2
| | | | | `-TemplateTypeParm 0x2690e40 '_Distance'
| | | | `-BuiltinType 0x259fe30 'long'
| | | |-TypedefDecl 0x27a7ce8 <line:127:7, col:26> col:26 pointer '_Bool *':'_Bool *'
| | | | `-SubstTemplateTypeParmType 0x27a7cb0 '_Bool *' sugar
| | | | |-TemplateTypeParmType 0x2690f60 '_Pointer' dependent depth 0 index 3
| | | | | `-TemplateTypeParm 0x2690f18 '_Pointer'
| | | | `-PointerType 0x27a7730 '_Bool *'
| | | | `-BuiltinType 0x259fd90 '_Bool'
| | | |-TypedefDecl 0x27a7d78 <line:129:7, col:26> col:26 reference '_Bool &':'_Bool &'
| | | | `-SubstTemplateTypeParmType 0x27a7d40 '_Bool &' sugar
| | | | |-TemplateTypeParmType 0x2691040 '_Reference' dependent depth 0 index 4
| | | | | `-TemplateTypeParm 0x2690ff8 '_Reference'
| | | | `-LValueReferenceType 0x27a6b50 '_Bool &'
| | | | `-BuiltinType 0x259fd90 '_Bool'
| | | |-CXXConstructorDecl 0x279da78 <line:118:12> col:12 implicit used iterator 'void (void) throw()' inline
| | | | `-CompoundStmt 0x279dd38 <col:12>
| | | `-CXXConstructorDecl 0x279db98 <col:12> col:12 implicit used iterator 'void (const struct std::iterator<struct std::random_access_iterator_tag, _Bool, long, _Bool *, _Bool &> &) throw()' inline
| | | |-ParmVarDecl 0x279dcd0 <col:12> col:12 'const struct std::iterator<struct std::random_access_iterator_tag, _Bool, long, _Bool *, _Bool &> &'
| | | `-CompoundStmt 0x27a1ee8 <col:12>
| | |-ClassTemplateSpecializationDecl 0x27c45f0 <line:116:3, line:130:5> line:118:12 struct iterator definition
| | | |-TemplateArgument type 'struct std::random_access_iterator_tag'
| | | |-TemplateArgument type '_Bool'
| | | |-TemplateArgument type 'long'
| | | |-TemplateArgument type 'struct std::_Bit_reference *'
| | | |-TemplateArgument type 'struct std::_Bit_reference'
| | | |-CXXRecordDecl 0x27c48f8 prev 0x27c45f0 <col:5, col:12> col:12 implicit struct iterator
| | | |-TypedefDecl 0x27c49a0 <line:121:7, col:26> col:26 iterator_category 'struct std::random_access_iterator_tag':'struct std::random_access_iterator_tag'
| | | | `-SubstTemplateTypeParmType 0x27a7b30 'struct std::random_access_iterator_tag' sugar
| | | | |-TemplateTypeParmType 0x2690d70 '_Category' dependent depth 0 index 0
| | | | | `-TemplateTypeParm 0x2690d28 '_Category'
| | | | `-RecordType 0x2690bd0 'struct std::random_access_iterator_tag'
| | | | `-CXXRecord 0x2690b38 'random_access_iterator_tag'
| | | |-TypedefDecl 0x27c4a00 <line:123:7, col:26> col:26 value_type '_Bool':'_Bool'
| | | | `-SubstTemplateTypeParmType 0x27a7700 '_Bool' sugar
| | | | |-TemplateTypeParmType 0x2690de0 '_Tp' dependent depth 0 index 1
| | | | | `-TemplateTypeParm 0x2690d98 '_Tp'
| | | | `-BuiltinType 0x259fd90 '_Bool'
| | | |-TypedefDecl 0x27c4a60 <line:125:7, col:26> col:26 difference_type 'long':'long'
| | | | `-SubstTemplateTypeParmType 0x27a7c20 'long' sugar
| | | | |-TemplateTypeParmType 0x2690e80 '_Distance' dependent depth 0 index 2
| | | | | `-TemplateTypeParm 0x2690e40 '_Distance'
| | | | `-BuiltinType 0x259fe30 'long'
| | | |-TypedefDecl 0x27c4ae8 <line:127:7, col:26> col:26 pointer 'struct std::_Bit_reference *':'struct std::_Bit_reference *'
| | | | `-SubstTemplateTypeParmType 0x27c4ab0 'struct std::_Bit_reference *' sugar
| | | | |-TemplateTypeParmType 0x2690f60 '_Pointer' dependent depth 0 index 3
| | | | | `-TemplateTypeParm 0x2690f18 '_Pointer'
| | | | `-PointerType 0x279c750 'struct std::_Bit_reference *'
| | | | `-RecordType 0x279b9d0 'struct std::_Bit_reference'
| | | | `-CXXRecord 0x279b938 '_Bit_reference'
| | | `-TypedefDecl 0x27c4b78 <line:129:7, col:26> col:26 reference 'struct std::_Bit_reference':'struct std::_Bit_reference'
| | | `-SubstTemplateTypeParmType 0x27c4b40 'struct std::_Bit_reference' sugar
| | | |-TemplateTypeParmType 0x2691040 '_Reference' dependent depth 0 index 4
| | | | `-TemplateTypeParm 0x2690ff8 '_Reference'
| | | `-RecordType 0x279b9d0 'struct std::_Bit_reference'
| | | `-CXXRecord 0x279b938 '_Bit_reference'
| | `-ClassTemplateSpecializationDecl 0x27c8fd0 <line:116:3, line:130:5> line:118:12 struct iterator definition
| | |-TemplateArgument type 'struct std::random_access_iterator_tag'
| | |-TemplateArgument type '_Bool'
| | |-TemplateArgument type 'long'
| | |-TemplateArgument type 'const _Bool *'
| | |-TemplateArgument type '_Bool'
| | |-CXXRecordDecl 0x27c92d8 prev 0x27c8fd0 <col:5, col:12> col:12 implicit struct iterator
| | |-TypedefDecl 0x27c9380 <line:121:7, col:26> col:26 iterator_category 'struct std::random_access_iterator_tag':'struct std::random_access_iterator_tag'
| | | `-SubstTemplateTypeParmType 0x27a7b30 'struct std::random_access_iterator_tag' sugar
| | | |-TemplateTypeParmType 0x2690d70 '_Category' dependent depth 0 index 0
| | | | `-TemplateTypeParm 0x2690d28 '_Category'
| | | `-RecordType 0x2690bd0 'struct std::random_access_iterator_tag'
| | | `-CXXRecord 0x2690b38 'random_access_iterator_tag'
| | |-TypedefDecl 0x27c93e0 <line:123:7, col:26> col:26 value_type '_Bool':'_Bool'
| | | `-SubstTemplateTypeParmType 0x27a7700 '_Bool' sugar
| | | |-TemplateTypeParmType 0x2690de0 '_Tp' dependent depth 0 index 1
| | | | `-TemplateTypeParm 0x2690d98 '_Tp'
| | | `-BuiltinType 0x259fd90 '_Bool'
| | |-TypedefDecl 0x27c9440 <line:125:7, col:26> col:26 difference_type 'long':'long'
| | | `-SubstTemplateTypeParmType 0x27a7c20 'long' sugar
| | | |-TemplateTypeParmType 0x2690e80 '_Distance' dependent depth 0 index 2
| | | | `-TemplateTypeParm 0x2690e40 '_Distance'
| | | `-BuiltinType 0x259fe30 'long'
| | |-TypedefDecl 0x27c94c8 <line:127:7, col:26> col:26 pointer 'const _Bool *':'const _Bool *'
| | | `-SubstTemplateTypeParmType 0x27c9490 'const _Bool *' sugar
| | | |-TemplateTypeParmType 0x2690f60 '_Pointer' dependent depth 0 index 3
| | | | `-TemplateTypeParm 0x2690f18 '_Pointer'
| | | `-PointerType 0x27df030 'const _Bool *'
| | | `-QualType 0x259fd91 'const _Bool' const
| | | `-BuiltinType 0x259fd90 '_Bool'
| | `-TypedefDecl 0x27c9558 <line:129:7, col:26> col:26 reference '_Bool':'_Bool'
| | `-SubstTemplateTypeParmType 0x27c9520 '_Bool' sugar
| | |-TemplateTypeParmType 0x2691040 '_Reference' dependent depth 0 index 4
| | | `-TemplateTypeParm 0x2690ff8 '_Reference'
| | `-BuiltinType 0x259fd90 '_Bool'
| |-ClassTemplateDecl 0x26952c8 <line:165:3, line:173:5> line:166:12 iterator_traits
| | |-TemplateTypeParmDecl 0x26951b0 <line:165:12, col:21> col:21 typename _Iterator
| | |-CXXRecordDecl 0x2695230 <line:166:5, line:173:5> line:166:12 struct iterator_traits definition
| | | |-CXXRecordDecl 0x2695538 <col:5, col:12> col:12 implicit struct iterator_traits
| | | |-TypedefDecl 0x26956c0 <line:168:7, col:53> col:53 iterator_category 'typename _Iterator::iterator_category'
| | | | `-DependentNameType 0x2695650 'typename _Iterator::iterator_category' dependent
| | | |-TypedefDecl 0x26957d0 <line:169:7, col:53> col:53 value_type 'typename _Iterator::value_type'
| | | | `-DependentNameType 0x2695760 'typename _Iterator::value_type' dependent
| | | |-TypedefDecl 0x26958e0 <line:170:7, col:53> col:53 difference_type 'typename _Iterator::difference_type'
| | | | `-DependentNameType 0x2695870 'typename _Iterator::difference_type' dependent
| | | |-TypedefDecl 0x26959f0 <line:171:7, col:53> col:53 pointer 'typename _Iterator::pointer'
| | | | `-DependentNameType 0x2695980 'typename _Iterator::pointer' dependent
| | | `-TypedefDecl 0x2695b00 <line:172:7, col:53> col:53 reference 'typename _Iterator::reference'
| | | `-DependentNameType 0x2695a90 'typename _Iterator::reference' dependent
| | |-ClassTemplateSpecializationDecl 0x27c3998 <line:165:3, line:173:5> line:166:12 struct iterator_traits definition
| | | |-TemplateArgument type 'struct std::_Bit_iterator'
| | | |-CXXRecordDecl 0x27c3c00 prev 0x27c3998 <col:5, col:12> col:12 implicit struct iterator_traits
| | | |-TypedefDecl 0x27c3d70 <line:168:7, col:53> col:53 referenced iterator_category 'typename struct _Bit_iterator::iterator_category':'struct std::random_access_iterator_tag'
| | | | `-ElaboratedType 0x27c3d20 'typename struct _Bit_iterator::iterator_category' sugar
| | | | `-TypedefType 0x27c3d00 'iterator_category' sugar
| | | | |-Typedef 0x27a7b68 'iterator_category'
| | | | `-SubstTemplateTypeParmType 0x27a7b30 'struct std::random_access_iterator_tag' sugar
| | | | |-TemplateTypeParmType 0x2690d70 '_Category' dependent depth 0 index 0
| | | | | `-TemplateTypeParm 0x2690d28 '_Category'
| | | | `-RecordType 0x2690bd0 'struct std::random_access_iterator_tag'
| | | | `-CXXRecord 0x2690b38 'random_access_iterator_tag'
| | | |-TypedefDecl 0x27c3e50 <line:169:7, col:53> col:53 referenced value_type 'typename struct _Bit_iterator::value_type':'_Bool'
| | | | `-ElaboratedType 0x27c3e00 'typename struct _Bit_iterator::value_type' sugar
| | | | `-TypedefType 0x27c3de0 'value_type' sugar
| | | | |-Typedef 0x27a7bc8 'value_type'
| | | | `-SubstTemplateTypeParmType 0x27a7700 '_Bool' sugar
| | | | |-TemplateTypeParmType 0x2690de0 '_Tp' dependent depth 0 index 1
| | | | | `-TemplateTypeParm 0x2690d98 '_Tp'
| | | | `-BuiltinType 0x259fd90 '_Bool'
| | | |-TypedefDecl 0x27c3f10 <line:170:7, col:53> col:53 referenced difference_type 'typename struct _Bit_iterator::difference_type':'long'
| | | | `-ElaboratedType 0x27c3ec0 'typename struct _Bit_iterator::difference_type' sugar
| | | | `-TypedefType 0x279e490 'difference_type' sugar
| | | | |-Typedef 0x27a7c58 'difference_type'
| | | | `-SubstTemplateTypeParmType 0x27a7c20 'long' sugar
| | | | |-TemplateTypeParmType 0x2690e80 '_Distance' dependent depth 0 index 2
| | | | | `-TemplateTypeParm 0x2690e40 '_Distance'
| | | | `-BuiltinType 0x259fe30 'long'
| | | |-TypedefDecl 0x27c3ff0 <line:171:7, col:53> col:53 referenced pointer 'typename struct _Bit_iterator::pointer':'struct std::_Bit_reference *'
| | | | `-ElaboratedType 0x27c3fa0 'typename struct _Bit_iterator::pointer' sugar
| | | | `-TypedefType 0x27c3f80 'pointer' sugar
| | | | |-Typedef 0x27a0448 'pointer'
| | | | `-PointerType 0x279c750 'struct std::_Bit_reference *'
| | | | `-RecordType 0x279b9d0 'struct std::_Bit_reference'
| | | | `-CXXRecord 0x279b938 '_Bit_reference'
| | | `-TypedefDecl 0x27c40b0 <line:172:7, col:53> col:53 referenced reference 'typename struct _Bit_iterator::reference':'struct std::_Bit_reference'
| | | `-ElaboratedType 0x27c4060 'typename struct _Bit_iterator::reference' sugar
| | | `-TypedefType 0x27a0920 'reference' sugar
| | | |-Typedef 0x27a03e8 'reference'
| | | `-RecordType 0x279b9d0 'struct std::_Bit_reference'
| | | `-CXXRecord 0x279b938 '_Bit_reference'
| | |-ClassTemplateSpecializationDecl 0x27c8018 <line:165:3, line:173:5> line:166:12 struct iterator_traits definition
| | | |-TemplateArgument type 'struct std::_Bit_const_iterator'
| | | |-CXXRecordDecl 0x27c8280 prev 0x27c8018 <col:5, col:12> col:12 implicit struct iterator_traits
| | | |-TypedefDecl 0x27c83d0 <line:168:7, col:53> col:53 referenced iterator_category 'typename struct _Bit_const_iterator::iterator_category':'struct std::random_access_iterator_tag'
| | | | `-ElaboratedType 0x27c8380 'typename struct _Bit_const_iterator::iterator_category' sugar
| | | | `-TypedefType 0x27c3d00 'iterator_category' sugar
| | | | |-Typedef 0x27a7b68 'iterator_category'
| | | | `-SubstTemplateTypeParmType 0x27a7b30 'struct std::random_access_iterator_tag' sugar
| | | | |-TemplateTypeParmType 0x2690d70 '_Category' dependent depth 0 index 0
| | | | | `-TemplateTypeParm 0x2690d28 '_Category'
| | | | `-RecordType 0x2690bd0 'struct std::random_access_iterator_tag'
| | | | `-CXXRecord 0x2690b38 'random_access_iterator_tag'
| | | |-TypedefDecl 0x27c8490 <line:169:7, col:53> col:53 referenced value_type 'typename struct _Bit_const_iterator::value_type':'_Bool'
| | | | `-ElaboratedType 0x27c8440 'typename struct _Bit_const_iterator::value_type' sugar
| | | | `-TypedefType 0x27c3de0 'value_type' sugar
| | | | |-Typedef 0x27a7bc8 'value_type'
| | | | `-SubstTemplateTypeParmType 0x27a7700 '_Bool' sugar
| | | | |-TemplateTypeParmType 0x2690de0 '_Tp' dependent depth 0 index 1
| | | | | `-TemplateTypeParm 0x2690d98 '_Tp'
| | | | `-BuiltinType 0x259fd90 '_Bool'
| | | |-TypedefDecl 0x27c88d0 <line:170:7, col:53> col:53 referenced difference_type 'typename struct _Bit_const_iterator::difference_type':'long'
| | | | `-ElaboratedType 0x27c8880 'typename struct _Bit_const_iterator::difference_type' sugar
| | | | `-TypedefType 0x279e490 'difference_type' sugar
| | | | |-Typedef 0x27a7c58 'difference_type'
| | | | `-SubstTemplateTypeParmType 0x27a7c20 'long' sugar
| | | | |-TemplateTypeParmType 0x2690e80 '_Distance' dependent depth 0 index 2
| | | | | `-TemplateTypeParm 0x2690e40 '_Distance'
| | | | `-BuiltinType 0x259fe30 'long'
| | | |-TypedefDecl 0x27c89b0 <line:171:7, col:53> col:53 referenced pointer 'typename struct _Bit_const_iterator::pointer':'const _Bool *'
| | | | `-ElaboratedType 0x27c8960 'typename struct _Bit_const_iterator::pointer' sugar
| | | | `-TypedefType 0x27c8940 'pointer' sugar
| | | | |-Typedef 0x27df068 'pointer'
| | | | `-PointerType 0x27df030 'const _Bool *'
| | | | `-QualType 0x259fd91 'const _Bool' const
| | | | `-BuiltinType 0x259fd90 '_Bool'
| | | `-TypedefDecl 0x27c8a90 <line:172:7, col:53> col:53 referenced reference 'typename struct _Bit_const_iterator::reference':'_Bool'
| | | `-ElaboratedType 0x27c8a40 'typename struct _Bit_const_iterator::reference' sugar
| | | `-TypedefType 0x27c8a20 'reference' sugar
| | | |-Typedef 0x27def78 'reference'
| | | `-BuiltinType 0x259fd90 '_Bool'
| | `-ClassTemplateSpecializationDecl 0x271db08 <line:177:3, line:185:5> line:178:12 struct iterator_traits definition
| | |-TemplateArgument type 'struct A *'
| | |-CXXRecordDecl 0x271de00 prev 0x271db08 <col:5, col:12> col:12 implicit struct iterator_traits
| | |-TypedefDecl 0x271de98 <line:180:7, col:42> col:42 referenced iterator_category 'struct std::random_access_iterator_tag'
| | | `-RecordType 0x2690bd0 'struct std::random_access_iterator_tag'
| | | `-CXXRecord 0x2690b38 'random_access_iterator_tag'
| | |-TypedefDecl 0x271def8 <line:181:7, col:43> col:43 referenced value_type 'struct A':'struct A'
| | | `-SubstTemplateTypeParmType 0x271dcf0 'struct A' sugar
| | | |-TemplateTypeParmType 0x2695b90 '_Tp' dependent depth 0 index 0
| | | | `-TemplateTypeParm 0x2695b50 '_Tp'
| | | `-RecordType 0x280a9d0 'struct A'
| | | `-CXXRecord 0x280a930 'A'
| | |-TypedefDecl 0x271df48 <line:182:7, col:43> col:43 referenced difference_type 'ptrdiff_t':'long'
| | | `-TypedefType 0x2690e10 'ptrdiff_t' sugar
| | | |-Typedef 0x25fd488 'ptrdiff_t'
| | | `-BuiltinType 0x259fe30 'long'
| | |-TypedefDecl 0x271dfa8 <line:183:7, col:43> col:43 referenced pointer 'struct A *'
| | | `-PointerType 0x271dd20 'struct A *'
| | | `-SubstTemplateTypeParmType 0x271dcf0 'struct A' sugar
| | | |-TemplateTypeParmType 0x2695b90 '_Tp' dependent depth 0 index 0
| | | | `-TemplateTypeParm 0x2695b50 '_Tp'
| | | `-RecordType 0x280a9d0 'struct A'
| | | `-CXXRecord 0x280a930 'A'
| | `-TypedefDecl 0x271e038 <line:184:7, col:43> col:43 referenced reference 'struct A &'
| | `-LValueReferenceType 0x271e000 'struct A &'
| | `-SubstTemplateTypeParmType 0x271dcf0 'struct A' sugar
| | |-TemplateTypeParmType 0x2695b90 '_Tp' dependent depth 0 index 0
| | | `-TemplateTypeParm 0x2695b50 '_Tp'
| | `-RecordType 0x280a9d0 'struct A'
| | `-CXXRecord 0x280a930 'A'
| |-ClassTemplatePartialSpecializationDecl 0x26969a0 <line:177:3, line:185:5> line:178:12 struct iterator_traits definition
| | |-TemplateArgument type 'type-parameter-0-0 *'
| | |-TemplateTypeParmDecl 0x2695b50 <line:177:12, col:21> col:21 referenced typename _Tp
| | |-CXXRecordDecl 0x2696bb8 <line:178:5, col:12> col:12 implicit struct iterator_traits
| | |-TypedefDecl 0x2696c60 <line:180:7, col:42> col:42 iterator_category 'struct std::random_access_iterator_tag'
| | | `-RecordType 0x2690bd0 'struct std::random_access_iterator_tag'
| | | `-CXXRecord 0x2690b38 'random_access_iterator_tag'
| | |-TypedefDecl 0x2696cc0 <line:181:7, col:43> col:43 value_type '_Tp'
| | | `-TemplateTypeParmType 0x2695b90 '_Tp' dependent depth 0 index 0
| | | `-TemplateTypeParm 0x2695b50 '_Tp'
| | |-TypedefDecl 0x2696d20 <line:182:7, col:43> col:43 difference_type 'ptrdiff_t':'long'
| | | `-TypedefType 0x2690e10 'ptrdiff_t' sugar
| | | |-Typedef 0x25fd488 'ptrdiff_t'
| | | `-BuiltinType 0x259fe30 'long'
| | |-TypedefDecl 0x2696d80 <line:183:7, col:43> col:43 pointer '_Tp *'
| | | `-PointerType 0x2695bd0 '_Tp *' dependent
| | | `-TemplateTypeParmType 0x2695b90 '_Tp' dependent depth 0 index 0
| | | `-TemplateTypeParm 0x2695b50 '_Tp'
| | `-TypedefDecl 0x2696e08 <line:184:7, col:43> col:43 reference '_Tp &'
| | `-LValueReferenceType 0x2696dd0 '_Tp &' dependent
| | `-TemplateTypeParmType 0x2695b90 '_Tp' dependent depth 0 index 0
| | `-TemplateTypeParm 0x2695b50 '_Tp'
| |-ClassTemplatePartialSpecializationDecl 0x2697028 <line:188:3, line:196:5> line:189:12 struct iterator_traits definition
| | |-TemplateArgument type 'const type-parameter-0-0 *'
| | |-TemplateTypeParmDecl 0x2696e58 <line:188:12, col:21> col:21 referenced typename _Tp
| | |-CXXRecordDecl 0x2697248 <line:189:5, col:12> col:12 implicit struct iterator_traits
| | |-TypedefDecl 0x26972f0 <line:191:7, col:42> col:42 iterator_category 'struct std::random_access_iterator_tag'
| | | `-RecordType 0x2690bd0 'struct std::random_access_iterator_tag'
| | | `-CXXRecord 0x2690b38 'random_access_iterator_tag'
| | |-TypedefDecl 0x2697350 <line:192:7, col:43> col:43 value_type '_Tp'
| | | `-TemplateTypeParmType 0x2696ea0 '_Tp' dependent depth 0 index 0
| | | `-TemplateTypeParm 0x2696e58 '_Tp'
| | |-TypedefDecl 0x26973b0 <line:193:7, col:43> col:43 difference_type 'ptrdiff_t':'long'
| | | `-TypedefType 0x2690e10 'ptrdiff_t' sugar
| | | |-Typedef 0x25fd488 'ptrdiff_t'
| | | `-BuiltinType 0x259fe30 'long'
| | |-TypedefDecl 0x2697410 <line:194:7, col:43> col:43 pointer 'const _Tp *'
| | | `-PointerType 0x2696f10 'const _Tp *' dependent
| | | `-QualType 0x2696ea1 'const _Tp' const
| | | `-TemplateTypeParmType 0x2696ea0 '_Tp' dependent depth 0 index 0
| | | `-TemplateTypeParm 0x2696e58 '_Tp'
| | `-TypedefDecl 0x2697498 <line:195:7, col:43> col:43 reference 'const _Tp &'
| | `-LValueReferenceType 0x2697460 'const _Tp &' dependent
| | `-QualType 0x2696ea1 'const _Tp' const
| | `-TemplateTypeParmType 0x2696ea0 '_Tp' dependent depth 0 index 0
| | `-TemplateTypeParm 0x2696e58 '_Tp'
| |-FunctionTemplateDecl 0x26978f8 <line:202:3, line:205:68> line:204:5 __iterator_category
| | |-TemplateTypeParmDecl 0x26974e8 <line:202:12, col:21> col:21 referenced typename _Iter
| | `-FunctionDecl 0x2697850 <line:203:5, line:205:68> line:204:5 __iterator_category 'typename iterator_traits<_Iter>::iterator_category (const _Iter &)' inline
| | |-ParmVarDecl 0x2697738 <col:25, col:36> col:37 'const _Iter &'
| | `-CompoundStmt 0x2698370 <line:205:5, col:68>
| | `-ReturnStmt 0x2698358 <col:7, col:65>
| | `-CXXUnresolvedConstructExpr 0x2698330 <col:14, col:65> 'typename iterator_traits<_Iter>::iterator_category'
| |-ClassTemplateDecl 0x2698518 <line:212:3, line:218:5> line:213:12 _Iter_base
| | |-TemplateTypeParmDecl 0x2698390 <line:212:12, col:21> col:21 referenced typename _Iterator
| | |-NonTypeTemplateParmDecl 0x2698408 <col:32, col:37> col:37 '_Bool' _HasBase
| | `-CXXRecordDecl 0x2698480 <line:213:5, line:218:5> line:213:12 struct _Iter_base definition
| | |-CXXRecordDecl 0x26987d8 <col:5, col:12> col:12 implicit struct _Iter_base
| | |-TypedefDecl 0x2698880 <line:215:7, col:25> col:25 referenced iterator_type '_Iterator'
| | | `-TemplateTypeParmType 0x26983d0 '_Iterator' dependent depth 0 index 0
| | | `-TemplateTypeParm 0x2698390 '_Iterator'
| | `-CXXMethodDecl 0x26989c0 <line:216:7, line:217:22> line:216:28 _S_base 'iterator_type (_Iterator)' static
| | |-ParmVarDecl 0x2698900 <col:36, col:46> col:46 referenced __it '_Iterator'
| | `-CompoundStmt 0x2698ad8 <line:217:7, col:22>
| | `-ReturnStmt 0x2698ac0 <col:9, col:16>
| | `-DeclRefExpr 0x2698a98 <col:16> '_Iterator' lvalue ParmVar 0x2698900 '__it' '_Iterator'
| `-ClassTemplatePartialSpecializationDecl 0x2698ce0 <line:220:3, line:226:5> line:221:12 struct _Iter_base definition
| |-TemplateArgument type 'type-parameter-0-0'
| |-TemplateArgument integral 1
| |-TemplateTypeParmDecl 0x2698af8 <line:220:12, col:21> col:21 referenced typename _Iterator
| |-CXXRecordDecl 0x2698f48 <line:221:5, col:12> col:12 implicit struct _Iter_base
| |-TypedefDecl 0x26990b0 <line:223:7, col:49> col:49 referenced iterator_type 'typename _Iterator::iterator_type'
| | `-DependentNameType 0x2699040 'typename _Iterator::iterator_type' dependent
| `-CXXMethodDecl 0x2699a70 <line:224:7, line:225:29> line:224:28 _S_base 'iterator_type (_Iterator)' static
| |-ParmVarDecl 0x2699130 <col:36, col:46> col:46 referenced __it '_Iterator'
| `-CompoundStmt 0x2699c08 <line:225:7, col:29>
| `-ReturnStmt 0x2699bf0 <col:9, col:26>
| `-CallExpr 0x2699bc8 <col:16, col:26> '<dependent type>'
| `-CXXDependentScopeMemberExpr 0x2699b70 <col:16, col:21> '<dependent type>' lvalue
| `-DeclRefExpr 0x2699b48 <col:16> '_Iterator' lvalue ParmVar 0x2699130 '__it' '_Iterator'
|-NamespaceDecl 0x2699c58 prev 0x2690350 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_iterator_base_funcs.h:67:1, line:230:1> line:67:11 std
| |-original Namespace 0x25fd3b0 'std'
| |-VisibilityAttr 0x2699cc0 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:67:49, col:67> Default
| |-ClassTemplateDecl 0x2699e18 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_iterator_base_funcs.h:71:3, col:30> col:30 _List_iterator
| | |-TemplateTypeParmDecl 0x2699cf8 <col:13> col:13 typename
| | `-CXXRecordDecl 0x2699d80 <col:23, col:30> col:30 struct _List_iterator
| |-ClassTemplateDecl 0x269a148 <line:72:3, col:30> col:30 _List_const_iterator
| | |-TemplateTypeParmDecl 0x269a028 <col:13> col:13 typename
| | `-CXXRecordDecl 0x269a0b0 <col:23, col:30> col:30 struct _List_const_iterator
| |-FunctionTemplateDecl 0x269a838 <line:77:3, line:92:5> line:79:5 __distance
| | |-TemplateTypeParmDecl 0x269a358 <line:77:12, col:21> col:21 referenced typename _InputIterator
| | `-FunctionDecl 0x269a790 <line:78:5, line:92:5> line:79:5 __distance 'typename iterator_traits<_InputIterator>::difference_type (_InputIterator, _InputIterator, struct std::input_iterator_tag)' inline
| | |-ParmVarDecl 0x269a570 <col:16, col:31> col:31 referenced __first '_InputIterator'
| | |-ParmVarDecl 0x269a5e0 <col:40, col:55> col:55 referenced __last '_InputIterator'
| | |-ParmVarDecl 0x269a650 <line:80:16> col:34 'struct std::input_iterator_tag'
| | `-CompoundStmt 0x2601aa0 <line:81:5, line:92:5>
| | |-DeclStmt 0x2601880 <line:85:7, col:72>
| | | `-VarDecl 0x2601800 <col:7, col:71> col:65 referenced __n 'typename iterator_traits<_InputIterator>::difference_type' nrvo cinit
| | | `-IntegerLiteral 0x2601860 <col:71> 'int' 0
| | |-WhileStmt 0x2601a40 <line:86:7, line:90:2>
| | | |-<<<NULL>>>
| | | |-CXXOperatorCallExpr 0x2601940 <line:86:14, col:25> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x26018e8 <col:22> '<overloaded function type>' lvalue (ADL) = 'operator!=' 0x268e1f8
| | | | |-DeclRefExpr 0x2601898 <col:14> '_InputIterator' lvalue ParmVar 0x269a570 '__first' '_InputIterator'
| | | | `-DeclRefExpr 0x26018c0 <col:25> '_InputIterator' lvalue ParmVar 0x269a5e0 '__last' '_InputIterator'
| | | `-CompoundStmt 0x2601a18 <line:87:2, line:90:2>
| | | |-UnaryOperator 0x26019b0 <line:88:4, col:6> '<dependent type>' prefix '++'
| | | | `-DeclRefExpr 0x2601988 <col:6> '_InputIterator' lvalue ParmVar 0x269a570 '__first' '_InputIterator'
| | | `-UnaryOperator 0x26019f8 <line:89:4, col:6> '<dependent type>' prefix '++'
| | | `-DeclRefExpr 0x26019d0 <col:6> 'typename iterator_traits<_InputIterator>::difference_type' lvalue Var 0x2601800 '__n' 'typename iterator_traits<_InputIterator>::difference_type'
| | `-ReturnStmt 0x2601a88 <line:91:7, col:14>
| | `-DeclRefExpr 0x2601a60 <col:14> 'typename iterator_traits<_InputIterator>::difference_type' lvalue Var 0x2601800 '__n' 'typename iterator_traits<_InputIterator>::difference_type'
| |-FunctionTemplateDecl 0x2601f78 <line:94:3, line:103:5> line:96:5 __distance
| | |-TemplateTypeParmDecl 0x2601ad0 <line:94:12, col:21> col:21 referenced typename _RandomAccessIterator
| | `-FunctionDecl 0x2601ed0 <line:95:5, line:103:5> line:96:5 __distance 'typename iterator_traits<_RandomAccessIterator>::difference_type (_RandomAccessIterator, _RandomAccessIterator, struct std::random_access_iterator_tag)' inline
| | |-ParmVarDecl 0x2601cb0 <col:16, col:38> col:38 referenced __first '_RandomAccessIterator'
| | |-ParmVarDecl 0x2601d20 <col:47, col:69> col:69 referenced __last '_RandomAccessIterator'
| | |-ParmVarDecl 0x2601d90 <line:97:16> col:42 'struct std::random_access_iterator_tag'
| | `-CompoundStmt 0x2602070 <line:98:5, line:103:5>
| | `-ReturnStmt 0x2602058 <line:102:7, col:23>
| | `-BinaryOperator 0x2602030 <col:14, col:23> '<dependent type>' '-'
| | |-DeclRefExpr 0x2601fe0 <col:14> '_RandomAccessIterator' lvalue ParmVar 0x2601d20 '__last' '_RandomAccessIterator'
| | `-DeclRefExpr 0x2602008 <col:23> '_RandomAccessIterator' lvalue ParmVar 0x2601cb0 '__first' '_RandomAccessIterator'
| |-FunctionTemplateDecl 0x26026d8 <line:107:3, line:111:27> line:109:5 __distance
| | |-TemplateTypeParmDecl 0x2602090 <line:107:12, col:21> col:21 referenced typename _Tp
| | `-FunctionDecl 0x2602630 <line:108:5, line:111:27> line:109:5 __distance 'ptrdiff_t (std::_List_iterator<_Tp>, std::_List_iterator<_Tp>, struct std::input_iterator_tag)'
| | |-ParmVarDecl 0x26022a8 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:368:25, /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_iterator_base_funcs.h:109:50> col:51 'std::_List_iterator<_Tp>':'_List_iterator<_Tp>'
| | |-ParmVarDecl 0x2602488 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:368:25, /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_iterator_base_funcs.h:110:43> col:44 'std::_List_iterator<_Tp>':'_List_iterator<_Tp>'
| | `-ParmVarDecl 0x26024f8 <line:111:9> col:27 'struct std::input_iterator_tag'
| |-FunctionTemplateDecl 0x2602d98 <line:113:3, line:117:27> line:115:5 __distance
| | |-TemplateTypeParmDecl 0x2602740 <line:113:12, col:21> col:21 referenced typename _Tp
| | `-FunctionDecl 0x2602cf0 <line:114:5, line:117:27> line:115:5 __distance 'ptrdiff_t (std::_List_const_iterator<_Tp>, std::_List_const_iterator<_Tp>, struct std::input_iterator_tag)'
| | |-ParmVarDecl 0x2602968 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:368:25, /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_iterator_base_funcs.h:115:56> col:57 'std::_List_const_iterator<_Tp>':'_List_const_iterator<_Tp>'
| | |-ParmVarDecl 0x2602b48 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:368:25, /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_iterator_base_funcs.h:116:49> col:50 'std::_List_const_iterator<_Tp>':'_List_const_iterator<_Tp>'
| | `-ParmVarDecl 0x2602bb8 <line:117:9> col:27 'struct std::input_iterator_tag'
| |-FunctionTemplateDecl 0x2603218 <line:133:3, line:140:5> line:135:5 distance
| | |-TemplateTypeParmDecl 0x2602e00 <line:133:12, col:21> col:21 referenced typename _InputIterator
| | `-FunctionDecl 0x2603170 <line:134:5, line:140:5> line:135:5 distance 'typename iterator_traits<_InputIterator>::difference_type (_InputIterator, _InputIterator)' inline
| | |-ParmVarDecl 0x2602fe0 <col:14, col:29> col:29 referenced __first '_InputIterator'
| | |-ParmVarDecl 0x2603050 <col:38, col:53> col:53 referenced __last '_InputIterator'
| | `-CompoundStmt 0x2603480 <line:136:5, line:140:5>
| | `-ReturnStmt 0x2603468 <line:138:7, line:139:42>
| | `-CallExpr 0x2603428 <line:138:14, line:139:42> '<dependent type>'
| | |-UnresolvedLookupExpr 0x2603298 <line:138:14, col:19> '<overloaded function type>' lvalue (no ADL) = '__distance' 0x269a838 0x2601f78 0x26026d8 0x2602d98
| | |-DeclRefExpr 0x2603308 <col:30> '_InputIterator' lvalue ParmVar 0x2602fe0 '__first' '_InputIterator'
| | |-DeclRefExpr 0x2603330 <col:39> '_InputIterator' lvalue ParmVar 0x2603050 '__last' '_InputIterator'
| | `-CallExpr 0x26033f8 <line:139:9, col:41> '<dependent type>'
| | |-UnresolvedLookupExpr 0x2603378 <col:9, col:14> '<overloaded function type>' lvalue (no ADL) = '__iterator_category' 0x26978f8
| | `-DeclRefExpr 0x26033d0 <col:34> '_InputIterator' lvalue ParmVar 0x2602fe0 '__first' '_InputIterator'
| |-FunctionTemplateDecl 0x26038c8 <line:142:3, line:151:5> line:144:5 __advance
| | |-TemplateTypeParmDecl 0x26034a0 <line:142:12, col:21> col:21 referenced typename _InputIterator
| | |-TemplateTypeParmDecl 0x2603508 <col:37, col:46> col:46 referenced typename _Distance
| | `-FunctionDecl 0x2603820 <line:143:5, line:151:5> line:144:5 __advance 'void (_InputIterator &, _Distance, struct std::input_iterator_tag)' inline
| | |-ParmVarDecl 0x26035d8 <col:15, col:31> col:31 referenced __i '_InputIterator &'
| | |-ParmVarDecl 0x2603648 <col:36, col:46> col:46 referenced __n '_Distance'
| | |-ParmVarDecl 0x26036b8 <col:51> col:69 'struct std::input_iterator_tag'
| | `-CompoundStmt 0x2603a10 <line:145:5, line:151:5>
| | |-NullStmt 0x2603930 <line:148:33>
| | `-WhileStmt 0x26039f0 <line:149:7, line:150:4>
| | |-<<<NULL>>>
| | |-UnaryOperator 0x2603988 <line:149:14, col:17> '<dependent type>' postfix '--'
| | | `-DeclRefExpr 0x2603940 <col:14> '_Distance' lvalue ParmVar 0x2603648 '__n' '_Distance'
| | `-UnaryOperator 0x26039d0 <line:150:2, col:4> '<dependent type>' prefix '++'
| | `-DeclRefExpr 0x26039a8 <col:4> '_InputIterator' lvalue ParmVar 0x26035d8 '__i' '_InputIterator &'
| |-FunctionTemplateDecl 0x2603e38 <line:153:3, line:167:5> line:155:5 __advance
| | |-TemplateTypeParmDecl 0x2603a38 <line:153:12, col:21> col:21 referenced typename _BidirectionalIterator
| | |-TemplateTypeParmDecl 0x2603aa8 <col:45, col:54> col:54 referenced typename _Distance
| | `-FunctionDecl 0x2603d90 <line:154:5, line:167:5> line:155:5 __advance 'void (_BidirectionalIterator &, _Distance, struct std::bidirectional_iterator_tag)' inline
| | |-ParmVarDecl 0x2603b78 <col:15, col:39> col:39 referenced __i '_BidirectionalIterator &'
| | |-ParmVarDecl 0x2603be8 <col:44, col:54> col:54 referenced __n '_Distance'
| | |-ParmVarDecl 0x2603c58 <line:156:8> col:34 'struct std::bidirectional_iterator_tag'
| | `-CompoundStmt 0x2604160 <line:157:5, line:167:5>
| | `-IfStmt 0x2604128 <line:161:7, line:166:6>
| | |-<<<NULL>>>
| | |-<<<NULL>>>
| | |-CXXOperatorCallExpr 0x2603f40 <line:161:11, col:17> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x2603ee8 <col:15> '<overloaded function type>' lvalue (ADL) = 'operator>' 0x268ea08
| | | |-DeclRefExpr 0x2603ea0 <col:11> '_Distance' lvalue ParmVar 0x2603be8 '__n' '_Distance'
| | | `-IntegerLiteral 0x2603ec8 <col:17> 'int' 0
| | |-WhileStmt 0x2604038 <line:162:9, line:163:6>
| | | |-<<<NULL>>>
| | | |-UnaryOperator 0x2603fd0 <line:162:16, col:19> '<dependent type>' postfix '--'
| | | | `-DeclRefExpr 0x2603f88 <col:16> '_Distance' lvalue ParmVar 0x2603be8 '__n' '_Distance'
| | | `-UnaryOperator 0x2604018 <line:163:4, col:6> '<dependent type>' prefix '++'
| | | `-DeclRefExpr 0x2603ff0 <col:6> '_BidirectionalIterator' lvalue ParmVar 0x2603b78 '__i' '_BidirectionalIterator &'
| | `-WhileStmt 0x2604108 <line:165:9, line:166:6>
| | |-<<<NULL>>>
| | |-UnaryOperator 0x26040a0 <line:165:16, col:19> '<dependent type>' postfix '++'
| | | `-DeclRefExpr 0x2604058 <col:16> '_Distance' lvalue ParmVar 0x2603be8 '__n' '_Distance'
| | `-UnaryOperator 0x26040e8 <line:166:4, col:6> '<dependent type>' prefix '--'
| | `-DeclRefExpr 0x26040c0 <col:6> '_BidirectionalIterator' lvalue ParmVar 0x2603b78 '__i' '_BidirectionalIterator &'
| |-FunctionTemplateDecl 0x2604578 <line:169:3, line:178:5> line:171:5 __advance
| | |-TemplateTypeParmDecl 0x2604180 <line:169:12, col:21> col:21 referenced typename _RandomAccessIterator
| | |-TemplateTypeParmDecl 0x26041e8 <col:44, col:53> col:53 referenced typename _Distance
| | `-FunctionDecl 0x26044d0 <line:170:5, line:178:5> line:171:5 __advance 'void (_RandomAccessIterator &, _Distance, struct std::random_access_iterator_tag)' inline
| | |-ParmVarDecl 0x26042b8 <col:15, col:38> col:38 referenced __i '_RandomAccessIterator &'
| | |-ParmVarDecl 0x2604328 <col:43, col:53> col:53 referenced __n '_Distance'
| | |-ParmVarDecl 0x2604398 <line:172:15> col:41 'struct std::random_access_iterator_tag'
| | `-CompoundStmt 0x2604668 <line:173:5, line:178:5>
| | `-CompoundAssignOperator 0x2604630 <line:177:7, col:14> '<dependent type>' lvalue '+=' ComputeLHSTy='<dependent type>' ComputeResultTy='<dependent type>'
| | |-DeclRefExpr 0x26045e0 <col:7> '_RandomAccessIterator' lvalue ParmVar 0x26042b8 '__i' '_RandomAccessIterator &'
| | `-DeclRefExpr 0x2604608 <col:14> '_Distance' lvalue ParmVar 0x2604328 '__n' '_Distance'
| `-FunctionTemplateDecl 0x26a5c38 <line:192:3, line:199:5> line:194:5 advance
| |-TemplateTypeParmDecl 0x2604688 <line:192:12, col:21> col:21 referenced typename _InputIterator
| |-TemplateTypeParmDecl 0x26046f8 <col:37, col:46> col:46 referenced typename _Distance
| `-FunctionDecl 0x26a5b90 <line:193:5, line:199:5> line:194:5 advance 'void (_InputIterator &, _Distance)' inline
| |-ParmVarDecl 0x26a5a10 <col:13, col:29> col:29 referenced __i '_InputIterator &'
| |-ParmVarDecl 0x26a5a80 <col:34, col:44> col:44 referenced __n '_Distance'
| `-CompoundStmt 0x26a6098 <line:195:5, line:199:5>
| |-DeclStmt 0x26a5e98 <line:197:7, col:74>
| | `-VarDecl 0x26a5e10 <col:7, col:71> col:65 referenced __d 'typename iterator_traits<_InputIterator>::difference_type' cinit
| | `-DeclRefExpr 0x26a5e70 <col:71> '_Distance' lvalue ParmVar 0x26a5a80 '__n' '_Distance'
| `-CallExpr 0x26a6058 <line:198:7, col:61> '<dependent type>'
| |-UnresolvedLookupExpr 0x26a5ed0 <col:7, col:12> '<overloaded function type>' lvalue (no ADL) = '__advance' 0x26038c8 0x2603e38 0x2604578
| |-DeclRefExpr 0x26a5f38 <col:22> '_InputIterator' lvalue ParmVar 0x26a5a10 '__i' '_InputIterator &'
| |-DeclRefExpr 0x26a5f60 <col:27> 'typename iterator_traits<_InputIterator>::difference_type' lvalue Var 0x26a5e10 '__d' 'typename iterator_traits<_InputIterator>::difference_type'
| `-CallExpr 0x26a6028 <col:32, col:60> '<dependent type>'
| |-UnresolvedLookupExpr 0x26a5fa8 <col:32, col:37> '<overloaded function type>' lvalue (no ADL) = '__iterator_category' 0x26978f8
| `-DeclRefExpr 0x26a6000 <col:57> '_InputIterator' lvalue ParmVar 0x26a5a10 '__i' '_InputIterator &'
|-NamespaceDecl 0x26a60f0 prev 0x2699c58 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_iterator.h:68:1, line:741:1> line:68:11 std
| |-original Namespace 0x25fd3b0 'std'
| |-VisibilityAttr 0x26a6158 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:67:49, col:67> Default
| |-ClassTemplateDecl 0x26a62a8 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_iterator.h:96:3, line:278:5> line:97:11 reverse_iterator
| | |-TemplateTypeParmDecl 0x26a6190 <line:96:12, col:21> col:21 referenced typename _Iterator
| | |-CXXRecordDecl 0x26a6210 <line:97:5, line:278:5> line:97:11 class reverse_iterator definition
| | | |-public 'iterator<typename iterator_traits<_Iterator>::iterator_category, typename iterator_traits<_Iterator>::value_type, typename iterator_traits<_Iterator>::difference_type, typename iterator_traits<_Iterator>::pointer, typename iterator_traits<_Iterator>::reference>'
| | | |-CXXRecordDecl 0x26a9578 <col:5, col:11> col:11 implicit referenced class reverse_iterator
| | | |-AccessSpecDecl 0x26a9610 <line:104:5, col:14> col:5 protected
| | | |-FieldDecl 0x26a9648 <line:105:7, col:17> col:17 referenced current '_Iterator'
| | | |-TypedefDecl 0x26a9798 <line:107:7, col:43> col:43 referenced __traits_type 'iterator_traits<_Iterator>'
| | | | `-TemplateSpecializationType 0x26a96f0 'iterator_traits<_Iterator>' dependent iterator_traits
| | | | `-TemplateArgument type '_Iterator'
| | | |-AccessSpecDecl 0x26a97e8 <line:109:5, col:11> col:5 public
| | | |-TypedefDecl 0x26a9820 <line:110:7, col:29> col:29 referenced iterator_type '_Iterator'
| | | | `-TemplateTypeParmType 0x26a61d0 '_Iterator' dependent depth 0 index 0
| | | | `-TemplateTypeParm 0x26a6190 '_Iterator'
| | | |-TypedefDecl 0x26a9930 <line:111:7, col:55> col:55 referenced difference_type 'typename __traits_type::difference_type'
| | | | `-DependentNameType 0x26a98c0 'typename __traits_type::difference_type' dependent
| | | |-TypedefDecl 0x26a9a10 <line:112:7, col:48> col:48 referenced pointer 'typename __traits_type::pointer'
| | | | `-DependentNameType 0x26a99a0 'typename __traits_type::pointer' dependent
| | | |-TypedefDecl 0x26a9af0 <line:113:7, col:50> col:50 referenced reference 'typename __traits_type::reference'
| | | | `-DependentNameType 0x26a9a80 'typename __traits_type::reference' dependent
| | | |-CXXConstructorDecl 0x26a9b80 <line:121:7, col:40> col:7 reverse_iterator<_Iterator> 'void (void)'
| | | | |-CXXCtorInitializer Field 0x26a9648 'current' '_Iterator'
| | | | | `-ParenListExpr 0x26ae508 <col:35, col:36> 'NULL TYPE'
| | | | `-CompoundStmt 0x26ae560 <col:38, col:40>
| | | |-CXXConstructorDecl 0x26a9d70 <line:126:7, line:127:60> col:7 reverse_iterator<_Iterator> 'void (iterator_type)'
| | | | |-ParmVarDecl 0x26a9c70 <col:24, col:38> col:38 referenced __x 'iterator_type':'_Iterator'
| | | | |-CXXCtorInitializer Field 0x26a9648 'current' '_Iterator'
| | | | | `-ParenListExpr 0x26ae5a0 <col:52, col:56> 'NULL TYPE'
| | | | | `-DeclRefExpr 0x26ae578 <col:53> 'iterator_type':'_Iterator' lvalue ParmVar 0x26a9c70 '__x' 'iterator_type':'_Iterator'
| | | | `-CompoundStmt 0x26ae600 <col:58, col:60>
| | | |-CXXConstructorDecl 0x26ab900 <line:132:7, line:133:32> line:132:7 reverse_iterator<_Iterator> 'void (const reverse_iterator<_Iterator> &)'
| | | | |-ParmVarDecl 0x26a9e68 <col:24, col:48> col:48 referenced __x 'const reverse_iterator<_Iterator> &'
| | | | |-CXXCtorInitializer Field 0x26a9648 'current' '_Iterator'
| | | | | `-ParenListExpr 0x26ae698 <line:133:16, col:28> 'NULL TYPE'
| | | | | `-CXXDependentScopeMemberExpr 0x26ae640 <col:17, col:21> '<dependent type>' lvalue
| | | | | `-DeclRefExpr 0x26ae618 <col:17> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26a9e68 '__x' 'const reverse_iterator<_Iterator> &'
| | | | `-CompoundStmt 0x26ae6f8 <col:30, col:32>
| | | |-FunctionTemplateDecl 0x26abdb8 <line:139:7, line:141:26> line:140:9 reverse_iterator<_Iterator>
| | | | |-TemplateTypeParmDecl 0x26ab9c0 <line:139:16, col:25> col:25 referenced typename _Iter
| | | | `-CXXConstructorDecl 0x26abd00 <line:140:9, line:141:26> line:140:9 reverse_iterator<_Iterator> 'void (const reverse_iterator<_Iter> &)'
| | | | |-ParmVarDecl 0x26abc00 <col:26, col:57> col:57 referenced __x 'const reverse_iterator<_Iter> &'
| | | | |-CXXCtorInitializer Field 0x26a9648 'current' '_Iterator'
| | | | | `-ParenListExpr 0x26ae7b8 <line:141:11, col:22> 'NULL TYPE'
| | | | | `-CallExpr 0x26ae790 <col:12, col:21> '<dependent type>'
| | | | | `-CXXDependentScopeMemberExpr 0x26ae738 <col:12, col:16> '<dependent type>' lvalue
| | | | | `-DeclRefExpr 0x26ae710 <col:12> 'const reverse_iterator<_Iter>' lvalue ParmVar 0x26abc00 '__x' 'const reverse_iterator<_Iter> &'
| | | | `-CompoundStmt 0x26ae818 <col:24, col:26>
| | | |-CXXMethodDecl 0x26abe90 <line:146:7, line:148:25> line:147:7 base 'iterator_type (void) const'
| | | | `-CompoundStmt 0x26ae8c0 <line:148:7, col:25>
| | | | `-ReturnStmt 0x26ae8a8 <col:9, col:16>
| | | | `-MemberExpr 0x26ae870 <col:16> 'const _Iterator' lvalue ->current 0x26a9648
| | | | `-CXXThisExpr 0x26ae858 <col:16> 'const reverse_iterator<_Iterator> *' this
| | | |-CXXMethodDecl 0x26abfe0 <line:160:7, line:165:7> line:161:7 referenced operator* 'reference (void) const'
| | | | `-CompoundStmt 0x26aea38 <line:162:7, line:165:7>
| | | | |-DeclStmt 0x26ae9a0 <line:163:2, col:27>
| | | | | `-VarDecl 0x26ae8f0 <col:2, col:20> col:12 referenced __tmp '_Iterator' cinit
| | | | | `-MemberExpr 0x26ae968 <col:20> 'const _Iterator' lvalue ->current 0x26a9648
| | | | | `-CXXThisExpr 0x26ae950 <col:20> 'const reverse_iterator<_Iterator> *' this
| | | | `-ReturnStmt 0x26aea20 <line:164:2, col:12>
| | | | `-UnaryOperator 0x26aea00 <col:9, col:12> '<dependent type>' prefix '*'
| | | | `-UnaryOperator 0x26ae9e0 <col:10, col:12> '<dependent type>' prefix '--'
| | | | `-DeclRefExpr 0x26ae9b8 <col:12> '_Iterator' lvalue Var 0x26ae8f0 '__tmp' '_Iterator'
| | | |-CXXMethodDecl 0x26ac130 <line:172:7, line:174:32> line:173:7 operator-> 'pointer (void) const'
| | | | `-CompoundStmt 0x26aeb30 <line:174:7, col:32>
| | | | `-ReturnStmt 0x26aeb18 <col:9, col:29>
| | | | `-UnaryOperator 0x26aeaf8 <col:16, col:29> '<dependent type>' prefix '&'
| | | | `-ParenExpr 0x26aead8 <col:17, col:29> '<dependent type>'
| | | | `-CallExpr 0x26aeab0 <col:18, col:28> '<dependent type>'
| | | | `-MemberExpr 0x26aea78 <col:18, col:26> '<bound member function type>' ->operator* 0x26abfe0
| | | | `-CXXThisExpr 0x26aea60 <col:18> 'const reverse_iterator<_Iterator> *' this
| | | |-CXXMethodDecl 0x26ac260 <line:181:7, line:186:7> line:182:7 operator++ 'reverse_iterator<_Iterator> &(void)'
| | | | `-CompoundStmt 0x26aec10 <line:183:7, line:186:7>
| | | | |-UnaryOperator 0x26aeba0 <line:184:2, col:4> '<dependent type>' prefix '--'
| | | | | `-MemberExpr 0x26aeb68 <col:4> '_Iterator' lvalue ->current 0x26a9648
| | | | | `-CXXThisExpr 0x26aeb50 <col:4> 'reverse_iterator<_Iterator> *' this
| | | | `-ReturnStmt 0x26aebf8 <line:185:2, col:10>
| | | | `-UnaryOperator 0x26aebd8 <col:9, col:10> '<dependent type>' prefix '*'
| | | | `-CXXThisExpr 0x26aebc0 <col:10> 'reverse_iterator<_Iterator> *' this
| | | |-CXXMethodDecl 0x26ac3e0 <line:193:7, line:199:7> line:194:7 operator++ 'reverse_iterator<_Iterator> (int)'
| | | | |-ParmVarDecl 0x26ac318 <col:18> col:21 'int'
| | | | `-CompoundStmt 0x26aeda8 <line:195:7, line:199:7>
| | | | |-DeclStmt 0x26aece0 <line:196:2, col:32>
| | | | | `-VarDecl 0x26aec48 <col:2, col:28> col:19 referenced __tmp 'reverse_iterator<_Iterator>' nrvo cinit
| | | | | `-UnaryOperator 0x26aecc0 <col:27, col:28> '<dependent type>' prefix '*'
| | | | | `-CXXThisExpr 0x26aeca8 <col:28> 'reverse_iterator<_Iterator> *' this
| | | | |-UnaryOperator 0x26aed48 <line:197:2, col:4> '<dependent type>' prefix '--'
| | | | | `-MemberExpr 0x26aed10 <col:4> '_Iterator' lvalue ->current 0x26a9648
| | | | | `-CXXThisExpr 0x26aecf8 <col:4> 'reverse_iterator<_Iterator> *' this
| | | | `-ReturnStmt 0x26aed90 <line:198:2, col:9>
| | | | `-DeclRefExpr 0x26aed68 <col:9> 'reverse_iterator<_Iterator>' lvalue Var 0x26aec48 '__tmp' 'reverse_iterator<_Iterator>'
| | | |-CXXMethodDecl 0x26ac4b0 <line:206:7, line:211:7> line:207:7 operator-- 'reverse_iterator<_Iterator> &(void)'
| | | | `-CompoundStmt 0x26aee98 <line:208:7, line:211:7>
| | | | |-UnaryOperator 0x26aee28 <line:209:2, col:4> '<dependent type>' prefix '++'
| | | | | `-MemberExpr 0x26aedf0 <col:4> '_Iterator' lvalue ->current 0x26a9648
| | | | | `-CXXThisExpr 0x26aedd8 <col:4> 'reverse_iterator<_Iterator> *' this
| | | | `-ReturnStmt 0x26aee80 <line:210:2, col:10>
| | | | `-UnaryOperator 0x26aee60 <col:9, col:10> '<dependent type>' prefix '*'
| | | | `-CXXThisExpr 0x26aee48 <col:10> 'reverse_iterator<_Iterator> *' this
| | | |-CXXMethodDecl 0x26ac5f0 <line:218:7, line:224:7> line:219:7 operator-- 'reverse_iterator<_Iterator> (int)'
| | | | |-ParmVarDecl 0x26ac568 <col:18> col:21 'int'
| | | | `-CompoundStmt 0x26b0310 <line:220:7, line:224:7>
| | | | |-DeclStmt 0x26b0248 <line:221:2, col:32>
| | | | | `-VarDecl 0x26aeed0 <col:2, col:28> col:19 referenced __tmp 'reverse_iterator<_Iterator>' nrvo cinit
| | | | | `-UnaryOperator 0x26b0228 <col:27, col:28> '<dependent type>' prefix '*'
| | | | | `-CXXThisExpr 0x26b0210 <col:28> 'reverse_iterator<_Iterator> *' this
| | | | |-UnaryOperator 0x26b02b0 <line:222:2, col:4> '<dependent type>' prefix '++'
| | | | | `-MemberExpr 0x26b0278 <col:4> '_Iterator' lvalue ->current 0x26a9648
| | | | | `-CXXThisExpr 0x26b0260 <col:4> 'reverse_iterator<_Iterator> *' this
| | | | `-ReturnStmt 0x26b02f8 <line:223:2, col:9>
| | | | `-DeclRefExpr 0x26b02d0 <col:9> 'reverse_iterator<_Iterator>' lvalue Var 0x26aeed0 '__tmp' 'reverse_iterator<_Iterator>'
| | | |-CXXMethodDecl 0x26ac7d0 <line:231:7, line:233:49> line:232:7 operator+ 'reverse_iterator<_Iterator> (difference_type) const'
| | | | |-ParmVarDecl 0x26ac6d0 <col:17, col:33> col:33 referenced __n 'difference_type':'typename __traits_type::difference_type'
| | | | `-CompoundStmt 0x26b0438 <line:233:7, col:49>
| | | | `-ReturnStmt 0x26b0420 <col:9, col:46>
| | | | `-CXXUnresolvedConstructExpr 0x26b03f0 <col:16, col:46> 'reverse_iterator<_Iterator>'
| | | | `-BinaryOperator 0x26b03c8 <col:33, col:43> '<dependent type>' '-'
| | | | |-MemberExpr 0x26b0368 <col:33> 'const _Iterator' lvalue ->current 0x26a9648
| | | | | `-CXXThisExpr 0x26b0350 <col:33> 'const reverse_iterator<_Iterator> *' this
| | | | `-DeclRefExpr 0x26b03a0 <col:43> 'difference_type':'typename __traits_type::difference_type' lvalue ParmVar 0x26ac6d0 '__n' 'difference_type':'typename __traits_type::difference_type'
| | | |-CXXMethodDecl 0x26adfe0 <line:241:7, line:246:7> line:242:7 operator+= 'reverse_iterator<_Iterator> &(difference_type)'
| | | | |-ParmVarDecl 0x26ac890 <col:18, col:34> col:34 referenced __n 'difference_type':'typename __traits_type::difference_type'
| | | | `-CompoundStmt 0x26b0558 <line:243:7, line:246:7>
| | | | |-CompoundAssignOperator 0x26b04d0 <line:244:2, col:13> '<dependent type>' lvalue '-=' ComputeLHSTy='<dependent type>' ComputeResultTy='<dependent type>'
| | | | | |-MemberExpr 0x26b0470 <col:2> '_Iterator' lvalue ->current 0x26a9648
| | | | | | `-CXXThisExpr 0x26b0458 <col:2> 'reverse_iterator<_Iterator> *' this
| | | | | `-DeclRefExpr 0x26b04a8 <col:13> 'difference_type':'typename __traits_type::difference_type' lvalue ParmVar 0x26ac890 '__n' 'difference_type':'typename __traits_type::difference_type'
| | | | `-ReturnStmt 0x26b0540 <line:245:2, col:10>
| | | | `-UnaryOperator 0x26b0520 <col:9, col:10> '<dependent type>' prefix '*'
| | | | `-CXXThisExpr 0x26b0508 <col:10> 'reverse_iterator<_Iterator> *' this
| | | |-CXXMethodDecl 0x26ae128 <line:253:7, line:255:49> line:254:7 operator- 'reverse_iterator<_Iterator> (difference_type) const'
| | | | |-ParmVarDecl 0x26ae0a0 <col:17, col:33> col:33 referenced __n 'difference_type':'typename __traits_type::difference_type'
| | | | `-CompoundStmt 0x26b0678 <line:255:7, col:49>
| | | | `-ReturnStmt 0x26b0660 <col:9, col:46>
| | | | `-CXXUnresolvedConstructExpr 0x26b0630 <col:16, col:46> 'reverse_iterator<_Iterator>'
| | | | `-BinaryOperator 0x26b0608 <col:33, col:43> '<dependent type>' '+'
| | | | |-MemberExpr 0x26b05a8 <col:33> 'const _Iterator' lvalue ->current 0x26a9648
| | | | | `-CXXThisExpr 0x26b0590 <col:33> 'const reverse_iterator<_Iterator> *' this
| | | | `-DeclRefExpr 0x26b05e0 <col:43> 'difference_type':'typename __traits_type::difference_type' lvalue ParmVar 0x26ae0a0 '__n' 'difference_type':'typename __traits_type::difference_type'
| | | |-CXXMethodDecl 0x26ae270 <line:263:7, line:268:7> line:264:7 operator-= 'reverse_iterator<_Iterator> &(difference_type)'
| | | | |-ParmVarDecl 0x26ae1e8 <col:18, col:34> col:34 referenced __n 'difference_type':'typename __traits_type::difference_type'
| | | | `-CompoundStmt 0x26b0798 <line:265:7, line:268:7>
| | | | |-CompoundAssignOperator 0x26b0710 <line:266:2, col:13> '<dependent type>' lvalue '+=' ComputeLHSTy='<dependent type>' ComputeResultTy='<dependent type>'
| | | | | |-MemberExpr 0x26b06b0 <col:2> '_Iterator' lvalue ->current 0x26a9648
| | | | | | `-CXXThisExpr 0x26b0698 <col:2> 'reverse_iterator<_Iterator> *' this
| | | | | `-DeclRefExpr 0x26b06e8 <col:13> 'difference_type':'typename __traits_type::difference_type' lvalue ParmVar 0x26ae1e8 '__n' 'difference_type':'typename __traits_type::difference_type'
| | | | `-ReturnStmt 0x26b0780 <line:267:2, col:10>
| | | | `-UnaryOperator 0x26b0760 <col:9, col:10> '<dependent type>' prefix '*'
| | | | `-CXXThisExpr 0x26b0748 <col:10> 'reverse_iterator<_Iterator> *' this
| | | `-CXXMethodDecl 0x26ae430 <line:275:7, line:277:32> line:276:7 operator[] 'reference (difference_type) const'
| | | |-ParmVarDecl 0x26ae330 <col:18, col:34> col:34 referenced __n 'difference_type':'typename __traits_type::difference_type'
| | | `-CompoundStmt 0x26b08a0 <line:277:7, col:32>
| | | `-ReturnStmt 0x26b0888 <col:9, col:29>
| | | `-UnaryOperator 0x26b0868 <col:16, col:29> '<dependent type>' prefix '*'
| | | `-ParenExpr 0x26b0848 <col:17, col:29> '<dependent type>'
| | | `-BinaryOperator 0x26b0820 <col:18, col:26> '<dependent type>' '+'
| | | |-UnaryOperator 0x26b07d8 <col:18, col:19> '<dependent type>' prefix '*'
| | | | `-CXXThisExpr 0x26b07c0 <col:19> 'const reverse_iterator<_Iterator> *' this
| | | `-DeclRefExpr 0x26b07f8 <col:26> 'difference_type':'typename __traits_type::difference_type' lvalue ParmVar 0x26ae330 '__n' 'difference_type':'typename __traits_type::difference_type'
| | |-ClassTemplateSpecializationDecl 0x27ae840 <line:96:3, line:278:5> line:97:11 class reverse_iterator definition
| | | |-public 'iterator<typename iterator_traits<struct _Bit_const_iterator>::iterator_category, typename iterator_traits<struct _Bit_const_iterator>::value_type, typename iterator_traits<struct _Bit_const_iterator>::difference_type, typename iterator_traits<struct _Bit_const_iterator>::pointer, typename iterator_traits<struct _Bit_const_iterator>::reference>':'struct std::iterator<struct std::random_access_iterator_tag, _Bool, long, const _Bool *, _Bool>'
| | | |-TemplateArgument type 'struct std::_Bit_const_iterator'
| | | |-CXXRecordDecl 0x27c95d8 prev 0x27ae840 <col:5, col:11> col:11 implicit class reverse_iterator
| | | |-AccessSpecDecl 0x27c9670 <line:104:5, col:14> col:5 protected
| | | |-FieldDecl 0x27c96a8 <line:105:7, col:17> col:17 current 'struct std::_Bit_const_iterator':'struct std::_Bit_const_iterator'
| | | |-TypedefDecl 0x27c9778 <line:107:7, col:43> col:43 __traits_type 'iterator_traits<struct std::_Bit_const_iterator>':'struct std::iterator_traits<struct std::_Bit_const_iterator>'
| | | | `-TemplateSpecializationType 0x27c9700 'iterator_traits<struct std::_Bit_const_iterator>' sugar iterator_traits
| | | | |-TemplateArgument type 'struct std::_Bit_const_iterator':'struct std::_Bit_const_iterator'
| | | | `-RecordType 0x27c8100 'struct std::iterator_traits<struct std::_Bit_const_iterator>'
| | | | `-ClassTemplateSpecialization 0x27c8018 'iterator_traits'
| | | |-AccessSpecDecl 0x27c97c8 <line:109:5, col:11> col:5 public
| | | |-TypedefDecl 0x27c9800 <line:110:7, col:29> col:29 iterator_type 'struct std::_Bit_const_iterator':'struct std::_Bit_const_iterator'
| | | | `-SubstTemplateTypeParmType 0x27c7fe0 'struct std::_Bit_const_iterator' sugar
| | | | |-TemplateTypeParmType 0x26a61d0 '_Iterator' dependent depth 0 index 0
| | | | | `-TemplateTypeParm 0x26a6190 '_Iterator'
| | | | `-RecordType 0x27dee10 'struct std::_Bit_const_iterator'
| | | | `-CXXRecord 0x27ded70 '_Bit_const_iterator'
| | | |-TypedefDecl 0x27c9900 <line:111:7, col:55> col:55 difference_type 'typename __traits_type::difference_type':'long'
| | | | `-ElaboratedType 0x27c98b0 'typename __traits_type::difference_type' sugar
| | | | `-TypedefType 0x27c8d20 'difference_type' sugar
| | | | |-Typedef 0x27c88d0 'difference_type'
| | | | `-ElaboratedType 0x27c8880 'typename struct _Bit_const_iterator::difference_type' sugar
| | | | `-TypedefType 0x279e490 'difference_type' sugar
| | | | |-Typedef 0x27a7c58 'difference_type'
| | | | `-SubstTemplateTypeParmType 0x27a7c20 'long' sugar
| | | | |-TemplateTypeParmType 0x2690e80 '_Distance' dependent depth 0 index 2
| | | | | `-TemplateTypeParm 0x2690e40 '_Distance'
| | | | `-BuiltinType 0x259fe30 'long'
| | | |-TypedefDecl 0x27c99c0 <line:112:7, col:48> col:48 pointer 'typename __traits_type::pointer':'const _Bool *'
| | | | `-ElaboratedType 0x27c9970 'typename __traits_type::pointer' sugar
| | | | `-TypedefType 0x27c8e40 'pointer' sugar
| | | | |-Typedef 0x27c89b0 'pointer'
| | | | `-ElaboratedType 0x27c8960 'typename struct _Bit_const_iterator::pointer' sugar
| | | | `-TypedefType 0x27c8940 'pointer' sugar
| | | | |-Typedef 0x27df068 'pointer'
| | | | `-PointerType 0x27df030 'const _Bool *'
| | | | `-QualType 0x259fd91 'const _Bool' const
| | | | `-BuiltinType 0x259fd90 '_Bool'
| | | |-TypedefDecl 0x27c9a80 <line:113:7, col:50> col:50 reference 'typename __traits_type::reference':'_Bool'
| | | | `-ElaboratedType 0x27c9a30 'typename __traits_type::reference' sugar
| | | | `-TypedefType 0x27c8f60 'reference' sugar
| | | | |-Typedef 0x27c8a90 'reference'
| | | | `-ElaboratedType 0x27c8a40 'typename struct _Bit_const_iterator::reference' sugar
| | | | `-TypedefType 0x27c8a20 'reference' sugar
| | | | |-Typedef 0x27def78 'reference'
| | | | `-BuiltinType 0x259fd90 '_Bool'
| | | |-CXXConstructorDecl 0x27c9b10 <line:121:7> col:7 reverse_iterator 'void (void)'
| | | |-CXXConstructorDecl 0x27c9d30 <line:126:7, line:127:7> col:7 reverse_iterator 'void (iterator_type)'
| | | | `-ParmVarDecl 0x27c9c10 <col:24, col:38> col:38 __x 'iterator_type':'struct std::_Bit_const_iterator'
| | | |-CXXConstructorDecl 0x27c9f20 <line:132:7> col:7 referenced reverse_iterator 'void (const class std::reverse_iterator<struct std::_Bit_const_iterator> &)'
| | | | `-ParmVarDecl 0x27c9e38 <col:24, col:48> col:48 __x 'const class std::reverse_iterator<struct std::_Bit_const_iterator> &'
| | | |-FunctionTemplateDecl 0x27ca318 <line:139:7, line:140:9> col:9 reverse_iterator
| | | | |-TemplateTypeParmDecl 0x27c9ff0 <line:139:16, col:25> col:25 typename _Iter
| | | | |-CXXConstructorDecl 0x27ca260 <line:140:9> col:9 reverse_iterator 'void (const reverse_iterator<_Iter> &)'
| | | | | `-ParmVarDecl 0x27ca180 <col:26, col:57> col:57 __x 'const reverse_iterator<_Iter> &'
| | | | `-CXXConstructorDecl 0x27cc600 <col:9> col:9 reverse_iterator 'void (const reverse_iterator<struct std::_Bit_const_iterator> &)'
| | | | |-TemplateArgument type 'struct std::_Bit_const_iterator'
| | | | `-ParmVarDecl 0x27cc540 <col:26, col:57> col:57 __x 'const reverse_iterator<struct std::_Bit_const_iterator> &'
| | | |-CXXMethodDecl 0x27ca450 <line:146:7, line:148:25> line:147:7 base 'iterator_type (void) const'
| | | |-CXXMethodDecl 0x27ca580 <line:160:7, line:165:7> line:161:7 operator* 'reference (void) const'
| | | |-CXXMethodDecl 0x27ca6e0 <line:172:7, line:174:32> line:173:7 operator-> 'pointer (void) const'
| | | |-CXXMethodDecl 0x27cb6c0 <line:181:7, line:186:7> line:182:7 operator++ 'class std::reverse_iterator<struct std::_Bit_const_iterator> &(void)'
| | | |-CXXMethodDecl 0x27cb840 <line:193:7, line:199:7> line:194:7 operator++ 'class std::reverse_iterator<struct std::_Bit_const_iterator> (int)'
| | | | `-ParmVarDecl 0x27cb778 <col:18> col:21 'int'
| | | |-CXXMethodDecl 0x27cb920 <line:206:7, line:211:7> line:207:7 operator-- 'class std::reverse_iterator<struct std::_Bit_const_iterator> &(void)'
| | | |-CXXMethodDecl 0x27cba60 <line:218:7, line:224:7> line:219:7 operator-- 'class std::reverse_iterator<struct std::_Bit_const_iterator> (int)'
| | | | `-ParmVarDecl 0x27cb9d8 <col:18> col:21 'int'
| | | |-CXXMethodDecl 0x27cbc50 <line:231:7, line:233:49> line:232:7 operator+ 'class std::reverse_iterator<struct std::_Bit_const_iterator> (difference_type) const'
| | | | `-ParmVarDecl 0x27cbb50 <col:17, col:33> col:33 __n 'difference_type':'long'
| | | |-CXXMethodDecl 0x27cbe20 <line:241:7, line:246:7> line:242:7 operator+= 'class std::reverse_iterator<struct std::_Bit_const_iterator> &(difference_type)'
| | | | `-ParmVarDecl 0x27cbd20 <col:18, col:34> col:34 __n 'difference_type':'long'
| | | |-CXXMethodDecl 0x27cbf78 <line:253:7, line:255:49> line:254:7 operator- 'class std::reverse_iterator<struct std::_Bit_const_iterator> (difference_type) const'
| | | | `-ParmVarDecl 0x27cbef0 <col:17, col:33> col:33 __n 'difference_type':'long'
| | | |-CXXMethodDecl 0x27cc0d0 <line:263:7, line:268:7> line:264:7 operator-= 'class std::reverse_iterator<struct std::_Bit_const_iterator> &(difference_type)'
| | | | `-ParmVarDecl 0x27cc048 <col:18, col:34> col:34 __n 'difference_type':'long'
| | | `-CXXMethodDecl 0x27cc260 <line:275:7, line:277:32> line:276:7 operator[] 'reference (difference_type) const'
| | | `-ParmVarDecl 0x27cc1a0 <col:18, col:34> col:34 __n 'difference_type':'long'
| | |-ClassTemplateSpecializationDecl 0x27aeaf0 <line:96:3, line:278:5> line:97:11 class reverse_iterator definition
| | | |-public 'iterator<typename iterator_traits<struct _Bit_iterator>::iterator_category, typename iterator_traits<struct _Bit_iterator>::value_type, typename iterator_traits<struct _Bit_iterator>::difference_type, typename iterator_traits<struct _Bit_iterator>::pointer, typename iterator_traits<struct _Bit_iterator>::reference>':'struct std::iterator<struct std::random_access_iterator_tag, _Bool, long, struct std::_Bit_reference *, struct std::_Bit_reference>'
| | | |-TemplateArgument type 'struct std::_Bit_iterator'
| | | |-CXXRecordDecl 0x27c4bf8 prev 0x27aeaf0 <col:5, col:11> col:11 implicit class reverse_iterator
| | | |-AccessSpecDecl 0x27c4c90 <line:104:5, col:14> col:5 protected
| | | |-FieldDecl 0x27c4cc8 <line:105:7, col:17> col:17 current 'struct std::_Bit_iterator':'struct std::_Bit_iterator'
| | | |-TypedefDecl 0x27c4d98 <line:107:7, col:43> col:43 __traits_type 'iterator_traits<struct std::_Bit_iterator>':'struct std::iterator_traits<struct std::_Bit_iterator>'
| | | | `-TemplateSpecializationType 0x27c4d20 'iterator_traits<struct std::_Bit_iterator>' sugar iterator_traits
| | | | |-TemplateArgument type 'struct std::_Bit_iterator':'struct std::_Bit_iterator'
| | | | `-RecordType 0x27c3a80 'struct std::iterator_traits<struct std::_Bit_iterator>'
| | | | `-ClassTemplateSpecialization 0x27c3998 'iterator_traits'
| | | |-AccessSpecDecl 0x27c4de8 <line:109:5, col:11> col:5 public
| | | |-TypedefDecl 0x27c4e20 <line:110:7, col:29> col:29 iterator_type 'struct std::_Bit_iterator':'struct std::_Bit_iterator'
| | | | `-SubstTemplateTypeParmType 0x27c3960 'struct std::_Bit_iterator' sugar
| | | | |-TemplateTypeParmType 0x26a61d0 '_Iterator' dependent depth 0 index 0
| | | | | `-TemplateTypeParm 0x26a6190 '_Iterator'
| | | | `-RecordType 0x27a0280 'struct std::_Bit_iterator'
| | | | `-CXXRecord 0x27a01e0 '_Bit_iterator'
| | | |-TypedefDecl 0x27c4f20 <line:111:7, col:55> col:55 difference_type 'typename __traits_type::difference_type':'long'
| | | | `-ElaboratedType 0x27c4ed0 'typename __traits_type::difference_type' sugar
| | | | `-TypedefType 0x27c4340 'difference_type' sugar
| | | | |-Typedef 0x27c3f10 'difference_type'
| | | | `-ElaboratedType 0x27c3ec0 'typename struct _Bit_iterator::difference_type' sugar
| | | | `-TypedefType 0x279e490 'difference_type' sugar
| | | | |-Typedef 0x27a7c58 'difference_type'
| | | | `-SubstTemplateTypeParmType 0x27a7c20 'long' sugar
| | | | |-TemplateTypeParmType 0x2690e80 '_Distance' dependent depth 0 index 2
| | | | | `-TemplateTypeParm 0x2690e40 '_Distance'
| | | | `-BuiltinType 0x259fe30 'long'
| | | |-TypedefDecl 0x27c4fe0 <line:112:7, col:48> col:48 pointer 'typename __traits_type::pointer':'struct std::_Bit_reference *'
| | | | `-ElaboratedType 0x27c4f90 'typename __traits_type::pointer' sugar
| | | | `-TypedefType 0x27c4460 'pointer' sugar
| | | | |-Typedef 0x27c3ff0 'pointer'
| | | | `-ElaboratedType 0x27c3fa0 'typename struct _Bit_iterator::pointer' sugar
| | | | `-TypedefType 0x27c3f80 'pointer' sugar
| | | | |-Typedef 0x27a0448 'pointer'
| | | | `-PointerType 0x279c750 'struct std::_Bit_reference *'
| | | | `-RecordType 0x279b9d0 'struct std::_Bit_reference'
| | | | `-CXXRecord 0x279b938 '_Bit_reference'
| | | |-TypedefDecl 0x27c50a0 <line:113:7, col:50> col:50 reference 'typename __traits_type::reference':'struct std::_Bit_reference'
| | | | `-ElaboratedType 0x27c5050 'typename __traits_type::reference' sugar
| | | | `-TypedefType 0x27c4580 'reference' sugar
| | | | |-Typedef 0x27c40b0 'reference'
| | | | `-ElaboratedType 0x27c4060 'typename struct _Bit_iterator::reference' sugar
| | | | `-TypedefType 0x27a0920 'reference' sugar
| | | | |-Typedef 0x27a03e8 'reference'
| | | | `-RecordType 0x279b9d0 'struct std::_Bit_reference'
| | | | `-CXXRecord 0x279b938 '_Bit_reference'
| | | |-CXXConstructorDecl 0x27c5130 <line:121:7> col:7 reverse_iterator 'void (void)'
| | | |-CXXConstructorDecl 0x27c5310 <line:126:7, line:127:7> col:7 reverse_iterator 'void (iterator_type)'
| | | | `-ParmVarDecl 0x27c5230 <col:24, col:38> col:38 __x 'iterator_type':'struct std::_Bit_iterator'
| | | |-CXXConstructorDecl 0x27c64f0 <line:132:7> col:7 referenced reverse_iterator 'void (const class std::reverse_iterator<struct std::_Bit_iterator> &)'
| | | | `-ParmVarDecl 0x27c5418 <col:24, col:48> col:48 __x 'const class std::reverse_iterator<struct std::_Bit_iterator> &'
| | | |-FunctionTemplateDecl 0x27c6928 <line:139:7, line:140:9> col:9 reverse_iterator
| | | | |-TemplateTypeParmDecl 0x27c65c0 <line:139:16, col:25> col:25 typename _Iter
| | | | |-CXXConstructorDecl 0x27c6870 <line:140:9> col:9 reverse_iterator 'void (const reverse_iterator<_Iter> &)'
| | | | | `-ParmVarDecl 0x27c6750 <col:26, col:57> col:57 __x 'const reverse_iterator<_Iter> &'
| | | | `-CXXConstructorDecl 0x27c7d70 <col:9> col:9 reverse_iterator 'void (const reverse_iterator<struct std::_Bit_iterator> &)'
| | | | |-TemplateArgument type 'struct std::_Bit_iterator'
| | | | `-ParmVarDecl 0x27c7cb0 <col:26, col:57> col:57 __x 'const reverse_iterator<struct std::_Bit_iterator> &'
| | | |-CXXMethodDecl 0x27c6a60 <line:146:7, line:148:25> line:147:7 base 'iterator_type (void) const'
| | | |-CXXMethodDecl 0x27c6b90 <line:160:7, line:165:7> line:161:7 operator* 'reference (void) const'
| | | |-CXXMethodDecl 0x27c6cf0 <line:172:7, line:174:32> line:173:7 operator-> 'pointer (void) const'
| | | |-CXXMethodDecl 0x27c6e30 <line:181:7, line:186:7> line:182:7 operator++ 'class std::reverse_iterator<struct std::_Bit_iterator> &(void)'
| | | |-CXXMethodDecl 0x27c6fb0 <line:193:7, line:199:7> line:194:7 operator++ 'class std::reverse_iterator<struct std::_Bit_iterator> (int)'
| | | | `-ParmVarDecl 0x27c6ee8 <col:18> col:21 'int'
| | | |-CXXMethodDecl 0x27c7090 <line:206:7, line:211:7> line:207:7 operator-- 'class std::reverse_iterator<struct std::_Bit_iterator> &(void)'
| | | |-CXXMethodDecl 0x27c71d0 <line:218:7, line:224:7> line:219:7 operator-- 'class std::reverse_iterator<struct std::_Bit_iterator> (int)'
| | | | `-ParmVarDecl 0x27c7148 <col:18> col:21 'int'
| | | |-CXXMethodDecl 0x27c73c0 <line:231:7, line:233:49> line:232:7 operator+ 'class std::reverse_iterator<struct std::_Bit_iterator> (difference_type) const'
| | | | `-ParmVarDecl 0x27c72c0 <col:17, col:33> col:33 __n 'difference_type':'long'
| | | |-CXXMethodDecl 0x27c7590 <line:241:7, line:246:7> line:242:7 operator+= 'class std::reverse_iterator<struct std::_Bit_iterator> &(difference_type)'
| | | | `-ParmVarDecl 0x27c7490 <col:18, col:34> col:34 __n 'difference_type':'long'
| | | |-CXXMethodDecl 0x27c76e8 <line:253:7, line:255:49> line:254:7 operator- 'class std::reverse_iterator<struct std::_Bit_iterator> (difference_type) const'
| | | | `-ParmVarDecl 0x27c7660 <col:17, col:33> col:33 __n 'difference_type':'long'
| | | |-CXXMethodDecl 0x27c7840 <line:263:7, line:268:7> line:264:7 operator-= 'class std::reverse_iterator<struct std::_Bit_iterator> &(difference_type)'
| | | | `-ParmVarDecl 0x27c77b8 <col:18, col:34> col:34 __n 'difference_type':'long'
| | | `-CXXMethodDecl 0x27c79d0 <line:275:7, line:277:32> line:276:7 operator[] 'reference (difference_type) const'
| | | `-ParmVarDecl 0x27c7910 <col:18, col:34> col:34 __n 'difference_type':'long'
| | |-ClassTemplateSpecializationDecl 0x2811b10 <line:96:3, line:278:5> line:97:11 class reverse_iterator
| | | `-TemplateArgument type 'class __gnu_cxx::__normal_iterator<const struct A *, class std::vector<struct A, class std::allocator<struct A> > >'
| | `-ClassTemplateSpecializationDecl 0x2811d60 <line:96:3, line:278:5> line:97:11 class reverse_iterator
| | `-TemplateArgument type 'class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > >'
| |-FunctionTemplateDecl 0x26b0e08 <line:290:3, line:294:40> line:292:5 operator==
| | |-TemplateTypeParmDecl 0x26b08c0 <line:290:12, col:21> col:21 referenced typename _Iterator
| | `-FunctionDecl 0x26b0d60 <line:291:5, line:294:40> line:292:5 operator== '_Bool (const reverse_iterator<_Iterator> &, const reverse_iterator<_Iterator> &)' inline
| | |-ParmVarDecl 0x26b0ab0 <col:16, col:51> col:51 referenced __x 'const reverse_iterator<_Iterator> &'
| | |-ParmVarDecl 0x26b0c50 <line:293:9, col:44> col:44 referenced __y 'const reverse_iterator<_Iterator> &'
| | `-CompoundStmt 0x26b1078 <line:294:5, col:40>
| | `-ReturnStmt 0x26b1060 <col:7, col:37>
| | `-CXXOperatorCallExpr 0x26b1018 <col:14, col:37> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26b0fb8 <col:25> '<overloaded function type>' lvalue (ADL) = 'operator==' 0x26b0e08 0x268cb48
| | |-CallExpr 0x26b0ee8 <col:14, col:23> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26b0e90 <col:14, col:18> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26b0e68 <col:14> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26b0ab0 '__x' 'const reverse_iterator<_Iterator> &'
| | `-CallExpr 0x26b0f90 <col:28, col:37> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26b0f38 <col:28, col:32> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26b0f10 <col:28> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26b0c50 '__y' 'const reverse_iterator<_Iterator> &'
| |-FunctionTemplateDecl 0x26b1ca8 <line:296:3, line:300:39> line:298:5 operator<
| | |-TemplateTypeParmDecl 0x26b1098 <line:296:12, col:21> col:21 referenced typename _Iterator
| | `-FunctionDecl 0x26b1c00 <line:297:5, line:300:39> line:298:5 operator< '_Bool (const reverse_iterator<_Iterator> &, const reverse_iterator<_Iterator> &)' inline
| | |-ParmVarDecl 0x26b1990 <col:15, col:50> col:50 referenced __x 'const reverse_iterator<_Iterator> &'
| | |-ParmVarDecl 0x26b1b30 <line:299:8, col:43> col:43 referenced __y 'const reverse_iterator<_Iterator> &'
| | `-CompoundStmt 0x26b1f18 <line:300:5, col:39>
| | `-ReturnStmt 0x26b1f00 <col:7, col:36>
| | `-CXXOperatorCallExpr 0x26b1eb8 <col:14, col:36> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26b1e58 <col:25> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x26b1ca8 0x268d598
| | |-CallExpr 0x26b1d88 <col:14, col:23> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26b1d30 <col:14, col:18> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26b1d08 <col:14> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26b1b30 '__y' 'const reverse_iterator<_Iterator> &'
| | `-CallExpr 0x26b1e30 <col:27, col:36> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26b1dd8 <col:27, col:31> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26b1db0 <col:27> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26b1990 '__x' 'const reverse_iterator<_Iterator> &'
| |-FunctionTemplateDecl 0x26b2418 <line:302:3, line:306:29> line:304:5 operator!=
| | |-TemplateTypeParmDecl 0x26b1f38 <line:302:12, col:21> col:21 referenced typename _Iterator
| | `-FunctionDecl 0x26b2370 <line:303:5, line:306:29> line:304:5 operator!= '_Bool (const reverse_iterator<_Iterator> &, const reverse_iterator<_Iterator> &)' inline
| | |-ParmVarDecl 0x26b2100 <col:16, col:51> col:51 referenced __x 'const reverse_iterator<_Iterator> &'
| | |-ParmVarDecl 0x26b22a0 <line:305:9, col:44> col:44 referenced __y 'const reverse_iterator<_Iterator> &'
| | `-CompoundStmt 0x26b25c8 <line:306:5, col:29>
| | `-ReturnStmt 0x26b25b0 <col:7, col:26>
| | `-UnaryOperator 0x26b2590 <col:14, col:26> '<dependent type>' prefix '!'
| | `-ParenExpr 0x26b2570 <col:15, col:26> '<dependent type>'
| | `-CXXOperatorCallExpr 0x26b2528 <col:16, col:23> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26b24c8 <col:20> '<overloaded function type>' lvalue (ADL) = 'operator==' 0x26b0e08 0x268cb48
| | |-DeclRefExpr 0x26b2478 <col:16> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26b2100 '__x' 'const reverse_iterator<_Iterator> &'
| | `-DeclRefExpr 0x26b24a0 <col:23> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26b22a0 '__y' 'const reverse_iterator<_Iterator> &'
| |-FunctionTemplateDecl 0x26b2af8 <line:308:3, line:312:25> line:310:5 operator>
| | |-TemplateTypeParmDecl 0x26b25e8 <line:308:12, col:21> col:21 referenced typename _Iterator
| | `-FunctionDecl 0x26b2a50 <line:309:5, line:312:25> line:310:5 operator> '_Bool (const reverse_iterator<_Iterator> &, const reverse_iterator<_Iterator> &)' inline
| | |-ParmVarDecl 0x26b27b0 <col:15, col:50> col:50 referenced __x 'const reverse_iterator<_Iterator> &'
| | |-ParmVarDecl 0x26b2978 <line:311:8, col:43> col:43 referenced __y 'const reverse_iterator<_Iterator> &'
| | `-CompoundStmt 0x26b2c68 <line:312:5, col:25>
| | `-ReturnStmt 0x26b2c50 <col:7, col:20>
| | `-CXXOperatorCallExpr 0x26b2c08 <col:14, col:20> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26b2ba8 <col:18> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x26b1ca8 0x268d598
| | |-DeclRefExpr 0x26b2b58 <col:14> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26b2978 '__y' 'const reverse_iterator<_Iterator> &'
| | `-DeclRefExpr 0x26b2b80 <col:20> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26b27b0 '__x' 'const reverse_iterator<_Iterator> &'
| |-FunctionTemplateDecl 0x26b3168 <line:314:3, line:318:28> line:316:5 operator<=
| | |-TemplateTypeParmDecl 0x26b2c88 <line:314:12, col:21> col:21 referenced typename _Iterator
| | `-FunctionDecl 0x26b30c0 <line:315:5, line:318:28> line:316:5 operator<= '_Bool (const reverse_iterator<_Iterator> &, const reverse_iterator<_Iterator> &)' inline
| | |-ParmVarDecl 0x26b2e50 <col:16, col:51> col:51 referenced __x 'const reverse_iterator<_Iterator> &'
| | |-ParmVarDecl 0x26b2ff0 <line:317:9, col:44> col:44 referenced __y 'const reverse_iterator<_Iterator> &'
| | `-CompoundStmt 0x26b3318 <line:318:5, col:28>
| | `-ReturnStmt 0x26b3300 <col:7, col:25>
| | `-UnaryOperator 0x26b32e0 <col:14, col:25> '<dependent type>' prefix '!'
| | `-ParenExpr 0x26b32c0 <col:15, col:25> '<dependent type>'
| | `-CXXOperatorCallExpr 0x26b3278 <col:16, col:22> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26b3218 <col:20> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x26b1ca8 0x268d598
| | |-DeclRefExpr 0x26b31c8 <col:16> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26b2ff0 '__y' 'const reverse_iterator<_Iterator> &'
| | `-DeclRefExpr 0x26b31f0 <col:22> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26b2e50 '__x' 'const reverse_iterator<_Iterator> &'
| |-FunctionTemplateDecl 0x26b3818 <line:320:3, line:324:28> line:322:5 operator>=
| | |-TemplateTypeParmDecl 0x26b3338 <line:320:12, col:21> col:21 referenced typename _Iterator
| | `-FunctionDecl 0x26b3770 <line:321:5, line:324:28> line:322:5 operator>= '_Bool (const reverse_iterator<_Iterator> &, const reverse_iterator<_Iterator> &)' inline
| | |-ParmVarDecl 0x26b3500 <col:16, col:51> col:51 referenced __x 'const reverse_iterator<_Iterator> &'
| | |-ParmVarDecl 0x26b36a0 <line:323:9, col:44> col:44 referenced __y 'const reverse_iterator<_Iterator> &'
| | `-CompoundStmt 0x26b39f0 <line:324:5, col:28>
| | `-ReturnStmt 0x26b39d8 <col:7, col:25>
| | `-UnaryOperator 0x26b39b8 <col:14, col:25> '<dependent type>' prefix '!'
| | `-ParenExpr 0x26b3998 <col:15, col:25> '<dependent type>'
| | `-CXXOperatorCallExpr 0x26b3950 <col:16, col:22> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26b38c8 <col:20> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x26b1ca8 0x268d598
| | |-DeclRefExpr 0x26b3878 <col:16> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26b3500 '__x' 'const reverse_iterator<_Iterator> &'
| | `-DeclRefExpr 0x26b38a0 <col:22> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26b36a0 '__y' 'const reverse_iterator<_Iterator> &'
| |-FunctionTemplateDecl 0x26b40c8 <line:326:3, line:337:39> line:329:5 operator-
| | |-TemplateTypeParmDecl 0x26b3a10 <line:326:12, col:21> col:21 referenced typename _Iterator
| | `-FunctionDecl 0x26b4020 <line:328:5, line:337:39> line:329:5 operator- 'typename reverse_iterator<_Iterator>::difference_type (const reverse_iterator<_Iterator> &, const reverse_iterator<_Iterator> &)' inline
| | |-ParmVarDecl 0x26b3d60 <col:15, col:50> col:50 referenced __x 'const reverse_iterator<_Iterator> &'
| | |-ParmVarDecl 0x26b3f00 <line:330:8, col:43> col:43 referenced __y 'const reverse_iterator<_Iterator> &'
| | `-CompoundStmt 0x26b4330 <line:337:5, col:39>
| | `-ReturnStmt 0x26b4318 <col:7, col:36>
| | `-CXXOperatorCallExpr 0x26b42d0 <col:14, col:36> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26b4278 <col:25> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8
| | |-CallExpr 0x26b41a8 <col:14, col:23> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26b4150 <col:14, col:18> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26b4128 <col:14> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26b3f00 '__y' 'const reverse_iterator<_Iterator> &'
| | `-CallExpr 0x26b4250 <col:27, col:36> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26b41f8 <col:27, col:31> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26b41d0 <col:27> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26b3d60 '__x' 'const reverse_iterator<_Iterator> &'
| |-FunctionTemplateDecl 0x26b4a08 <line:339:3, line:343:61> line:341:5 operator+
| | |-TemplateTypeParmDecl 0x26b4350 <line:339:12, col:21> col:21 referenced typename _Iterator
| | `-FunctionDecl 0x26b4960 <line:340:5, line:343:61> line:341:5 operator+ 'reverse_iterator<_Iterator> (typename reverse_iterator<_Iterator>::difference_type, const reverse_iterator<_Iterator> &)' inline
| | |-ParmVarDecl 0x26b4620 <col:15, col:69> col:69 referenced __n 'typename reverse_iterator<_Iterator>::difference_type'
| | |-ParmVarDecl 0x26b47c0 <line:342:8, col:43> col:43 referenced __x 'const reverse_iterator<_Iterator> &'
| | `-CompoundStmt 0x26b4d30 <line:343:5, col:61>
| | `-ReturnStmt 0x26b4d18 <col:7, col:58>
| | `-CXXUnresolvedConstructExpr 0x26b4ce8 <col:14, col:58> 'reverse_iterator<_Iterator>'
| | `-CXXOperatorCallExpr 0x26b4ca0 <col:42, col:55> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26b4c48 <col:53> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8
| | |-CallExpr 0x26b4bf8 <col:42, col:51> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26b4ba0 <col:42, col:46> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26b4b78 <col:42> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x26b47c0 '__x' 'const reverse_iterator<_Iterator> &'
| | `-DeclRefExpr 0x26b4c20 <col:55> 'typename reverse_iterator<_Iterator>::difference_type' lvalue ParmVar 0x26b4620 '__n' 'typename reverse_iterator<_Iterator>::difference_type'
| |-FunctionTemplateDecl 0x26b5368 <line:347:3, line:351:40> line:349:5 operator==
| | |-TemplateTypeParmDecl 0x26b4d50 <line:347:12, col:21> col:21 referenced typename _IteratorL
| | |-TemplateTypeParmDecl 0x26b4db8 <col:33, col:42> col:42 referenced typename _IteratorR
| | `-FunctionDecl 0x26b52c0 <line:348:5, line:351:40> line:349:5 operator== '_Bool (const reverse_iterator<_IteratorL> &, const reverse_iterator<_IteratorR> &)' inline
| | |-ParmVarDecl 0x26b4f90 <col:16, col:52> col:52 referenced __x 'const reverse_iterator<_IteratorL> &'
| | |-ParmVarDecl 0x26b51b0 <line:350:9, col:45> col:45 referenced __y 'const reverse_iterator<_IteratorR> &'
| | `-CompoundStmt 0x26b55e0 <line:351:5, col:40>
| | `-ReturnStmt 0x26b55c8 <col:7, col:37>
| | `-CXXOperatorCallExpr 0x26b5580 <col:14, col:37> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26b5518 <col:25> '<overloaded function type>' lvalue (ADL) = 'operator==' 0x26b5368 0x26b0e08 0x268cb48
| | |-CallExpr 0x26b5448 <col:14, col:23> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26b53f0 <col:14, col:18> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26b53c8 <col:14> 'const reverse_iterator<_IteratorL>' lvalue ParmVar 0x26b4f90 '__x' 'const reverse_iterator<_IteratorL> &'
| | `-CallExpr 0x26b54f0 <col:28, col:37> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26b5498 <col:28, col:32> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26b5470 <col:28> 'const reverse_iterator<_IteratorR>' lvalue ParmVar 0x26b51b0 '__y' 'const reverse_iterator<_IteratorR> &'
| |-FunctionTemplateDecl 0x26b5b78 <line:353:3, line:357:39> line:355:5 operator<
| | |-TemplateTypeParmDecl 0x26b5600 <line:353:12, col:21> col:21 referenced typename _IteratorL
| | |-TemplateTypeParmDecl 0x26b5668 <col:33, col:42> col:42 referenced typename _IteratorR
| | `-FunctionDecl 0x26b5ad0 <line:354:5, line:357:39> line:355:5 operator< '_Bool (const reverse_iterator<_IteratorL> &, const reverse_iterator<_IteratorR> &)' inline
| | |-ParmVarDecl 0x26b5840 <col:15, col:51> col:51 referenced __x 'const reverse_iterator<_IteratorL> &'
| | |-ParmVarDecl 0x26b5a00 <line:356:8, col:44> col:44 referenced __y 'const reverse_iterator<_IteratorR> &'
| | `-CompoundStmt 0x26b5df0 <line:357:5, col:39>
| | `-ReturnStmt 0x26b5dd8 <col:7, col:36>
| | `-CXXOperatorCallExpr 0x26b5d90 <col:14, col:36> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26b5d28 <col:25> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x26b5b78 0x26b1ca8 0x268d598
| | |-CallExpr 0x26b5c58 <col:14, col:23> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26b5c00 <col:14, col:18> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26b5bd8 <col:14> 'const reverse_iterator<_IteratorR>' lvalue ParmVar 0x26b5a00 '__y' 'const reverse_iterator<_IteratorR> &'
| | `-CallExpr 0x26b5d00 <col:27, col:36> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26b5ca8 <col:27, col:31> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26b5c80 <col:27> 'const reverse_iterator<_IteratorL>' lvalue ParmVar 0x26b5840 '__x' 'const reverse_iterator<_IteratorL> &'
| |-FunctionTemplateDecl 0x26b6368 <line:359:3, line:363:29> line:361:5 operator!=
| | |-TemplateTypeParmDecl 0x26b5e10 <line:359:12, col:21> col:21 referenced typename _IteratorL
| | |-TemplateTypeParmDecl 0x26b5e78 <col:33, col:42> col:42 referenced typename _IteratorR
| | `-FunctionDecl 0x26b62c0 <line:360:5, line:363:29> line:361:5 operator!= '_Bool (const reverse_iterator<_IteratorL> &, const reverse_iterator<_IteratorR> &)' inline
| | |-ParmVarDecl 0x26b6050 <col:16, col:52> col:52 referenced __x 'const reverse_iterator<_IteratorL> &'
| | |-ParmVarDecl 0x26b61f0 <line:362:9, col:45> col:45 referenced __y 'const reverse_iterator<_IteratorR> &'
| | `-CompoundStmt 0x26b6520 <line:363:5, col:29>
| | `-ReturnStmt 0x26b6508 <col:7, col:26>
| | `-UnaryOperator 0x26b64e8 <col:14, col:26> '<dependent type>' prefix '!'
| | `-ParenExpr 0x26b64c8 <col:15, col:26> '<dependent type>'
| | `-CXXOperatorCallExpr 0x26b6480 <col:16, col:23> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26b6418 <col:20> '<overloaded function type>' lvalue (ADL) = 'operator==' 0x26b5368 0x26b0e08 0x268cb48
| | |-DeclRefExpr 0x26b63c8 <col:16> 'const reverse_iterator<_IteratorL>' lvalue ParmVar 0x26b6050 '__x' 'const reverse_iterator<_IteratorL> &'
| | `-DeclRefExpr 0x26b63f0 <col:23> 'const reverse_iterator<_IteratorR>' lvalue ParmVar 0x26b61f0 '__y' 'const reverse_iterator<_IteratorR> &'
| |-FunctionTemplateDecl 0x26b6af8 <line:365:3, line:369:25> line:367:5 operator>
| | |-TemplateTypeParmDecl 0x26b6540 <line:365:12, col:21> col:21 referenced typename _IteratorL
| | |-TemplateTypeParmDecl 0x26b65a8 <col:33, col:42> col:42 referenced typename _IteratorR
| | `-FunctionDecl 0x26b6a50 <line:366:5, line:369:25> line:367:5 operator> '_Bool (const reverse_iterator<_IteratorL> &, const reverse_iterator<_IteratorR> &)' inline
| | |-ParmVarDecl 0x26b6780 <col:15, col:51> col:51 referenced __x 'const reverse_iterator<_IteratorL> &'
| | |-ParmVarDecl 0x26b6980 <line:368:8, col:44> col:44 referenced __y 'const reverse_iterator<_IteratorR> &'
| | `-CompoundStmt 0x26b6c70 <line:369:5, col:25>
| | `-ReturnStmt 0x26b6c58 <col:7, col:20>
| | `-CXXOperatorCallExpr 0x26b6c10 <col:14, col:20> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26b6ba8 <col:18> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x26b5b78 0x26b1ca8 0x268d598
| | |-DeclRefExpr 0x26b6b58 <col:14> 'const reverse_iterator<_IteratorR>' lvalue ParmVar 0x26b6980 '__y' 'const reverse_iterator<_IteratorR> &'
| | `-DeclRefExpr 0x26b6b80 <col:20> 'const reverse_iterator<_IteratorL>' lvalue ParmVar 0x26b6780 '__x' 'const reverse_iterator<_IteratorL> &'
| |-FunctionTemplateDecl 0x26b71e8 <line:371:3, line:375:28> line:373:5 operator<=
| | |-TemplateTypeParmDecl 0x26b6c90 <line:371:12, col:21> col:21 referenced typename _IteratorL
| | |-TemplateTypeParmDecl 0x26b6cf8 <col:33, col:42> col:42 referenced typename _IteratorR
| | `-FunctionDecl 0x26b7140 <line:372:5, line:375:28> line:373:5 operator<= '_Bool (const reverse_iterator<_IteratorL> &, const reverse_iterator<_IteratorR> &)' inline
| | |-ParmVarDecl 0x26b6ed0 <col:16, col:52> col:52 referenced __x 'const reverse_iterator<_IteratorL> &'
| | |-ParmVarDecl 0x26b7070 <line:374:9, col:45> col:45 referenced __y 'const reverse_iterator<_IteratorR> &'
| | `-CompoundStmt 0x26b73a0 <line:375:5, col:28>
| | `-ReturnStmt 0x26b7388 <col:7, col:25>
| | `-UnaryOperator 0x26b7368 <col:14, col:25> '<dependent type>' prefix '!'
| | `-ParenExpr 0x26b7348 <col:15, col:25> '<dependent type>'
| | `-CXXOperatorCallExpr 0x26b7300 <col:16, col:22> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26b7298 <col:20> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x26b5b78 0x26b1ca8 0x268d598
| | |-DeclRefExpr 0x26b7248 <col:16> 'const reverse_iterator<_IteratorR>' lvalue ParmVar 0x26b7070 '__y' 'const reverse_iterator<_IteratorR> &'
| | `-DeclRefExpr 0x26b7270 <col:22> 'const reverse_iterator<_IteratorL>' lvalue ParmVar 0x26b6ed0 '__x' 'const reverse_iterator<_IteratorL> &'
| |-FunctionTemplateDecl 0x26b7918 <line:377:3, line:381:28> line:379:5 operator>=
| | |-TemplateTypeParmDecl 0x26b73c0 <line:377:12, col:21> col:21 referenced typename _IteratorL
| | |-TemplateTypeParmDecl 0x26b7428 <col:33, col:42> col:42 referenced typename _IteratorR
| | `-FunctionDecl 0x26b7870 <line:378:5, line:381:28> line:379:5 operator>= '_Bool (const reverse_iterator<_IteratorL> &, const reverse_iterator<_IteratorR> &)' inline
| | |-ParmVarDecl 0x26b7600 <col:16, col:52> col:52 referenced __x 'const reverse_iterator<_IteratorL> &'
| | |-ParmVarDecl 0x26b77a0 <line:380:9, col:45> col:45 referenced __y 'const reverse_iterator<_IteratorR> &'
| | `-CompoundStmt 0x26b7ae8 <line:381:5, col:28>
| | `-ReturnStmt 0x26b7ad0 <col:7, col:25>
| | `-UnaryOperator 0x26b7ab0 <col:14, col:25> '<dependent type>' prefix '!'
| | `-ParenExpr 0x26b7a90 <col:15, col:25> '<dependent type>'
| | `-CXXOperatorCallExpr 0x26b7a48 <col:16, col:22> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26b79e0 <col:20> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x26b5b78 0x26b1ca8 0x268d598
| | |-DeclRefExpr 0x26b7990 <col:16> 'const reverse_iterator<_IteratorL>' lvalue ParmVar 0x26b7600 '__x' 'const reverse_iterator<_IteratorL> &'
| | `-DeclRefExpr 0x26b79b8 <col:22> 'const reverse_iterator<_IteratorR>' lvalue ParmVar 0x26b77a0 '__y' 'const reverse_iterator<_IteratorR> &'
| |-FunctionTemplateDecl 0x26b8208 <line:383:3, line:395:39> line:392:5 operator-
| | |-TemplateTypeParmDecl 0x26b7b08 <line:383:12, col:21> col:21 referenced typename _IteratorL
| | |-TemplateTypeParmDecl 0x26b7b78 <col:33, col:42> col:42 referenced typename _IteratorR
| | `-FunctionDecl 0x26b8160 <line:391:5, line:395:39> line:392:5 operator- 'typename reverse_iterator<_IteratorL>::difference_type (const reverse_iterator<_IteratorL> &, const reverse_iterator<_IteratorR> &)' inline
| | |-ParmVarDecl 0x26b7ea0 <col:15, col:51> col:51 referenced __x 'const reverse_iterator<_IteratorL> &'
| | |-ParmVarDecl 0x26b8040 <line:393:8, col:44> col:44 referenced __y 'const reverse_iterator<_IteratorR> &'
| | `-CompoundStmt 0x26b8478 <line:395:5, col:39>
| | `-ReturnStmt 0x26b8460 <col:7, col:36>
| | `-CXXOperatorCallExpr 0x26b8418 <col:14, col:36> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26b83b8 <col:25> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b8208 0x26b40c8
| | |-CallExpr 0x26b82e8 <col:14, col:23> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26b8290 <col:14, col:18> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26b8268 <col:14> 'const reverse_iterator<_IteratorR>' lvalue ParmVar 0x26b8040 '__y' 'const reverse_iterator<_IteratorR> &'
| | `-CallExpr 0x26b8390 <col:27, col:36> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26b8338 <col:27, col:31> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26b8310 <col:27> 'const reverse_iterator<_IteratorL>' lvalue ParmVar 0x26b7ea0 '__x' 'const reverse_iterator<_IteratorL> &'
| |-ClassTemplateDecl 0x26b85b8 <line:448:3, line:512:5> line:449:11 back_insert_iterator
| | |-TemplateTypeParmDecl 0x26b8498 <line:448:12, col:21> col:21 referenced typename _Container
| | `-CXXRecordDecl 0x26b8520 <line:449:5, line:512:5> line:449:11 class back_insert_iterator definition
| | |-public 'iterator<struct std::output_iterator_tag, void, void, void, void>':'struct std::iterator<struct std::output_iterator_tag, void, void, void, void>'
| | |-CXXRecordDecl 0x26b8f78 <col:5, col:11> col:11 implicit referenced class back_insert_iterator
| | |-AccessSpecDecl 0x26b9010 <line:452:5, col:14> col:5 protected
| | |-FieldDecl 0x26b9078 <line:453:7, col:19> col:19 referenced container '_Container *'
| | |-AccessSpecDecl 0x26b90c0 <line:455:5, col:11> col:5 public
| | |-TypedefDecl 0x26b90f8 <line:457:7, col:35> col:35 container_type '_Container'
| | | `-TemplateTypeParmType 0x26b84e0 '_Container' dependent depth 0 index 0
| | | `-TemplateTypeParm 0x26b8498 '_Container'
| | |-CXXConstructorDecl 0x26b92b0 <line:460:7, line:462:44> line:461:7 back_insert_iterator<_Container> 'void (_Container &)'
| | | |-ParmVarDecl 0x26b9188 <col:28, col:40> col:40 referenced __x '_Container &'
| | | |-CXXCtorInitializer Field 0x26b9078 'container' '_Container *'
| | | | `-ParenListExpr 0x26b9a80 <line:462:18, col:40> 'NULL TYPE'
| | | | `-CallExpr 0x26b9a50 <col:19, col:39> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x26b99d0 <col:19, col:24> '<overloaded function type>' lvalue (no ADL) = '__addressof' 0x2684138
| | | | `-DeclRefExpr 0x26b9a28 <col:36> '_Container' lvalue ParmVar 0x26b9188 '__x' '_Container &'
| | | `-CompoundStmt 0x26b9ae0 <col:42, col:44>
| | |-CXXMethodDecl 0x26b9570 <line:476:7, line:481:7> line:477:7 operator= 'back_insert_iterator<_Container> &(typename _Container::const_reference)'
| | | |-ParmVarDecl 0x26b9440 <col:17, col:54> col:54 referenced __value 'typename _Container::const_reference'
| | | `-CompoundStmt 0x26b9c48 <line:478:7, line:481:7>
| | | |-CallExpr 0x26b9bc8 <line:479:2, col:30> '<dependent type>'
| | | | |-CXXDependentScopeMemberExpr 0x26b9b48 <col:2, col:13> '<dependent type>' lvalue
| | | | | `-MemberExpr 0x26b9b10 <col:2> '_Container *' lvalue ->container 0x26b9078
| | | | | `-CXXThisExpr 0x26b9af8 <col:2> 'back_insert_iterator<_Container> *' this
| | | | `-DeclRefExpr 0x26b9ba0 <col:23> 'typename _Container::const_reference' lvalue ParmVar 0x26b9440 '__value' 'typename _Container::const_reference'
| | | `-ReturnStmt 0x26b9c30 <line:480:2, col:10>
| | | `-UnaryOperator 0x26b9c10 <col:9, col:10> '<dependent type>' prefix '*'
| | | `-CXXThisExpr 0x26b9bf8 <col:10> 'back_insert_iterator<_Container> *' this
| | |-CXXMethodDecl 0x26b9670 <line:499:7, line:501:23> line:500:7 operator* 'back_insert_iterator<_Container> &(void)'
| | | `-CompoundStmt 0x26b9cc0 <line:501:7, col:23>
| | | `-ReturnStmt 0x26b9ca8 <col:9, col:17>
| | | `-UnaryOperator 0x26b9c88 <col:16, col:17> '<dependent type>' prefix '*'
| | | `-CXXThisExpr 0x26b9c70 <col:17> 'back_insert_iterator<_Container> *' this
| | |-CXXMethodDecl 0x26b9738 <line:504:7, line:506:23> line:505:7 operator++ 'back_insert_iterator<_Container> &(void)'
| | | `-CompoundStmt 0x26b9d30 <line:506:7, col:23>
| | | `-ReturnStmt 0x26b9d18 <col:9, col:17>
| | | `-UnaryOperator 0x26b9cf8 <col:16, col:17> '<dependent type>' prefix '*'
| | | `-CXXThisExpr 0x26b9ce0 <col:17> 'back_insert_iterator<_Container> *' this
| | `-CXXMethodDecl 0x26b98b0 <line:509:7, line:511:23> line:510:7 operator++ 'back_insert_iterator<_Container> (int)'
| | |-ParmVarDecl 0x26b97f0 <col:18> col:21 'int'
| | `-CompoundStmt 0x26b9da0 <line:511:7, col:23>
| | `-ReturnStmt 0x26b9d88 <col:9, col:17>
| | `-UnaryOperator 0x26b9d68 <col:16, col:17> '<dependent type>' prefix '*'
| | `-CXXThisExpr 0x26b9d50 <col:17> 'back_insert_iterator<_Container> *' this
| |-FunctionTemplateDecl 0x26ba128 <line:525:3, line:528:53> line:527:5 back_inserter
| | |-TemplateTypeParmDecl 0x26b9dc0 <line:525:12, col:21> col:21 referenced typename _Container
| | `-FunctionDecl 0x26ba080 <line:526:5, line:528:53> line:527:5 back_inserter 'back_insert_iterator<_Container> (_Container &)' inline
| | |-ParmVarDecl 0x26b9f58 <col:19, col:31> col:31 referenced __x '_Container &'
| | `-CompoundStmt 0x26ba2f8 <line:528:5, col:53>
| | `-ReturnStmt 0x26ba2e0 <col:7, col:50>
| | `-CXXUnresolvedConstructExpr 0x26ba2b0 <col:14, col:50> 'back_insert_iterator<_Container>'
| | `-DeclRefExpr 0x26ba288 <col:47> '_Container' lvalue ParmVar 0x26b9f58 '__x' '_Container &'
| |-ClassTemplateDecl 0x26ba438 <line:540:3, line:603:5> line:541:11 front_insert_iterator
| | |-TemplateTypeParmDecl 0x26ba318 <line:540:12, col:21> col:21 referenced typename _Container
| | `-CXXRecordDecl 0x26ba3a0 <line:541:5, line:603:5> line:541:11 class front_insert_iterator definition
| | |-public 'iterator<struct std::output_iterator_tag, void, void, void, void>':'struct std::iterator<struct std::output_iterator_tag, void, void, void, void>'
| | |-CXXRecordDecl 0x26ba868 <col:5, col:11> col:11 implicit referenced class front_insert_iterator
| | |-AccessSpecDecl 0x26ba900 <line:544:5, col:14> col:5 protected
| | |-FieldDecl 0x26ba968 <line:545:7, col:19> col:19 referenced container '_Container *'
| | |-AccessSpecDecl 0x26ba9c0 <line:547:5, col:11> col:5 public
| | |-TypedefDecl 0x26ba9f8 <line:549:7, col:35> col:35 container_type '_Container'
| | | `-TemplateTypeParmType 0x26ba360 '_Container' dependent depth 0 index 0
| | | `-TemplateTypeParm 0x26ba318 '_Container'
| | |-CXXConstructorDecl 0x26bab70 <line:552:7, line:553:44> line:552:16 front_insert_iterator<_Container> 'void (_Container &)'
| | | |-ParmVarDecl 0x26baa88 <col:38, col:50> col:50 referenced __x '_Container &'
| | | |-CXXCtorInitializer Field 0x26ba968 'container' '_Container *'
| | | | `-ParenListExpr 0x26bb2e8 <line:553:18, col:40> 'NULL TYPE'
| | | | `-CallExpr 0x26bb2b8 <col:19, col:39> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x26bb238 <col:19, col:24> '<overloaded function type>' lvalue (no ADL) = '__addressof' 0x2684138
| | | | `-DeclRefExpr 0x26bb290 <col:36> '_Container' lvalue ParmVar 0x26baa88 '__x' '_Container &'
| | | `-CompoundStmt 0x26bb348 <col:42, col:44>
| | |-CXXMethodDecl 0x26bae00 <line:567:7, line:572:7> line:568:7 operator= 'front_insert_iterator<_Container> &(typename _Container::const_reference)'
| | | |-ParmVarDecl 0x26bacd0 <col:17, col:54> col:54 referenced __value 'typename _Container::const_reference'
| | | `-CompoundStmt 0x26bb4b0 <line:569:7, line:572:7>
| | | |-CallExpr 0x26bb430 <line:570:2, col:31> '<dependent type>'
| | | | |-CXXDependentScopeMemberExpr 0x26bb3b0 <col:2, col:13> '<dependent type>' lvalue
| | | | | `-MemberExpr 0x26bb378 <col:2> '_Container *' lvalue ->container 0x26ba968
| | | | | `-CXXThisExpr 0x26bb360 <col:2> 'front_insert_iterator<_Container> *' this
| | | | `-DeclRefExpr 0x26bb408 <col:24> 'typename _Container::const_reference' lvalue ParmVar 0x26bacd0 '__value' 'typename _Container::const_reference'
| | | `-ReturnStmt 0x26bb498 <line:571:2, col:10>
| | | `-UnaryOperator 0x26bb478 <col:9, col:10> '<dependent type>' prefix '*'
| | | `-CXXThisExpr 0x26bb460 <col:10> 'front_insert_iterator<_Container> *' this
| | |-CXXMethodDecl 0x26baf00 <line:590:7, line:592:23> line:591:7 operator* 'front_insert_iterator<_Container> &(void)'
| | | `-CompoundStmt 0x26bb528 <line:592:7, col:23>
| | | `-ReturnStmt 0x26bb510 <col:9, col:17>
| | | `-UnaryOperator 0x26bb4f0 <col:16, col:17> '<dependent type>' prefix '*'
| | | `-CXXThisExpr 0x26bb4d8 <col:17> 'front_insert_iterator<_Container> *' this
| | |-CXXMethodDecl 0x26bafc8 <line:595:7, line:597:23> line:596:7 operator++ 'front_insert_iterator<_Container> &(void)'
| | | `-CompoundStmt 0x26bb598 <line:597:7, col:23>
| | | `-ReturnStmt 0x26bb580 <col:9, col:17>
| | | `-UnaryOperator 0x26bb560 <col:16, col:17> '<dependent type>' prefix '*'
| | | `-CXXThisExpr 0x26bb548 <col:17> 'front_insert_iterator<_Container> *' this
| | `-CXXMethodDecl 0x26bb140 <line:600:7, line:602:23> line:601:7 operator++ 'front_insert_iterator<_Container> (int)'
| | |-ParmVarDecl 0x26bb080 <col:18> col:21 'int'
| | `-CompoundStmt 0x26bb608 <line:602:7, col:23>
| | `-ReturnStmt 0x26bb5f0 <col:9, col:17>
| | `-UnaryOperator 0x26bb5d0 <col:16, col:17> '<dependent type>' prefix '*'
| | `-CXXThisExpr 0x26bb5b8 <col:17> 'front_insert_iterator<_Container> *' this
| |-FunctionTemplateDecl 0x2688250 <line:616:3, line:619:54> line:618:5 front_inserter
| | |-TemplateTypeParmDecl 0x26bb628 <line:616:12, col:21> col:21 referenced typename _Container
| | `-FunctionDecl 0x26bb8f0 <line:617:5, line:619:54> line:618:5 front_inserter 'front_insert_iterator<_Container> (_Container &)' inline
| | |-ParmVarDecl 0x26bb7c8 <col:20, col:32> col:32 referenced __x '_Container &'
| | `-CompoundStmt 0x2688428 <line:619:5, col:54>
| | `-ReturnStmt 0x2688410 <col:7, col:51>
| | `-CXXUnresolvedConstructExpr 0x26883e0 <col:14, col:51> 'front_insert_iterator<_Container>'
| | `-DeclRefExpr 0x26883b8 <col:48> '_Container' lvalue ParmVar 0x26bb7c8 '__x' '_Container &'
| |-ClassTemplateDecl 0x2688568 <line:635:3, line:717:5> line:636:11 insert_iterator
| | |-TemplateTypeParmDecl 0x2688448 <line:635:12, col:21> col:21 referenced typename _Container
| | `-CXXRecordDecl 0x26884d0 <line:636:5, line:717:5> line:636:11 class insert_iterator definition
| | |-public 'iterator<struct std::output_iterator_tag, void, void, void, void>':'struct std::iterator<struct std::output_iterator_tag, void, void, void, void>'
| | |-CXXRecordDecl 0x2688998 <col:5, col:11> col:11 implicit referenced class insert_iterator
| | |-AccessSpecDecl 0x2688a30 <line:639:5, col:14> col:5 protected
| | |-FieldDecl 0x2688a98 <line:640:7, col:19> col:19 referenced container '_Container *'
| | |-FieldDecl 0x2688bb0 <line:641:7, col:37> col:37 referenced iter 'typename _Container::iterator'
| | |-AccessSpecDecl 0x2688bf8 <line:643:5, col:11> col:5 public
| | |-TypedefDecl 0x2688c30 <line:645:7, col:35> col:35 container_type '_Container'
| | | `-TemplateTypeParmType 0x2688490 '_Container' dependent depth 0 index 0
| | | `-TemplateTypeParm 0x2688448 '_Container'
| | |-CXXConstructorDecl 0x2688ea0 <line:651:7, line:652:54> line:651:7 insert_iterator<_Container> 'void (_Container &, typename _Container::iterator)'
| | | |-ParmVarDecl 0x2688cb8 <col:23, col:35> col:35 referenced __x '_Container &'
| | | |-ParmVarDecl 0x2688d70 <col:40, col:70> col:70 referenced __i 'typename _Container::iterator'
| | | |-CXXCtorInitializer Field 0x2688a98 'container' '_Container *'
| | | | `-ParenListExpr 0x26bfdb8 <line:652:18, col:40> 'NULL TYPE'
| | | | `-CallExpr 0x26bfd88 <col:19, col:39> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x26bfd08 <col:19, col:24> '<overloaded function type>' lvalue (no ADL) = '__addressof' 0x2684138
| | | | `-DeclRefExpr 0x26bfd60 <col:36> '_Container' lvalue ParmVar 0x2688cb8 '__x' '_Container &'
| | | |-CXXCtorInitializer Field 0x2688bb0 'iter' 'typename _Container::iterator'
| | | | `-ParenListExpr 0x26bfe38 <col:47, col:51> 'NULL TYPE'
| | | | `-DeclRefExpr 0x26bfe10 <col:48> 'typename _Container::iterator' lvalue ParmVar 0x2688d70 '__i' 'typename _Container::iterator'
| | | `-CompoundStmt 0x26bfea0 <col:53, col:54>
| | |-CXXMethodDecl 0x2689120 <line:678:7, line:684:7> line:679:7 operator= 'insert_iterator<_Container> &(typename _Container::const_reference)'
| | | |-ParmVarDecl 0x2688ff0 <col:17, col:54> col:54 referenced __value 'typename _Container::const_reference'
| | | `-CompoundStmt 0x26c0148 <line:680:7, line:684:7>
| | | |-BinaryOperator 0x26c0060 <line:681:2, col:40> '<dependent type>' '='
| | | | |-MemberExpr 0x26bfed0 <col:2> 'typename _Container::iterator' lvalue ->iter 0x2688bb0
| | | | | `-CXXThisExpr 0x26bfeb8 <col:2> 'insert_iterator<_Container> *' this
| | | | `-CallExpr 0x26c0028 <col:9, col:40> '<dependent type>'
| | | | |-CXXDependentScopeMemberExpr 0x26bff58 <col:9, col:20> '<dependent type>' lvalue
| | | | | `-MemberExpr 0x26bff20 <col:9> '_Container *' lvalue ->container 0x2688a98
| | | | | `-CXXThisExpr 0x26bff08 <col:9> 'insert_iterator<_Container> *' this
| | | | |-MemberExpr 0x26bffc8 <col:27> 'typename _Container::iterator' lvalue ->iter 0x2688bb0
| | | | | `-CXXThisExpr 0x26bffb0 <col:27> 'insert_iterator<_Container> *' this
| | | | `-DeclRefExpr 0x26c0000 <col:33> 'typename _Container::const_reference' lvalue ParmVar 0x2688ff0 '__value' 'typename _Container::const_reference'
| | | |-UnaryOperator 0x26c00d8 <line:682:2, col:4> '<dependent type>' prefix '++'
| | | | `-MemberExpr 0x26c00a0 <col:4> 'typename _Container::iterator' lvalue ->iter 0x2688bb0
| | | | `-CXXThisExpr 0x26c0088 <col:4> 'insert_iterator<_Container> *' this
| | | `-ReturnStmt 0x26c0130 <line:683:2, col:10>
| | | `-UnaryOperator 0x26c0110 <col:9, col:10> '<dependent type>' prefix '*'
| | | `-CXXThisExpr 0x26c00f8 <col:10> 'insert_iterator<_Container> *' this
| | |-CXXMethodDecl 0x26bf9d0 <line:704:7, line:706:23> line:705:7 operator* 'insert_iterator<_Container> &(void)'
| | | `-CompoundStmt 0x26c01c8 <line:706:7, col:23>
| | | `-ReturnStmt 0x26c01b0 <col:9, col:17>
| | | `-UnaryOperator 0x26c0190 <col:16, col:17> '<dependent type>' prefix '*'
| | | `-CXXThisExpr 0x26c0178 <col:17> 'insert_iterator<_Container> *' this
| | |-CXXMethodDecl 0x26bfa98 <line:709:7, line:711:23> line:710:7 operator++ 'insert_iterator<_Container> &(void)'
| | | `-CompoundStmt 0x26c0238 <line:711:7, col:23>
| | | `-ReturnStmt 0x26c0220 <col:9, col:17>
| | | `-UnaryOperator 0x26c0200 <col:16, col:17> '<dependent type>' prefix '*'
| | | `-CXXThisExpr 0x26c01e8 <col:17> 'insert_iterator<_Container> *' this
| | `-CXXMethodDecl 0x26bfc10 <line:714:7, line:716:23> line:715:7 operator++ 'insert_iterator<_Container> &(int)'
| | |-ParmVarDecl 0x26bfb50 <col:18> col:21 'int'
| | `-CompoundStmt 0x26c02a8 <line:716:7, col:23>
| | `-ReturnStmt 0x26c0290 <col:9, col:17>
| | `-UnaryOperator 0x26c0270 <col:16, col:17> '<dependent type>' prefix '*'
| | `-CXXThisExpr 0x26c0258 <col:17> 'insert_iterator<_Container> *' this
| `-FunctionTemplateDecl 0x26c0738 <line:730:3, line:736:5> line:732:5 inserter
| |-TemplateTypeParmDecl 0x26c02c8 <line:730:12, col:21> col:21 referenced typename _Container
| |-TemplateTypeParmDecl 0x26c0338 <col:33, col:42> col:42 referenced typename _Iterator
| `-FunctionDecl 0x26c0690 <line:731:5, line:736:5> line:732:5 inserter 'insert_iterator<_Container> (_Container &, _Iterator)' inline
| |-ParmVarDecl 0x26c04e8 <col:14, col:26> col:26 referenced __x '_Container &'
| |-ParmVarDecl 0x26c0558 <col:31, col:41> col:41 referenced __i '_Iterator'
| `-CompoundStmt 0x26c0a30 <line:733:5, line:736:5>
| `-ReturnStmt 0x26c0a18 <line:734:7, line:735:41>
| `-CXXUnresolvedConstructExpr 0x26c09e0 <line:734:14, line:735:41> 'insert_iterator<_Container>'
| |-DeclRefExpr 0x26c08a8 <line:734:42> '_Container' lvalue ParmVar 0x26c04e8 '__x' '_Container &'
| `-CXXUnresolvedConstructExpr 0x26c0998 <line:735:7, col:40> 'typename _Container::iterator'
| `-DeclRefExpr 0x26c0970 <col:37> '_Iterator' lvalue ParmVar 0x26c0558 '__i' '_Iterator'
|-NamespaceDecl 0x26c0a80 prev 0x2677458 <line:743:1, line:972:1> line:743:11 __gnu_cxx
| |-original Namespace 0x25fd6b0 '__gnu_cxx'
| |-VisibilityAttr 0x26c0ae8 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:67:49, col:67> Default
| |-UsingDecl 0x26c0b28 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_iterator.h:754:3, col:14> col:14 std::iterator_traits
| |-UsingShadowDecl 0x26c0b78 <col:14> col:14 implicit ClassTemplate 0x26952c8 'iterator_traits'
| |-UsingDecl 0x26c0bc8 <line:755:3, col:14> col:14 std::iterator
| |-UsingShadowDecl 0x26c0c18 <col:14> col:14 implicit ClassTemplate 0x2691138 'iterator'
| |-ClassTemplateDecl 0x26c0df0 <line:756:3, line:843:5> line:757:11 __normal_iterator
| | |-TemplateTypeParmDecl 0x26c0c60 <line:756:12, col:21> col:21 referenced typename _Iterator
| | |-TemplateTypeParmDecl 0x26c0cc8 <col:32, col:41> col:41 referenced typename _Container
| | |-CXXRecordDecl 0x26c0d58 <line:757:5, line:843:5> line:757:11 class __normal_iterator definition
| | | |-CXXRecordDecl 0x26c1088 <col:5, col:11> col:11 implicit referenced class __normal_iterator
| | | |-AccessSpecDecl 0x26c1120 <line:759:5, col:14> col:5 protected
| | | |-FieldDecl 0x26c1158 <line:760:7, col:17> col:17 referenced _M_current '_Iterator'
| | | |-TypedefDecl 0x26c12a8 <line:762:7, col:43> col:43 referenced __traits_type 'iterator_traits<_Iterator>'
| | | | `-TemplateSpecializationType 0x26c1200 'iterator_traits<_Iterator>' dependent iterator_traits
| | | | `-TemplateArgument type '_Iterator'
| | | |-AccessSpecDecl 0x26c12f8 <line:764:5, col:11> col:5 public
| | | |-TypedefDecl 0x26c1330 <line:765:7, col:29> col:29 iterator_type '_Iterator'
| | | | `-TemplateTypeParmType 0x26c0ca0 '_Iterator' dependent depth 0 index 0
| | | | `-TemplateTypeParm 0x26c0c60 '_Iterator'
| | | |-TypedefDecl 0x26c1440 <line:766:7, col:57> col:57 iterator_category 'typename __traits_type::iterator_category'
| | | | `-DependentNameType 0x26c13d0 'typename __traits_type::iterator_category' dependent
| | | |-TypedefDecl 0x26c1520 <line:767:7, col:52> col:52 value_type 'typename __traits_type::value_type'
| | | | `-DependentNameType 0x26c14b0 'typename __traits_type::value_type' dependent
| | | |-TypedefDecl 0x26c1600 <line:768:7, col:56> col:56 referenced difference_type 'typename __traits_type::difference_type'
| | | | `-DependentNameType 0x26c1590 'typename __traits_type::difference_type' dependent
| | | |-TypedefDecl 0x26c16e0 <line:769:7, col:50> col:50 referenced reference 'typename __traits_type::reference'
| | | | `-DependentNameType 0x26c1670 'typename __traits_type::reference' dependent
| | | |-TypedefDecl 0x26c17c0 <line:770:7, col:50> col:50 referenced pointer 'typename __traits_type::pointer'
| | | | `-DependentNameType 0x26c1750 'typename __traits_type::pointer' dependent
| | | |-CXXConstructorDecl 0x26c1850 <line:772:26, line:773:35> line:772:26 __normal_iterator<_Iterator, _Container> 'void (void)'
| | | | |-CXXCtorInitializer Field 0x26c1158 '_M_current' '_Iterator'
| | | | | `-ParenListExpr 0x26c4640 <line:773:19, col:31> 'NULL TYPE'
| | | | | `-CXXUnresolvedConstructExpr 0x26c4618 <col:20, col:30> '_Iterator'
| | | | `-CompoundStmt 0x26c46a0 <col:33, col:35>
| | | |-CXXConstructorDecl 0x26c1a90 <line:775:7, line:777:27> line:776:7 __normal_iterator<_Iterator, _Container> 'void (const _Iterator &)'
| | | | |-ParmVarDecl 0x26c1948 <col:25, col:42> col:42 referenced __i 'const _Iterator &'
| | | | |-CXXCtorInitializer Field 0x26c1158 '_M_current' '_Iterator'
| | | | | `-ParenListExpr 0x26c46e0 <line:777:19, col:23> 'NULL TYPE'
| | | | | `-DeclRefExpr 0x26c46b8 <col:20> 'const _Iterator' lvalue ParmVar 0x26c1948 '__i' 'const _Iterator &'
| | | | `-CompoundStmt 0x26c4740 <col:25, col:27>
| | | |-FunctionTemplateDecl 0x26c2568 <line:780:7, line:785:36> line:781:9 __normal_iterator<_Iterator, _Container>
| | | | |-TemplateTypeParmDecl 0x26c1b50 <line:780:16, col:25> col:25 referenced typename _Iter
| | | | `-CXXConstructorDecl 0x26c24b0 <line:781:9, line:785:36> line:781:9 __normal_iterator<_Iterator, _Container> 'void (const __normal_iterator<_Iter, typename __enable_if<(std::__are_same<_Iter, typename _Container::pointer>::__value), _Container>::__type> &)'
| | | | |-ParmVarDecl 0x26c23a8 <col:27, line:784:31> col:31 referenced __i 'const __normal_iterator<_Iter, typename __enable_if<(std::__are_same<_Iter, typename _Container::pointer>::__value), _Container>::__type> &'
| | | | |-CXXCtorInitializer Field 0x26c1158 '_M_current' '_Iterator'
| | | | | `-ParenListExpr 0x26c4800 <line:785:21, col:32> 'NULL TYPE'
| | | | | `-CallExpr 0x26c47d8 <col:22, col:31> '<dependent type>'
| | | | | `-CXXDependentScopeMemberExpr 0x26c4780 <col:22, col:26> '<dependent type>' lvalue
| | | | | `-DeclRefExpr 0x26c4758 <col:22> 'const __normal_iterator<_Iter, typename __enable_if<(std::__are_same<_Iter, typename _Container::pointer>::__value), _Container>::__type>' lvalue ParmVar 0x26c23a8 '__i' 'const __normal_iterator<_Iter, typename __enable_if<(std::__are_same<_Iter, typename _Container::pointer>::__value), _Container>::__type> &'
| | | | `-CompoundStmt 0x26c4860 <col:34, col:36>
| | | |-CXXMethodDecl 0x26c2630 <line:788:7, line:790:29> line:789:7 operator* 'reference (void) const'
| | | | `-CompoundStmt 0x26c4930 <line:790:7, col:29>
| | | | `-ReturnStmt 0x26c4918 <col:9, col:17>
| | | | `-UnaryOperator 0x26c48f8 <col:16, col:17> '<dependent type>' prefix '*'
| | | | `-MemberExpr 0x26c48c0 <col:17> 'const _Iterator' lvalue ->_M_current 0x26c1158
| | | | `-CXXThisExpr 0x26c48a8 <col:17> 'const __normal_iterator<_Iterator, _Container> *' this
| | | |-CXXMethodDecl 0x26c2750 <line:792:7, line:794:28> line:793:7 operator-> 'pointer (void) const'
| | | | `-CompoundStmt 0x26c49b8 <line:794:7, col:28>
| | | | `-ReturnStmt 0x26c49a0 <col:9, col:16>
| | | | `-MemberExpr 0x26c4968 <col:16> 'const _Iterator' lvalue ->_M_current 0x26c1158
| | | | `-CXXThisExpr 0x26c4950 <col:16> 'const __normal_iterator<_Iterator, _Container> *' this
| | | |-CXXMethodDecl 0x26c2880 <line:796:7, line:801:7> line:797:7 operator++ '__normal_iterator<_Iterator, _Container> &(void)'
| | | | `-CompoundStmt 0x26c5f78 <line:798:7, line:801:7>
| | | | |-UnaryOperator 0x26c5f08 <line:799:2, col:4> '<dependent type>' prefix '++'
| | | | | `-MemberExpr 0x26c5ed0 <col:4> '_Iterator' lvalue ->_M_current 0x26c1158
| | | | | `-CXXThisExpr 0x26c49d8 <col:4> '__normal_iterator<_Iterator, _Container> *' this
| | | | `-ReturnStmt 0x26c5f60 <line:800:2, col:10>
| | | | `-UnaryOperator 0x26c5f40 <col:9, col:10> '<dependent type>' prefix '*'
| | | | `-CXXThisExpr 0x26c5f28 <col:10> '__normal_iterator<_Iterator, _Container> *' this
| | | |-CXXMethodDecl 0x26c3a38 <line:803:7, line:805:49> line:804:7 operator++ '__normal_iterator<_Iterator, _Container> (int)'
| | | | |-ParmVarDecl 0x26c2938 <col:18> col:21 'int'
| | | | `-CompoundStmt 0x26c6088 <line:805:7, col:49>
| | | | `-ReturnStmt 0x26c6070 <col:9, col:46>
| | | | `-CXXUnresolvedConstructExpr 0x26c6040 <col:16, col:46> '__normal_iterator<_Iterator, _Container>'
| | | | `-UnaryOperator 0x26c6020 <col:34, col:44> '<dependent type>' postfix '++'
| | | | `-MemberExpr 0x26c5fc8 <col:34> '_Iterator' lvalue ->_M_current 0x26c1158
| | | | `-CXXThisExpr 0x26c5fb0 <col:34> '__normal_iterator<_Iterator, _Container> *' this
| | | |-CXXMethodDecl 0x26c3b08 <line:808:7, line:813:7> line:809:7 operator-- '__normal_iterator<_Iterator, _Container> &(void)'
| | | | `-CompoundStmt 0x26c6168 <line:810:7, line:813:7>
| | | | |-UnaryOperator 0x26c60f8 <line:811:2, col:4> '<dependent type>' prefix '--'
| | | | | `-MemberExpr 0x26c60c0 <col:4> '_Iterator' lvalue ->_M_current 0x26c1158
| | | | | `-CXXThisExpr 0x26c60a8 <col:4> '__normal_iterator<_Iterator, _Container> *' this
| | | | `-ReturnStmt 0x26c6150 <line:812:2, col:10>
| | | | `-UnaryOperator 0x26c6130 <col:9, col:10> '<dependent type>' prefix '*'
| | | | `-CXXThisExpr 0x26c6118 <col:10> '__normal_iterator<_Iterator, _Container> *' this
| | | |-CXXMethodDecl 0x26c3c48 <line:815:7, line:817:49> line:816:7 operator-- '__normal_iterator<_Iterator, _Container> (int)'
| | | | |-ParmVarDecl 0x26c3bc0 <col:18> col:21 'int'
| | | | `-CompoundStmt 0x26c6278 <line:817:7, col:49>
| | | | `-ReturnStmt 0x26c6260 <col:9, col:46>
| | | | `-CXXUnresolvedConstructExpr 0x26c6230 <col:16, col:46> '__normal_iterator<_Iterator, _Container>'
| | | | `-UnaryOperator 0x26c6210 <col:34, col:44> '<dependent type>' postfix '--'
| | | | `-MemberExpr 0x26c61b8 <col:34> '_Iterator' lvalue ->_M_current 0x26c1158
| | | | `-CXXThisExpr 0x26c61a0 <col:34> '__normal_iterator<_Iterator, _Container> *' this
| | | |-CXXMethodDecl 0x26c3df0 <line:820:7, line:822:33> line:821:7 operator[] 'reference (difference_type) const'
| | | | |-ParmVarDecl 0x26c3d30 <col:18, col:34> col:34 referenced __n 'difference_type':'typename __traits_type::difference_type'
| | | | `-CompoundStmt 0x26c6350 <line:822:7, col:33>
| | | | `-ReturnStmt 0x26c6338 <col:9, col:30>
| | | | `-ArraySubscriptExpr 0x26c6310 <col:16, col:30> '<dependent type>' lvalue
| | | | |-MemberExpr 0x26c62b0 <col:16> 'const _Iterator' lvalue ->_M_current 0x26c1158
| | | | | `-CXXThisExpr 0x26c6298 <col:16> 'const __normal_iterator<_Iterator, _Container> *' this
| | | | `-DeclRefExpr 0x26c62e8 <col:27> 'difference_type':'typename __traits_type::difference_type' lvalue ParmVar 0x26c3d30 '__n' 'difference_type':'typename __traits_type::difference_type'
| | | |-CXXMethodDecl 0x26c3fb0 <line:824:7, line:826:42> line:825:7 operator+= '__normal_iterator<_Iterator, _Container> &(difference_type)'
| | | | |-ParmVarDecl 0x26c3eb0 <col:18, col:34> col:34 referenced __n 'difference_type':'typename __traits_type::difference_type'
| | | | `-CompoundStmt 0x26c6470 <line:826:7, col:42>
| | | | |-CompoundAssignOperator 0x26c63e8 <col:9, col:23> '<dependent type>' lvalue '+=' ComputeLHSTy='<dependent type>' ComputeResultTy='<dependent type>'
| | | | | |-MemberExpr 0x26c6388 <col:9> '_Iterator' lvalue ->_M_current 0x26c1158
| | | | | | `-CXXThisExpr 0x26c6370 <col:9> '__normal_iterator<_Iterator, _Container> *' this
| | | | | `-DeclRefExpr 0x26c63c0 <col:23> 'difference_type':'typename __traits_type::difference_type' lvalue ParmVar 0x26c3eb0 '__n' 'difference_type':'typename __traits_type::difference_type'
| | | | `-ReturnStmt 0x26c6458 <col:28, col:36>
| | | | `-UnaryOperator 0x26c6438 <col:35, col:36> '<dependent type>' prefix '*'
| | | | `-CXXThisExpr 0x26c6420 <col:36> '__normal_iterator<_Iterator, _Container> *' this
| | | |-CXXMethodDecl 0x26c4170 <line:828:7, line:830:53> line:829:7 operator+ '__normal_iterator<_Iterator, _Container> (difference_type) const'
| | | | |-ParmVarDecl 0x26c4070 <col:17, col:33> col:33 referenced __n 'difference_type':'typename __traits_type::difference_type'
| | | | `-CompoundStmt 0x26c6590 <line:830:7, col:53>
| | | | `-ReturnStmt 0x26c6578 <col:9, col:50>
| | | | `-CXXUnresolvedConstructExpr 0x26c6548 <col:16, col:50> '__normal_iterator<_Iterator, _Container>'
| | | | `-BinaryOperator 0x26c6520 <col:34, col:47> '<dependent type>' '+'
| | | | |-MemberExpr 0x26c64c0 <col:34> 'const _Iterator' lvalue ->_M_current 0x26c1158
| | | | | `-CXXThisExpr 0x26c64a8 <col:34> 'const __normal_iterator<_Iterator, _Container> *' this
| | | | `-DeclRefExpr 0x26c64f8 <col:47> 'difference_type':'typename __traits_type::difference_type' lvalue ParmVar 0x26c4070 '__n' 'difference_type':'typename __traits_type::difference_type'
| | | |-CXXMethodDecl 0x26c42b8 <line:832:7, line:834:42> line:833:7 operator-= '__normal_iterator<_Iterator, _Container> &(difference_type)'
| | | | |-ParmVarDecl 0x26c4230 <col:18, col:34> col:34 referenced __n 'difference_type':'typename __traits_type::difference_type'
| | | | `-CompoundStmt 0x26c66b0 <line:834:7, col:42>
| | | | |-CompoundAssignOperator 0x26c6628 <col:9, col:23> '<dependent type>' lvalue '-=' ComputeLHSTy='<dependent type>' ComputeResultTy='<dependent type>'
| | | | | |-MemberExpr 0x26c65c8 <col:9> '_Iterator' lvalue ->_M_current 0x26c1158
| | | | | | `-CXXThisExpr 0x26c65b0 <col:9> '__normal_iterator<_Iterator, _Container> *' this
| | | | | `-DeclRefExpr 0x26c6600 <col:23> 'difference_type':'typename __traits_type::difference_type' lvalue ParmVar 0x26c4230 '__n' 'difference_type':'typename __traits_type::difference_type'
| | | | `-ReturnStmt 0x26c6698 <col:28, col:36>
| | | | `-UnaryOperator 0x26c6678 <col:35, col:36> '<dependent type>' prefix '*'
| | | | `-CXXThisExpr 0x26c6660 <col:36> '__normal_iterator<_Iterator, _Container> *' this
| | | |-CXXMethodDecl 0x26c4400 <line:836:7, line:838:53> line:837:7 operator- '__normal_iterator<_Iterator, _Container> (difference_type) const'
| | | | |-ParmVarDecl 0x26c4378 <col:17, col:33> col:33 referenced __n 'difference_type':'typename __traits_type::difference_type'
| | | | `-CompoundStmt 0x26c67d0 <line:838:7, col:53>
| | | | `-ReturnStmt 0x26c67b8 <col:9, col:50>
| | | | `-CXXUnresolvedConstructExpr 0x26c6788 <col:16, col:50> '__normal_iterator<_Iterator, _Container>'
| | | | `-BinaryOperator 0x26c6760 <col:34, col:47> '<dependent type>' '-'
| | | | |-MemberExpr 0x26c6700 <col:34> 'const _Iterator' lvalue ->_M_current 0x26c1158
| | | | | `-CXXThisExpr 0x26c66e8 <col:34> 'const __normal_iterator<_Iterator, _Container> *' this
| | | | `-DeclRefExpr 0x26c6738 <col:47> 'difference_type':'typename __traits_type::difference_type' lvalue ParmVar 0x26c4378 '__n' 'difference_type':'typename __traits_type::difference_type'
| | | `-CXXMethodDecl 0x26c4530 <line:840:7, line:842:28> line:841:7 base 'const _Iterator &(void) const'
| | | `-CompoundStmt 0x26c6858 <line:842:7, col:28>
| | | `-ReturnStmt 0x26c6840 <col:9, col:16>
| | | `-MemberExpr 0x26c6808 <col:16> 'const _Iterator' lvalue ->_M_current 0x26c1158
| | | `-CXXThisExpr 0x26c67f0 <col:16> 'const __normal_iterator<_Iterator, _Container> *' this
| | |-ClassTemplateSpecializationDecl 0x28115e0 <line:756:3, line:843:5> line:757:11 class __normal_iterator definition
| | | |-TemplateArgument type 'struct A *'
| | | |-TemplateArgument type 'class std::vector<struct A, class std::allocator<struct A> >'
| | | |-CXXRecordDecl 0x271f378 prev 0x28115e0 <col:5, col:11> col:11 implicit class __normal_iterator
| | | |-AccessSpecDecl 0x271f410 <line:759:5, col:14> col:5 protected
| | | |-FieldDecl 0x271f478 <line:760:7, col:17> col:17 referenced _M_current 'struct A *':'struct A *'
| | | |-TypedefDecl 0x282d598 <line:762:7, col:43> col:43 __traits_type 'iterator_traits<struct A *>':'struct std::iterator_traits<struct A *>'
| | | | `-TemplateSpecializationType 0x282d520 'iterator_traits<struct A *>' sugar iterator_traits
| | | | |-TemplateArgument type 'struct A *':'struct A *'
| | | | `-RecordType 0x271dbf0 'struct std::iterator_traits<struct A *>'
| | | | `-ClassTemplateSpecialization 0x271db08 'iterator_traits'
| | | |-AccessSpecDecl 0x282d5e8 <line:764:5, col:11> col:5 public
| | | |-TypedefDecl 0x282d620 <line:765:7, col:29> col:29 iterator_type 'struct A *':'struct A *'
| | | | `-SubstTemplateTypeParmType 0x271f440 'struct A *' sugar
| | | | |-TemplateTypeParmType 0x26c0ca0 '_Iterator' dependent depth 0 index 0
| | | | | `-TemplateTypeParm 0x26c0c60 '_Iterator'
| | | | `-PointerType 0x2806e30 'struct A *'
| | | | `-RecordType 0x280a9d0 'struct A'
| | | | `-CXXRecord 0x280a930 'A'
| | | |-TypedefDecl 0x282d740 <line:766:7, col:57> col:57 iterator_category 'typename __traits_type::iterator_category':'struct std::random_access_iterator_tag'
| | | | `-ElaboratedType 0x282d6f0 'typename __traits_type::iterator_category' sugar
| | | | `-TypedefType 0x282d6d0 'iterator_category' sugar
| | | | |-Typedef 0x271de98 'iterator_category'
| | | | `-RecordType 0x2690bd0 'struct std::random_access_iterator_tag'
| | | | `-CXXRecord 0x2690b38 'random_access_iterator_tag'
| | | |-TypedefDecl 0x282d800 <line:767:7, col:52> col:52 value_type 'typename __traits_type::value_type':'struct A'
| | | | `-ElaboratedType 0x282d7b0 'typename __traits_type::value_type' sugar
| | | | `-TypedefType 0x271e090 'value_type' sugar
| | | | |-Typedef 0x271def8 'value_type'
| | | | `-SubstTemplateTypeParmType 0x271dcf0 'struct A' sugar
| | | | |-TemplateTypeParmType 0x2695b90 '_Tp' dependent depth 0 index 0
| | | | | `-TemplateTypeParm 0x2695b50 '_Tp'
| | | | `-RecordType 0x280a9d0 'struct A'
| | | | `-CXXRecord 0x280a930 'A'
| | | |-TypedefDecl 0x282d8e0 <line:768:7, col:56> col:56 referenced difference_type 'typename __traits_type::difference_type':'long'
| | | | `-ElaboratedType 0x282d890 'typename __traits_type::difference_type' sugar
| | | | `-TypedefType 0x282d870 'difference_type' sugar
| | | | |-Typedef 0x271df48 'difference_type'
| | | | `-TypedefType 0x2690e10 'ptrdiff_t' sugar
| | | | |-Typedef 0x25fd488 'ptrdiff_t'
| | | | `-BuiltinType 0x259fe30 'long'
| | | |-TypedefDecl 0x282d9c0 <line:769:7, col:50> col:50 reference 'typename __traits_type::reference':'struct A &'
| | | | `-ElaboratedType 0x282d970 'typename __traits_type::reference' sugar
| | | | `-TypedefType 0x282d950 'reference' sugar
| | | | |-Typedef 0x271e038 'reference'
| | | | `-LValueReferenceType 0x271e000 'struct A &'
| | | | `-SubstTemplateTypeParmType 0x271dcf0 'struct A' sugar
| | | | |-TemplateTypeParmType 0x2695b90 '_Tp' dependent depth 0 index 0
| | | | | `-TemplateTypeParm 0x2695b50 '_Tp'
| | | | `-RecordType 0x280a9d0 'struct A'
| | | | `-CXXRecord 0x280a930 'A'
| | | |-TypedefDecl 0x282daa0 <line:770:7, col:50> col:50 pointer 'typename __traits_type::pointer':'struct A *'
| | | | `-ElaboratedType 0x282da50 'typename __traits_type::pointer' sugar
| | | | `-TypedefType 0x282da30 'pointer' sugar
| | | | |-Typedef 0x271dfa8 'pointer'
| | | | `-PointerType 0x271dd20 'struct A *'
| | | | `-SubstTemplateTypeParmType 0x271dcf0 'struct A' sugar
| | | | |-TemplateTypeParmType 0x2695b90 '_Tp' dependent depth 0 index 0
| | | | | `-TemplateTypeParm 0x2695b50 '_Tp'
| | | | `-RecordType 0x280a9d0 'struct A'
| | | | `-CXXRecord 0x280a930 'A'
| | | |-CXXConstructorDecl 0x282db30 <line:772:26> col:26 __normal_iterator 'void (void)'
| | | |-CXXConstructorDecl 0x282dd90 <line:775:7, line:777:27> line:776:7 used __normal_iterator 'void (struct A *const &)'
| | | | |-ParmVarDecl 0x282dc68 <col:25, col:42> col:42 used __i 'struct A *const &'
| | | | |-CXXCtorInitializer Field 0x271f478 '_M_current' 'struct A *':'struct A *'
| | | | | `-ImplicitCastExpr 0x283cfb8 <line:777:20> 'struct A *':'struct A *' <LValueToRValue>
| | | | | `-DeclRefExpr 0x283cf60 <col:20> 'struct A *const':'struct A *const' lvalue ParmVar 0x282dc68 '__i' 'struct A *const &'
| | | | `-CompoundStmt 0x26c4740 <col:25, col:27>
| | | |-FunctionTemplateDecl 0x282e7a8 <line:780:7, line:781:9> col:9 __normal_iterator
| | | | |-TemplateTypeParmDecl 0x282de60 <line:780:16, col:25> col:25 typename _Iter
| | | | |-CXXConstructorDecl 0x282e6f0 <line:781:9> col:9 __normal_iterator 'void (const __normal_iterator<_Iter, typename __enable_if<(std::__are_same<_Iter, typename class vector<struct A, class allocator<struct A> >::pointer>::__value), class vector<struct A, class allocator<struct A> > >::__type> &)'
| | | | | `-ParmVarDecl 0x282e5c8 <col:27, line:784:31> col:31 __i 'const __normal_iterator<_Iter, typename __enable_if<(std::__are_same<_Iter, typename class vector<struct A, class allocator<struct A> >::pointer>::__value), class vector<struct A, class allocator<struct A> > >::__type> &'
| | | | `-CXXConstructorDecl 0x2830900 <line:781:9> col:9 __normal_iterator 'void (const __normal_iterator<struct A *, typename __enable_if<(std::__are_same<struct A *, typename class vector<struct A, class allocator<struct A> >::pointer>::__value), class vector<struct A, class allocator<struct A> > >::__type> &)'
| | | | |-TemplateArgument type 'struct A *'
| | | | `-ParmVarDecl 0x2830838 <col:27, line:784:31> col:31 __i 'const __normal_iterator<struct A *, typename __enable_if<(std::__are_same<struct A *, typename class vector<struct A, class allocator<struct A> >::pointer>::__value), class vector<struct A, class allocator<struct A> > >::__type> &'
| | | |-CXXMethodDecl 0x282e930 <line:788:7, line:790:29> line:789:7 used operator* 'reference (void) const'
| | | | `-CompoundStmt 0x283b2e8 <line:790:7, col:29>
| | | | `-ReturnStmt 0x283b2d0 <col:9, col:17>
| | | | `-UnaryOperator 0x283b2b0 <col:16, col:17> 'struct A' lvalue prefix '*'
| | | | `-ImplicitCastExpr 0x283b298 <col:17> 'struct A *':'struct A *' <LValueToRValue>
| | | | `-MemberExpr 0x283b260 <col:17> 'struct A *const':'struct A *const' lvalue ->_M_current 0x271f478
| | | | `-CXXThisExpr 0x283b248 <col:17> 'const class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > *' this
| | | |-CXXMethodDecl 0x282ea90 <line:792:7, line:794:28> line:793:7 operator-> 'pointer (void) const'
| | | |-CXXMethodDecl 0x282ebd0 <line:796:7, line:801:7> line:797:7 operator++ 'class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &(void)'
| | | |-CXXMethodDecl 0x282ed50 <line:803:7, line:805:49> line:804:7 operator++ 'class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > (int)'
| | | | `-ParmVarDecl 0x282ec88 <col:18> col:21 'int'
| | | |-CXXMethodDecl 0x282ee30 <line:808:7, line:813:7> line:809:7 operator-- 'class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &(void)'
| | | |-CXXMethodDecl 0x282ef70 <line:815:7, line:817:49> line:816:7 operator-- 'class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > (int)'
| | | | `-ParmVarDecl 0x282eee8 <col:18> col:21 'int'
| | | |-CXXMethodDecl 0x282f160 <line:820:7, line:822:33> line:821:7 operator[] 'reference (difference_type) const'
| | | | `-ParmVarDecl 0x282f060 <col:18, col:34> col:34 __n 'difference_type':'long'
| | | |-CXXMethodDecl 0x282f330 <line:824:7, line:826:42> line:825:7 operator+= 'class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &(difference_type)'
| | | | `-ParmVarDecl 0x282f230 <col:18, col:34> col:34 __n 'difference_type':'long'
| | | |-CXXMethodDecl 0x282f530 <line:828:7, line:830:53> line:829:7 operator+ 'class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > (difference_type) const'
| | | | `-ParmVarDecl 0x282f400 <col:17, col:33> col:33 __n 'difference_type':'long'
| | | |-CXXMethodDecl 0x282f688 <line:832:7, line:834:42> line:833:7 operator-= 'class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &(difference_type)'
| | | | `-ParmVarDecl 0x282f600 <col:18, col:34> col:34 __n 'difference_type':'long'
| | | |-CXXMethodDecl 0x282f7e0 <line:836:7, line:838:53> line:837:7 operator- 'class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > (difference_type) const'
| | | | `-ParmVarDecl 0x282f758 <col:17, col:33> col:33 __n 'difference_type':'long'
| | | |-CXXMethodDecl 0x282f920 <line:840:7, line:842:28> line:841:7 used base 'struct A *const &(void) const'
| | | | `-CompoundStmt 0x2836df8 <line:842:7, col:28>
| | | | `-ReturnStmt 0x2836de0 <col:9, col:16>
| | | | `-MemberExpr 0x2836da8 <col:16> 'struct A *const':'struct A *const' lvalue ->_M_current 0x271f478
| | | | `-CXXThisExpr 0x2836d60 <col:16> 'const class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > *' this
| | | |-CXXDestructorDecl 0x282f9f8 <line:757:11> col:11 implicit referenced ~__normal_iterator 'void (void)' inline noexcept-unevaluated 0x282f9f8
| | | `-CXXConstructorDecl 0x282fb78 <col:11> col:11 implicit used __normal_iterator 'void (const class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &) throw()' inline
| | | |-ParmVarDecl 0x282fcb0 <col:11> col:11 used 'const class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &'
| | | |-CXXCtorInitializer Field 0x271f478 '_M_current' 'struct A *':'struct A *'
| | | | `-ImplicitCastExpr 0x2830af8 <col:11> 'struct A *':'struct A *' <LValueToRValue>
| | | | `-MemberExpr 0x2830aa8 <col:11> 'struct A *const':'struct A *const' lvalue ._M_current 0x271f478
| | | | `-DeclRefExpr 0x2830a80 <col:11> 'const class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > >' lvalue ParmVar 0x282fcb0 '' 'const class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &'
| | | `-CompoundStmt 0x2830b40 <col:11>
| | `-ClassTemplateSpecializationDecl 0x2811880 <line:756:3, line:843:5> line:757:11 class __normal_iterator
| | |-TemplateArgument type 'const struct A *'
| | `-TemplateArgument type 'class std::vector<struct A, class std::allocator<struct A> >'
| |-FunctionTemplateDecl 0x26c7098 <line:854:3, line:859:44> line:856:5 operator==
| | |-TemplateTypeParmDecl 0x26c6878 <line:854:12, col:21> col:21 referenced typename _IteratorL
| | |-TemplateTypeParmDecl 0x26c68e8 <col:33, col:42> col:42 referenced typename _IteratorR
| | |-TemplateTypeParmDecl 0x26c6958 <col:54, col:63> col:63 referenced typename _Container
| | `-FunctionDecl 0x26c6ff0 <line:855:5, line:859:44> line:856:5 operator== '_Bool (const __normal_iterator<_IteratorL, _Container> &, const __normal_iterator<_IteratorR, _Container> &)' inline
| | |-ParmVarDecl 0x26c6c28 <col:16, col:65> col:65 referenced __lhs 'const __normal_iterator<_IteratorL, _Container> &'
| | |-ParmVarDecl 0x26c6ee0 <line:857:9, col:58> col:58 referenced __rhs 'const __normal_iterator<_IteratorR, _Container> &'
| | `-CompoundStmt 0x26c7300 <line:859:5, col:44>
| | `-ReturnStmt 0x26c72e8 <col:7, col:41>
| | `-CXXOperatorCallExpr 0x26c72a0 <col:14, col:41> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26c7248 <col:27> '<overloaded function type>' lvalue (ADL) = 'operator==' 0x26c7098
| | |-CallExpr 0x26c7178 <col:14, col:25> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26c7120 <col:14, col:20> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26c70f8 <col:14> 'const __normal_iterator<_IteratorL, _Container>' lvalue ParmVar 0x26c6c28 '__lhs' 'const __normal_iterator<_IteratorL, _Container> &'
| | `-CallExpr 0x26c7220 <col:30, col:41> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26c71c8 <col:30, col:36> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26c71a0 <col:30> 'const __normal_iterator<_IteratorR, _Container>' lvalue ParmVar 0x26c6ee0 '__rhs' 'const __normal_iterator<_IteratorR, _Container> &'
| |-FunctionTemplateDecl 0x26c79c8 <line:861:3, line:866:44> line:863:5 operator==
| | |-TemplateTypeParmDecl 0x26c7320 <line:861:12, col:21> col:21 referenced typename _Iterator
| | |-TemplateTypeParmDecl 0x26c7388 <col:32, col:41> col:41 referenced typename _Container
| | `-FunctionDecl 0x26c7920 <line:862:5, line:866:44> line:863:5 operator== '_Bool (const __normal_iterator<_Iterator, _Container> &, const __normal_iterator<_Iterator, _Container> &)' inline
| | |-ParmVarDecl 0x26c75f8 <col:16, col:64> col:64 referenced __lhs 'const __normal_iterator<_Iterator, _Container> &'
| | |-ParmVarDecl 0x26c7808 <line:864:9, col:57> col:57 referenced __rhs 'const __normal_iterator<_Iterator, _Container> &'
| | `-CompoundStmt 0x26c7c38 <line:866:5, col:44>
| | `-ReturnStmt 0x26c7c20 <col:7, col:41>
| | `-CXXOperatorCallExpr 0x26c7bd8 <col:14, col:41> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26c7b78 <col:27> '<overloaded function type>' lvalue (ADL) = 'operator==' 0x26c79c8 0x26c7098
| | |-CallExpr 0x26c7aa8 <col:14, col:25> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26c7a50 <col:14, col:20> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26c7a28 <col:14> 'const __normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26c75f8 '__lhs' 'const __normal_iterator<_Iterator, _Container> &'
| | `-CallExpr 0x26c7b50 <col:30, col:41> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26c7af8 <col:30, col:36> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26c7ad0 <col:30> 'const __normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26c7808 '__rhs' 'const __normal_iterator<_Iterator, _Container> &'
| |-FunctionTemplateDecl 0x26c8348 <line:868:3, line:873:44> line:870:5 operator!=
| | |-TemplateTypeParmDecl 0x26c7c58 <line:868:12, col:21> col:21 referenced typename _IteratorL
| | |-TemplateTypeParmDecl 0x26c7cc8 <col:33, col:42> col:42 referenced typename _IteratorR
| | |-TemplateTypeParmDecl 0x26c7d38 <col:54, col:63> col:63 referenced typename _Container
| | `-FunctionDecl 0x26c82a0 <line:869:5, line:873:44> line:870:5 operator!= '_Bool (const __normal_iterator<_IteratorL, _Container> &, const __normal_iterator<_IteratorR, _Container> &)' inline
| | |-ParmVarDecl 0x26c7fb8 <col:16, col:65> col:65 referenced __lhs 'const __normal_iterator<_IteratorL, _Container> &'
| | |-ParmVarDecl 0x26c81c8 <line:871:9, col:58> col:58 referenced __rhs 'const __normal_iterator<_IteratorR, _Container> &'
| | `-CompoundStmt 0x26c85b0 <line:873:5, col:44>
| | `-ReturnStmt 0x26c8598 <col:7, col:41>
| | `-CXXOperatorCallExpr 0x26c8550 <col:14, col:41> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26c84f8 <col:27> '<overloaded function type>' lvalue (ADL) = 'operator!=' 0x26c8348
| | |-CallExpr 0x26c8428 <col:14, col:25> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26c83d0 <col:14, col:20> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26c83a8 <col:14> 'const __normal_iterator<_IteratorL, _Container>' lvalue ParmVar 0x26c7fb8 '__lhs' 'const __normal_iterator<_IteratorL, _Container> &'
| | `-CallExpr 0x26c84d0 <col:30, col:41> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26c8478 <col:30, col:36> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26c8450 <col:30> 'const __normal_iterator<_IteratorR, _Container>' lvalue ParmVar 0x26c81c8 '__rhs' 'const __normal_iterator<_IteratorR, _Container> &'
| |-FunctionTemplateDecl 0x26c8c08 <line:875:3, line:880:44> line:877:5 operator!=
| | |-TemplateTypeParmDecl 0x26c85d0 <line:875:12, col:21> col:21 referenced typename _Iterator
| | |-TemplateTypeParmDecl 0x26c8638 <col:32, col:41> col:41 referenced typename _Container
| | `-FunctionDecl 0x26c8b60 <line:876:5, line:880:44> line:877:5 operator!= '_Bool (const __normal_iterator<_Iterator, _Container> &, const __normal_iterator<_Iterator, _Container> &)' inline
| | |-ParmVarDecl 0x26c8878 <col:16, col:64> col:64 referenced __lhs 'const __normal_iterator<_Iterator, _Container> &'
| | |-ParmVarDecl 0x26c8a88 <line:878:9, col:57> col:57 referenced __rhs 'const __normal_iterator<_Iterator, _Container> &'
| | `-CompoundStmt 0x26c8e78 <line:880:5, col:44>
| | `-ReturnStmt 0x26c8e60 <col:7, col:41>
| | `-CXXOperatorCallExpr 0x26c8e18 <col:14, col:41> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26c8db8 <col:27> '<overloaded function type>' lvalue (ADL) = 'operator!=' 0x26c8c08 0x26c8348
| | |-CallExpr 0x26c8ce8 <col:14, col:25> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26c8c90 <col:14, col:20> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26c8c68 <col:14> 'const __normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26c8878 '__lhs' 'const __normal_iterator<_Iterator, _Container> &'
| | `-CallExpr 0x26c8d90 <col:30, col:41> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26c8d38 <col:30, col:36> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26c8d10 <col:30> 'const __normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26c8a88 '__rhs' 'const __normal_iterator<_Iterator, _Container> &'
| |-FunctionTemplateDecl 0x26c9568 <line:883:3, line:888:43> line:885:5 operator<
| | |-TemplateTypeParmDecl 0x26c8e98 <line:883:12, col:21> col:21 referenced typename _IteratorL
| | |-TemplateTypeParmDecl 0x26c8f28 <col:33, col:42> col:42 referenced typename _IteratorR
| | |-TemplateTypeParmDecl 0x26c8f98 <col:54, col:63> col:63 referenced typename _Container
| | `-FunctionDecl 0x26c94c0 <line:884:5, line:888:43> line:885:5 operator< '_Bool (const __normal_iterator<_IteratorL, _Container> &, const __normal_iterator<_IteratorR, _Container> &)' inline
| | |-ParmVarDecl 0x26c91d8 <col:15, col:64> col:64 referenced __lhs 'const __normal_iterator<_IteratorL, _Container> &'
| | |-ParmVarDecl 0x26c93e8 <line:886:8, col:57> col:57 referenced __rhs 'const __normal_iterator<_IteratorR, _Container> &'
| | `-CompoundStmt 0x26c97d0 <line:888:5, col:43>
| | `-ReturnStmt 0x26c97b8 <col:7, col:40>
| | `-CXXOperatorCallExpr 0x26c9770 <col:14, col:40> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26c9718 <col:27> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x26c9568
| | |-CallExpr 0x26c9648 <col:14, col:25> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26c95f0 <col:14, col:20> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26c95c8 <col:14> 'const __normal_iterator<_IteratorL, _Container>' lvalue ParmVar 0x26c91d8 '__lhs' 'const __normal_iterator<_IteratorL, _Container> &'
| | `-CallExpr 0x26c96f0 <col:29, col:40> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26c9698 <col:29, col:35> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26c9670 <col:29> 'const __normal_iterator<_IteratorR, _Container>' lvalue ParmVar 0x26c93e8 '__rhs' 'const __normal_iterator<_IteratorR, _Container> &'
| |-FunctionTemplateDecl 0x26c9e28 <line:890:3, line:895:43> line:892:5 operator<
| | |-TemplateTypeParmDecl 0x26c97f0 <line:890:12, col:21> col:21 referenced typename _Iterator
| | |-TemplateTypeParmDecl 0x26c9858 <col:32, col:41> col:41 referenced typename _Container
| | `-FunctionDecl 0x26c9d80 <line:891:5, line:895:43> line:892:5 operator< '_Bool (const __normal_iterator<_Iterator, _Container> &, const __normal_iterator<_Iterator, _Container> &)' inline
| | |-ParmVarDecl 0x26c9a98 <col:15, col:63> col:63 referenced __lhs 'const __normal_iterator<_Iterator, _Container> &'
| | |-ParmVarDecl 0x26c9ca8 <line:893:8, col:56> col:56 referenced __rhs 'const __normal_iterator<_Iterator, _Container> &'
| | `-CompoundStmt 0x26ca0f8 <line:895:5, col:43>
| | `-ReturnStmt 0x26ca0e0 <col:7, col:40>
| | `-CXXOperatorCallExpr 0x26ca098 <col:14, col:40> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26ca038 <col:27> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x26c9e28 0x26c9568
| | |-CallExpr 0x26c9f68 <col:14, col:25> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26c9f10 <col:14, col:20> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26c9e88 <col:14> 'const __normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26c9a98 '__lhs' 'const __normal_iterator<_Iterator, _Container> &'
| | `-CallExpr 0x26ca010 <col:29, col:40> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26c9fb8 <col:29, col:35> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26c9f90 <col:29> 'const __normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26c9ca8 '__rhs' 'const __normal_iterator<_Iterator, _Container> &'
| |-FunctionTemplateDecl 0x26ca7c8 <line:897:3, line:902:43> line:899:5 operator>
| | |-TemplateTypeParmDecl 0x26ca118 <line:897:12, col:21> col:21 referenced typename _IteratorL
| | |-TemplateTypeParmDecl 0x26ca188 <col:33, col:42> col:42 referenced typename _IteratorR
| | |-TemplateTypeParmDecl 0x26ca1f8 <col:54, col:63> col:63 referenced typename _Container
| | `-FunctionDecl 0x26ca720 <line:898:5, line:902:43> line:899:5 operator> '_Bool (const __normal_iterator<_IteratorL, _Container> &, const __normal_iterator<_IteratorR, _Container> &)' inline
| | |-ParmVarDecl 0x26ca438 <col:15, col:64> col:64 referenced __lhs 'const __normal_iterator<_IteratorL, _Container> &'
| | |-ParmVarDecl 0x26ca648 <line:900:8, col:57> col:57 referenced __rhs 'const __normal_iterator<_IteratorR, _Container> &'
| | `-CompoundStmt 0x26caa30 <line:902:5, col:43>
| | `-ReturnStmt 0x26caa18 <col:7, col:40>
| | `-CXXOperatorCallExpr 0x26ca9d0 <col:14, col:40> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26ca978 <col:27> '<overloaded function type>' lvalue (ADL) = 'operator>' 0x26ca7c8
| | |-CallExpr 0x26ca8a8 <col:14, col:25> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26ca850 <col:14, col:20> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26ca828 <col:14> 'const __normal_iterator<_IteratorL, _Container>' lvalue ParmVar 0x26ca438 '__lhs' 'const __normal_iterator<_IteratorL, _Container> &'
| | `-CallExpr 0x26ca950 <col:29, col:40> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26ca8f8 <col:29, col:35> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26ca8d0 <col:29> 'const __normal_iterator<_IteratorR, _Container>' lvalue ParmVar 0x26ca648 '__rhs' 'const __normal_iterator<_IteratorR, _Container> &'
| |-FunctionTemplateDecl 0x26cb098 <line:904:3, line:909:43> line:906:5 operator>
| | |-TemplateTypeParmDecl 0x26caa50 <line:904:12, col:21> col:21 referenced typename _Iterator
| | |-TemplateTypeParmDecl 0x26caab8 <col:32, col:41> col:41 referenced typename _Container
| | `-FunctionDecl 0x26caff0 <line:905:5, line:909:43> line:906:5 operator> '_Bool (const __normal_iterator<_Iterator, _Container> &, const __normal_iterator<_Iterator, _Container> &)' inline
| | |-ParmVarDecl 0x26cacf8 <col:15, col:63> col:63 referenced __lhs 'const __normal_iterator<_Iterator, _Container> &'
| | |-ParmVarDecl 0x26caf20 <line:907:8, col:56> col:56 referenced __rhs 'const __normal_iterator<_Iterator, _Container> &'
| | `-CompoundStmt 0x26cb308 <line:909:5, col:43>
| | `-ReturnStmt 0x26cb2f0 <col:7, col:40>
| | `-CXXOperatorCallExpr 0x26cb2a8 <col:14, col:40> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26cb248 <col:27> '<overloaded function type>' lvalue (ADL) = 'operator>' 0x26cb098 0x26ca7c8
| | |-CallExpr 0x26cb178 <col:14, col:25> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26cb120 <col:14, col:20> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26cb0f8 <col:14> 'const __normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26cacf8 '__lhs' 'const __normal_iterator<_Iterator, _Container> &'
| | `-CallExpr 0x26cb220 <col:29, col:40> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26cb1c8 <col:29, col:35> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26cb1a0 <col:29> 'const __normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26caf20 '__rhs' 'const __normal_iterator<_Iterator, _Container> &'
| |-FunctionTemplateDecl 0x26cb9d8 <line:911:3, line:916:44> line:913:5 operator<=
| | |-TemplateTypeParmDecl 0x26cb328 <line:911:12, col:21> col:21 referenced typename _IteratorL
| | |-TemplateTypeParmDecl 0x26cb398 <col:33, col:42> col:42 referenced typename _IteratorR
| | |-TemplateTypeParmDecl 0x26cb408 <col:54, col:63> col:63 referenced typename _Container
| | `-FunctionDecl 0x26cb930 <line:912:5, line:916:44> line:913:5 operator<= '_Bool (const __normal_iterator<_IteratorL, _Container> &, const __normal_iterator<_IteratorR, _Container> &)' inline
| | |-ParmVarDecl 0x26cb648 <col:16, col:65> col:65 referenced __lhs 'const __normal_iterator<_IteratorL, _Container> &'
| | |-ParmVarDecl 0x26cb858 <line:914:9, col:58> col:58 referenced __rhs 'const __normal_iterator<_IteratorR, _Container> &'
| | `-CompoundStmt 0x26cbc40 <line:916:5, col:44>
| | `-ReturnStmt 0x26cbc28 <col:7, col:41>
| | `-CXXOperatorCallExpr 0x26cbbe0 <col:14, col:41> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26cbb88 <col:27> '<overloaded function type>' lvalue (ADL) = 'operator<=' 0x26cb9d8
| | |-CallExpr 0x26cbab8 <col:14, col:25> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26cba60 <col:14, col:20> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26cba38 <col:14> 'const __normal_iterator<_IteratorL, _Container>' lvalue ParmVar 0x26cb648 '__lhs' 'const __normal_iterator<_IteratorL, _Container> &'
| | `-CallExpr 0x26cbb60 <col:30, col:41> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26cbb08 <col:30, col:36> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26cbae0 <col:30> 'const __normal_iterator<_IteratorR, _Container>' lvalue ParmVar 0x26cb858 '__rhs' 'const __normal_iterator<_IteratorR, _Container> &'
| |-FunctionTemplateDecl 0x26cc2b8 <line:918:3, line:923:44> line:920:5 operator<=
| | |-TemplateTypeParmDecl 0x26cbc60 <line:918:12, col:21> col:21 referenced typename _Iterator
| | |-TemplateTypeParmDecl 0x26cbcc8 <col:32, col:41> col:41 referenced typename _Container
| | `-FunctionDecl 0x26cc210 <line:919:5, line:923:44> line:920:5 operator<= '_Bool (const __normal_iterator<_Iterator, _Container> &, const __normal_iterator<_Iterator, _Container> &)' inline
| | |-ParmVarDecl 0x26cbf30 <col:16, col:64> col:64 referenced __lhs 'const __normal_iterator<_Iterator, _Container> &'
| | |-ParmVarDecl 0x26cc138 <line:921:9, col:57> col:57 referenced __rhs 'const __normal_iterator<_Iterator, _Container> &'
| | `-CompoundStmt 0x26cc528 <line:923:5, col:44>
| | `-ReturnStmt 0x26cc510 <col:7, col:41>
| | `-CXXOperatorCallExpr 0x26cc4c8 <col:14, col:41> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26cc468 <col:27> '<overloaded function type>' lvalue (ADL) = 'operator<=' 0x26cc2b8 0x26cb9d8
| | |-CallExpr 0x26cc398 <col:14, col:25> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26cc340 <col:14, col:20> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26cc318 <col:14> 'const __normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26cbf30 '__lhs' 'const __normal_iterator<_Iterator, _Container> &'
| | `-CallExpr 0x26cc440 <col:30, col:41> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26cc3e8 <col:30, col:36> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26cc3c0 <col:30> 'const __normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26cc138 '__rhs' 'const __normal_iterator<_Iterator, _Container> &'
| |-FunctionTemplateDecl 0x26ccbf8 <line:925:3, line:930:44> line:927:5 operator>=
| | |-TemplateTypeParmDecl 0x26cc548 <line:925:12, col:21> col:21 referenced typename _IteratorL
| | |-TemplateTypeParmDecl 0x26cc5b8 <col:33, col:42> col:42 referenced typename _IteratorR
| | |-TemplateTypeParmDecl 0x26cc628 <col:54, col:63> col:63 referenced typename _Container
| | `-FunctionDecl 0x26ccb50 <line:926:5, line:930:44> line:927:5 operator>= '_Bool (const __normal_iterator<_IteratorL, _Container> &, const __normal_iterator<_IteratorR, _Container> &)' inline
| | |-ParmVarDecl 0x26cc868 <col:16, col:65> col:65 referenced __lhs 'const __normal_iterator<_IteratorL, _Container> &'
| | |-ParmVarDecl 0x26cca78 <line:928:9, col:58> col:58 referenced __rhs 'const __normal_iterator<_IteratorR, _Container> &'
| | `-CompoundStmt 0x26cce60 <line:930:5, col:44>
| | `-ReturnStmt 0x26cce48 <col:7, col:41>
| | `-CXXOperatorCallExpr 0x26cce00 <col:14, col:41> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26ccda8 <col:27> '<overloaded function type>' lvalue (ADL) = 'operator>=' 0x26ccbf8
| | |-CallExpr 0x26cccd8 <col:14, col:25> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26ccc80 <col:14, col:20> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26ccc58 <col:14> 'const __normal_iterator<_IteratorL, _Container>' lvalue ParmVar 0x26cc868 '__lhs' 'const __normal_iterator<_IteratorL, _Container> &'
| | `-CallExpr 0x26ccd80 <col:30, col:41> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26ccd28 <col:30, col:36> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26ccd00 <col:30> 'const __normal_iterator<_IteratorR, _Container>' lvalue ParmVar 0x26cca78 '__rhs' 'const __normal_iterator<_IteratorR, _Container> &'
| |-FunctionTemplateDecl 0x26cd4c8 <line:932:3, line:937:44> line:934:5 operator>=
| | |-TemplateTypeParmDecl 0x26cce80 <line:932:12, col:21> col:21 referenced typename _Iterator
| | |-TemplateTypeParmDecl 0x26ccee8 <col:32, col:41> col:41 referenced typename _Container
| | `-FunctionDecl 0x26cd420 <line:933:5, line:937:44> line:934:5 operator>= '_Bool (const __normal_iterator<_Iterator, _Container> &, const __normal_iterator<_Iterator, _Container> &)' inline
| | |-ParmVarDecl 0x26cd138 <col:16, col:64> col:64 referenced __lhs 'const __normal_iterator<_Iterator, _Container> &'
| | |-ParmVarDecl 0x26cd348 <line:935:9, col:57> col:57 referenced __rhs 'const __normal_iterator<_Iterator, _Container> &'
| | `-CompoundStmt 0x26cd738 <line:937:5, col:44>
| | `-ReturnStmt 0x26cd720 <col:7, col:41>
| | `-CXXOperatorCallExpr 0x26cd6d8 <col:14, col:41> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26cd678 <col:27> '<overloaded function type>' lvalue (ADL) = 'operator>=' 0x26cd4c8 0x26ccbf8
| | |-CallExpr 0x26cd5a8 <col:14, col:25> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26cd550 <col:14, col:20> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26cd528 <col:14> 'const __normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26cd138 '__lhs' 'const __normal_iterator<_Iterator, _Container> &'
| | `-CallExpr 0x26cd650 <col:30, col:41> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26cd5f8 <col:30, col:36> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26cd5d0 <col:30> 'const __normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26cd348 '__rhs' 'const __normal_iterator<_Iterator, _Container> &'
| |-FunctionTemplateDecl 0x26ce078 <line:943:3, line:955:43> line:952:5 operator-
| | |-TemplateTypeParmDecl 0x26cd758 <line:943:12, col:21> col:21 referenced typename _IteratorL
| | |-TemplateTypeParmDecl 0x26cd7c8 <col:33, col:42> col:42 referenced typename _IteratorR
| | |-TemplateTypeParmDecl 0x26cd838 <col:54, col:63> col:63 referenced typename _Container
| | |-FunctionDecl 0x26cdfd0 <line:951:5, line:955:43> line:952:5 operator- 'typename __normal_iterator<_IteratorL, _Container>::difference_type (const __normal_iterator<_IteratorL, _Container> &, const __normal_iterator<_IteratorR, _Container> &)' inline
| | | |-ParmVarDecl 0x26cdc58 <col:15, col:64> col:64 referenced __lhs 'const __normal_iterator<_IteratorL, _Container> &'
| | | |-ParmVarDecl 0x26cde68 <line:953:8, col:57> col:57 referenced __rhs 'const __normal_iterator<_IteratorR, _Container> &'
| | | `-CompoundStmt 0x26ce2e0 <line:955:5, col:43>
| | | `-ReturnStmt 0x26ce2c8 <col:7, col:40>
| | | `-CXXOperatorCallExpr 0x26ce280 <col:14, col:40> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x26ce228 <col:27> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26ce078
| | | |-CallExpr 0x26ce158 <col:14, col:25> '<dependent type>'
| | | | `-CXXDependentScopeMemberExpr 0x26ce100 <col:14, col:20> '<dependent type>' lvalue
| | | | `-DeclRefExpr 0x26ce0d8 <col:14> 'const __normal_iterator<_IteratorL, _Container>' lvalue ParmVar 0x26cdc58 '__lhs' 'const __normal_iterator<_IteratorL, _Container> &'
| | | `-CallExpr 0x26ce200 <col:29, col:40> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26ce1a8 <col:29, col:35> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26ce180 <col:29> 'const __normal_iterator<_IteratorR, _Container>' lvalue ParmVar 0x26cde68 '__rhs' 'const __normal_iterator<_IteratorR, _Container> &'
| | `-FunctionDecl 0x2833610 <line:951:5, line:955:43> line:952:5 operator- 'typename __normal_iterator<struct A *, class vector<struct A, class allocator<struct A> > >::difference_type (const __normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &, const __normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &)' inline
| | |-TemplateArgument type 'struct A *'
| | |-TemplateArgument type 'struct A *'
| | |-TemplateArgument type 'class std::vector<struct A, class std::allocator<struct A> >'
| | |-ParmVarDecl 0x2833348 <col:15, col:64> col:64 __lhs 'const __normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &'
| | `-ParmVarDecl 0x28334d8 <line:953:8, col:57> col:57 __rhs 'const __normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &'
| |-FunctionTemplateDecl 0x26ceb68 <line:957:3, line:962:43> line:959:5 operator-
| | |-TemplateTypeParmDecl 0x26ce300 <line:957:12, col:21> col:21 referenced typename _Iterator
| | |-TemplateTypeParmDecl 0x26ce368 <col:32, col:41> col:41 referenced typename _Container
| | |-FunctionDecl 0x26ceac0 <line:958:5, line:962:43> line:959:5 operator- 'typename __normal_iterator<_Iterator, _Container>::difference_type (const __normal_iterator<_Iterator, _Container> &, const __normal_iterator<_Iterator, _Container> &)' inline
| | | |-ParmVarDecl 0x26ce788 <col:15, col:63> col:63 referenced __lhs 'const __normal_iterator<_Iterator, _Container> &'
| | | |-ParmVarDecl 0x26ce998 <line:960:8, col:56> col:56 referenced __rhs 'const __normal_iterator<_Iterator, _Container> &'
| | | `-CompoundStmt 0x26cedd8 <line:962:5, col:43>
| | | `-ReturnStmt 0x26cedc0 <col:7, col:40>
| | | `-CXXOperatorCallExpr 0x26ced78 <col:14, col:40> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x26ced18 <col:27> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26ceb68 0x26ce078
| | | |-CallExpr 0x26cec48 <col:14, col:25> '<dependent type>'
| | | | `-CXXDependentScopeMemberExpr 0x26cebf0 <col:14, col:20> '<dependent type>' lvalue
| | | | `-DeclRefExpr 0x26cebc8 <col:14> 'const __normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26ce788 '__lhs' 'const __normal_iterator<_Iterator, _Container> &'
| | | `-CallExpr 0x26cecf0 <col:29, col:40> '<dependent type>'
| | | `-CXXDependentScopeMemberExpr 0x26cec98 <col:29, col:35> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26cec70 <col:29> 'const __normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26ce998 '__rhs' 'const __normal_iterator<_Iterator, _Container> &'
| | `-FunctionDecl 0x2833d00 <line:958:5, line:962:43> line:959:5 used operator- 'typename __normal_iterator<struct A *, class vector<struct A, class allocator<struct A> > >::difference_type (const __normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &, const __normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &)' inline
| | |-TemplateArgument type 'struct A *'
| | |-TemplateArgument type 'class std::vector<struct A, class std::allocator<struct A> >'
| | |-ParmVarDecl 0x2833ab8 <col:15, col:63> col:63 used __lhs 'const __normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &'
| | |-ParmVarDecl 0x2833c18 <line:960:8, col:56> col:56 used __rhs 'const __normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &'
| | `-CompoundStmt 0x283d1e0 <line:962:5, col:43>
| | `-ReturnStmt 0x283d1c8 <col:7, col:40>
| | `-BinaryOperator 0x283d1a0 <col:14, col:40> 'long' '-'
| | |-ImplicitCastExpr 0x283d170 <col:14, col:25> 'struct A *':'struct A *' <LValueToRValue>
| | | `-CXXMemberCallExpr 0x283d0c0 <col:14, col:25> 'struct A *const':'struct A *const' lvalue
| | | `-MemberExpr 0x283d088 <col:14, col:20> '<bound member function type>' .base 0x282f920
| | | `-DeclRefExpr 0x283d060 <col:14> 'const __normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > >':'const class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > >' lvalue ParmVar 0x2833ab8 '__lhs' 'const __normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &'
| | `-ImplicitCastExpr 0x283d188 <col:29, col:40> 'struct A *':'struct A *' <LValueToRValue>
| | `-CXXMemberCallExpr 0x283d148 <col:29, col:40> 'struct A *const':'struct A *const' lvalue
| | `-MemberExpr 0x283d110 <col:29, col:35> '<bound member function type>' .base 0x282f920
| | `-DeclRefExpr 0x283d0e8 <col:29> 'const __normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > >':'const class __gnu_cxx::__normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > >' lvalue ParmVar 0x2833c18 '__rhs' 'const __normal_iterator<struct A *, class std::vector<struct A, class std::allocator<struct A> > > &'
| `-FunctionTemplateDecl 0x26cf630 <line:964:3, line:969:74> line:966:5 operator+
| |-TemplateTypeParmDecl 0x26cedf8 <line:964:12, col:21> col:21 referenced typename _Iterator
| |-TemplateTypeParmDecl 0x26cee68 <col:32, col:41> col:41 referenced typename _Container
| `-FunctionDecl 0x26cf588 <line:965:5, line:969:74> line:966:5 operator+ '__normal_iterator<_Iterator, _Container> (typename __normal_iterator<_Iterator, _Container>::difference_type, const __normal_iterator<_Iterator, _Container> &)' inline
| |-ParmVarDecl 0x26cf230 <col:15, line:967:8> col:8 referenced __n 'typename __normal_iterator<_Iterator, _Container>::difference_type'
| |-ParmVarDecl 0x26cf438 <col:13, col:61> col:61 referenced __i 'const __normal_iterator<_Iterator, _Container> &'
| `-CompoundStmt 0x26cf9b8 <line:969:5, col:74>
| `-ReturnStmt 0x26cf9a0 <col:7, col:71>
| `-CXXUnresolvedConstructExpr 0x26cf970 <col:14, col:71> '__normal_iterator<_Iterator, _Container>'
| `-CXXOperatorCallExpr 0x26cf928 <col:55, col:68> '<dependent type>'
| |-UnresolvedLookupExpr 0x26cf8d0 <col:66> '<overloaded function type>' lvalue (ADL) = 'operator+' 0x26cf630
| |-CallExpr 0x26cf880 <col:55, col:64> '<dependent type>'
| | `-CXXDependentScopeMemberExpr 0x26cf828 <col:55, col:59> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26cf800 <col:55> 'const __normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26cf438 '__i' 'const __normal_iterator<_Iterator, _Container> &'
| `-DeclRefExpr 0x26cf8a8 <col:68> 'typename __normal_iterator<_Iterator, _Container>::difference_type' lvalue ParmVar 0x26cf230 '__n' 'typename __normal_iterator<_Iterator, _Container>::difference_type'
|-NamespaceDecl 0x26cfa08 prev 0x26a60f0 <line:974:1, line:984:1> line:974:11 std
| |-original Namespace 0x25fd3b0 'std'
| |-VisibilityAttr 0x26cfa70 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:67:49, col:67> Default
| `-FunctionTemplateDecl 0x26d0f80 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_iterator.h:978:3, line:981:27> line:980:5 __niter_base
| |-TemplateTypeParmDecl 0x26cfaa8 <line:978:12, col:21> col:21 referenced typename _Iterator
| |-TemplateTypeParmDecl 0x26cfb18 <col:32, col:41> col:41 referenced typename _Container
| `-FunctionDecl 0x26cfeb0 <line:979:5, line:981:27> line:980:5 __niter_base '_Iterator (__gnu_cxx::__normal_iterator<_Iterator, _Container>)'
| |-ParmVarDecl 0x26cfda8 <col:18, col:70> col:70 referenced __it '__gnu_cxx::__normal_iterator<_Iterator, _Container>':'__normal_iterator<_Iterator, _Container>'
| `-CompoundStmt 0x26d1098 <line:981:5, col:27>
| `-ReturnStmt 0x26d1080 <col:7, col:24>
| `-CallExpr 0x26d1058 <col:14, col:24> '<dependent type>'
| `-CXXDependentScopeMemberExpr 0x26d1000 <col:14, col:19> '<dependent type>' lvalue
| `-DeclRefExpr 0x26d0fd8 <col:14> '__gnu_cxx::__normal_iterator<_Iterator, _Container>':'__normal_iterator<_Iterator, _Container>' lvalue ParmVar 0x26cfda8 '__it' '__gnu_cxx::__normal_iterator<_Iterator, _Container>':'__normal_iterator<_Iterator, _Container>'
|-NamespaceDecl 0x26d10b8 prev 0x26cfa08 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/debug/debug.h:48:1, line:51:1> line:48:11 std
| |-original Namespace 0x25fd3b0 'std'
| `-NamespaceDecl 0x26d1120 <line:50:3, col:23> col:13 __debug
|-NamespaceDecl 0x26d1188 <line:56:1, line:59:1> line:56:11 __gnu_debug
| `-UsingDirectiveDecl 0x26d1210 <line:58:3, col:24> col:24 Namespace 0x26d1120 '__debug'
|-NamespaceDecl 0x26d1260 prev 0x26c0a80 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/predefined_ops.h:33:1, line:305:1> line:33:11 __gnu_cxx
| |-original Namespace 0x25fd6b0 '__gnu_cxx'
| `-NamespaceDecl 0x26d12c8 <line:35:1, line:304:1> line:35:11 __ops
| |-CXXRecordDecl 0x26d1330 <line:37:3, line:44:3> line:37:10 referenced struct _Iter_less_iter definition
| | |-CXXRecordDecl 0x26d1450 <col:3, col:10> col:10 implicit struct _Iter_less_iter
| | |-FunctionTemplateDecl 0x26d1828 <line:39:5, line:43:33> line:42:7 operator()
| | | |-TemplateTypeParmDecl 0x26d14e8 <line:39:14, col:23> col:23 referenced typename _Iterator1
| | | |-TemplateTypeParmDecl 0x26d1558 <col:35, col:44> col:44 referenced typename _Iterator2
| | | `-CXXMethodDecl 0x26d1780 <line:41:7, line:43:33> line:42:7 operator() '_Bool (_Iterator1, _Iterator2) const'
| | | |-ParmVarDecl 0x26d15f8 <col:18, col:29> col:29 referenced __it1 '_Iterator1'
| | | |-ParmVarDecl 0x26d1668 <col:36, col:47> col:47 referenced __it2 '_Iterator2'
| | | `-CompoundStmt 0x26d1a08 <line:43:7, col:33>
| | | `-ReturnStmt 0x26d19f0 <col:9, col:26>
| | | `-CXXOperatorCallExpr 0x26d19a8 <col:16, col:26> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x26d1948 <col:23> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x26c9568 0x26c9e28
| | | |-UnaryOperator 0x26d18e0 <col:16, col:17> '<dependent type>' prefix '*'
| | | | `-DeclRefExpr 0x26d18b8 <col:17> '_Iterator1' lvalue ParmVar 0x26d15f8 '__it1' '_Iterator1'
| | | `-UnaryOperator 0x26d1928 <col:25, col:26> '<dependent type>' prefix '*'
| | | `-DeclRefExpr 0x26d1900 <col:26> '_Iterator2' lvalue ParmVar 0x26d1668 '__it2' '_Iterator2'
| | |-CXXConstructorDecl 0x26d1b58 <line:37:10> col:10 implicit referenced _Iter_less_iter 'void (void)' inline noexcept-unevaluated 0x26d1b58
| | |-CXXConstructorDecl 0x26d1c78 <col:10> col:10 implicit used _Iter_less_iter 'void (const struct __gnu_cxx::__ops::_Iter_less_iter &) throw()' inline
| | | |-ParmVarDecl 0x26d1db0 <col:10> col:10 'const struct __gnu_cxx::__ops::_Iter_less_iter &'
| | | `-CompoundStmt 0x26d8718 <col:10>
| | `-CXXDestructorDecl 0x26d1e70 <col:10> col:10 implicit referenced ~_Iter_less_iter 'void (void)' inline noexcept-unevaluated 0x26d1e70
| |-FunctionDecl 0x26d1a80 <line:46:3, line:48:31> line:47:3 referenced __iter_less_iter 'struct __gnu_cxx::__ops::_Iter_less_iter (void)' inline
| | `-CompoundStmt 0x26d87d0 <line:48:3, col:31>
| | `-ReturnStmt 0x26d87b8 <col:5, col:28>
| | `-ExprWithCleanups 0x26d87a0 <col:12, col:28> 'struct __gnu_cxx::__ops::_Iter_less_iter'
| | `-CXXConstructExpr 0x26d8768 <col:12, col:28> 'struct __gnu_cxx::__ops::_Iter_less_iter' 'void (const struct __gnu_cxx::__ops::_Iter_less_iter &) throw()' elidable
| | `-MaterializeTemporaryExpr 0x26d8700 <col:12, col:28> 'const struct __gnu_cxx::__ops::_Iter_less_iter' lvalue
| | `-ImplicitCastExpr 0x26d1f58 <col:12, col:28> 'const struct __gnu_cxx::__ops::_Iter_less_iter' <NoOp>
| | `-CXXTemporaryObjectExpr 0x26d1e18 <col:12, col:28> 'struct __gnu_cxx::__ops::_Iter_less_iter' 'void (void)' zeroing
| |-CXXRecordDecl 0x26d87f0 <line:50:3, line:56:5> line:50:10 referenced struct _Iter_less_val definition
| | |-CXXRecordDecl 0x26d8910 <col:3, col:10> col:10 implicit struct _Iter_less_val
| | |-FunctionTemplateDecl 0x26d8d18 <line:52:5, line:55:31> line:54:7 operator()
| | | |-TemplateTypeParmDecl 0x26d89a8 <line:52:14, col:23> col:23 referenced typename _Iterator
| | | |-TemplateTypeParmDecl 0x26d8a18 <col:34, col:43> col:43 referenced typename _Value
| | | `-CXXMethodDecl 0x26d8c70 <line:53:7, line:55:31> line:54:7 operator() '_Bool (_Iterator, _Value &) const'
| | | |-ParmVarDecl 0x26d8ab8 <col:18, col:28> col:28 referenced __it '_Iterator'
| | | |-ParmVarDecl 0x26d8b58 <col:34, col:42> col:42 referenced __val '_Value &'
| | | `-CompoundStmt 0x26d8ed8 <line:55:7, col:31>
| | | `-ReturnStmt 0x26d8ec0 <col:9, col:24>
| | | `-CXXOperatorCallExpr 0x26d8e78 <col:16, col:24> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x26d8e18 <col:22> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x26c9568 0x26c9e28
| | | |-UnaryOperator 0x26d8dd0 <col:16, col:17> '<dependent type>' prefix '*'
| | | | `-DeclRefExpr 0x26d8da8 <col:17> '_Iterator' lvalue ParmVar 0x26d8ab8 '__it' '_Iterator'
| | | `-DeclRefExpr 0x26d8df0 <col:24> '_Value' lvalue ParmVar 0x26d8b58 '__val' '_Value &'
| | |-CXXConstructorDecl 0x26d9028 <line:50:10> col:10 implicit referenced _Iter_less_val 'void (void)' inline noexcept-unevaluated 0x26d9028
| | |-CXXConstructorDecl 0x26d9148 <col:10> col:10 implicit used _Iter_less_val 'void (const struct __gnu_cxx::__ops::_Iter_less_val &) throw()' inline
| | | |-ParmVarDecl 0x26d9280 <col:10> col:10 'const struct __gnu_cxx::__ops::_Iter_less_val &'
| | | `-CompoundStmt 0x26d9458 <col:10>
| | `-CXXDestructorDecl 0x26d9340 <col:10> col:10 implicit referenced ~_Iter_less_val 'void (void)' inline noexcept-unevaluated 0x26d9340
| |-FunctionDecl 0x26d8f50 <line:58:3, line:60:30> line:59:3 referenced __iter_less_val 'struct __gnu_cxx::__ops::_Iter_less_val (void)' inline
| | `-CompoundStmt 0x26d9510 <line:60:3, col:30>
| | `-ReturnStmt 0x26d94f8 <col:5, col:27>
| | `-ExprWithCleanups 0x26d94e0 <col:12, col:27> 'struct __gnu_cxx::__ops::_Iter_less_val'
| | `-CXXConstructExpr 0x26d94a8 <col:12, col:27> 'struct __gnu_cxx::__ops::_Iter_less_val' 'void (const struct __gnu_cxx::__ops::_Iter_less_val &) throw()' elidable
| | `-MaterializeTemporaryExpr 0x26d9440 <col:12, col:27> 'const struct __gnu_cxx::__ops::_Iter_less_val' lvalue
| | `-ImplicitCastExpr 0x26d9428 <col:12, col:27> 'const struct __gnu_cxx::__ops::_Iter_less_val' <NoOp>
| | `-CXXTemporaryObjectExpr 0x26d92e8 <col:12, col:27> 'struct __gnu_cxx::__ops::_Iter_less_val' 'void (void)' zeroing
| |-FunctionDecl 0x26d9600 <line:62:3, line:64:30> line:63:3 __iter_comp_val 'struct __gnu_cxx::__ops::_Iter_less_val (struct __gnu_cxx::__ops::_Iter_less_iter)' inline
| | |-ParmVarDecl 0x26d9540 <col:19> col:34 'struct __gnu_cxx::__ops::_Iter_less_iter'
| | `-CompoundStmt 0x26d9bb8 <line:64:3, col:30>
| | `-ReturnStmt 0x26d9ba0 <col:5, col:27>
| | `-ExprWithCleanups 0x26d9b88 <col:12, col:27> 'struct __gnu_cxx::__ops::_Iter_less_val'
| | `-CXXConstructExpr 0x26d9b50 <col:12, col:27> 'struct __gnu_cxx::__ops::_Iter_less_val' 'void (const struct __gnu_cxx::__ops::_Iter_less_val &) throw()' elidable
| | `-MaterializeTemporaryExpr 0x26d9b38 <col:12, col:27> 'const struct __gnu_cxx::__ops::_Iter_less_val' lvalue
| | `-ImplicitCastExpr 0x26d9b20 <col:12, col:27> 'const struct __gnu_cxx::__ops::_Iter_less_val' <NoOp>
| | `-CXXTemporaryObjectExpr 0x26d96c0 <col:12, col:27> 'struct __gnu_cxx::__ops::_Iter_less_val' 'void (void)' zeroing
| |-CXXRecordDecl 0x26d9bd8 <line:66:3, line:72:5> line:66:10 referenced struct _Val_less_iter definition
| | |-CXXRecordDecl 0x26d9cf0 <col:3, col:10> col:10 implicit struct _Val_less_iter
| | |-FunctionTemplateDecl 0x26da0f8 <line:68:5, line:71:31> line:70:7 operator()
| | | |-TemplateTypeParmDecl 0x26d9d88 <line:68:14, col:23> col:23 referenced typename _Value
| | | |-TemplateTypeParmDecl 0x26d9df8 <col:31, col:40> col:40 referenced typename _Iterator
| | | `-CXXMethodDecl 0x26da050 <line:69:7, line:71:31> line:70:7 operator() '_Bool (_Value &, _Iterator) const'
| | | |-ParmVarDecl 0x26d9ec8 <col:18, col:26> col:26 referenced __val '_Value &'
| | | |-ParmVarDecl 0x26d9f38 <col:33, col:43> col:43 referenced __it '_Iterator'
| | | `-CompoundStmt 0x26da2b8 <line:71:7, col:31>
| | | `-ReturnStmt 0x26da2a0 <col:9, col:25>
| | | `-CXXOperatorCallExpr 0x26da258 <col:16, col:25> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x26da1f8 <col:22> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x26c9568 0x26c9e28
| | | |-DeclRefExpr 0x26da188 <col:16> '_Value' lvalue ParmVar 0x26d9ec8 '__val' '_Value &'
| | | `-UnaryOperator 0x26da1d8 <col:24, col:25> '<dependent type>' prefix '*'
| | | `-DeclRefExpr 0x26da1b0 <col:25> '_Iterator' lvalue ParmVar 0x26d9f38 '__it' '_Iterator'
| | |-CXXConstructorDecl 0x26da408 <line:66:10> col:10 implicit referenced _Val_less_iter 'void (void)' inline noexcept-unevaluated 0x26da408
| | |-CXXConstructorDecl 0x26da528 <col:10> col:10 implicit used _Val_less_iter 'void (const struct __gnu_cxx::__ops::_Val_less_iter &) throw()' inline
| | | |-ParmVarDecl 0x26da660 <col:10> col:10 'const struct __gnu_cxx::__ops::_Val_less_iter &'
| | | `-CompoundStmt 0x26da838 <col:10>
| | `-CXXDestructorDecl 0x26da720 <col:10> col:10 implicit referenced ~_Val_less_iter 'void (void)' inline noexcept-unevaluated 0x26da720
| |-FunctionDecl 0x26da330 <line:74:3, line:76:30> line:75:3 __val_less_iter 'struct __gnu_cxx::__ops::_Val_less_iter (void)' inline
| | `-CompoundStmt 0x26da8f0 <line:76:3, col:30>
| | `-ReturnStmt 0x26da8d8 <col:5, col:27>
| | `-ExprWithCleanups 0x26da8c0 <col:12, col:27> 'struct __gnu_cxx::__ops::_Val_less_iter'
| | `-CXXConstructExpr 0x26da888 <col:12, col:27> 'struct __gnu_cxx::__ops::_Val_less_iter' 'void (const struct __gnu_cxx::__ops::_Val_less_iter &) throw()' elidable
| | `-MaterializeTemporaryExpr 0x26da820 <col:12, col:27> 'const struct __gnu_cxx::__ops::_Val_less_iter' lvalue
| | `-ImplicitCastExpr 0x26da808 <col:12, col:27> 'const struct __gnu_cxx::__ops::_Val_less_iter' <NoOp>
| | `-CXXTemporaryObjectExpr 0x26da6c8 <col:12, col:27> 'struct __gnu_cxx::__ops::_Val_less_iter' 'void (void)' zeroing
| |-FunctionDecl 0x26da9e0 <line:78:3, line:80:30> line:79:3 __val_comp_iter 'struct __gnu_cxx::__ops::_Val_less_iter (struct __gnu_cxx::__ops::_Iter_less_iter)' inline
| | |-ParmVarDecl 0x26da920 <col:19> col:34 'struct __gnu_cxx::__ops::_Iter_less_iter'
| | `-CompoundStmt 0x26dc4b8 <line:80:3, col:30>
| | `-ReturnStmt 0x26dc4a0 <col:5, col:27>
| | `-ExprWithCleanups 0x26dc488 <col:12, col:27> 'struct __gnu_cxx::__ops::_Val_less_iter'
| | `-CXXConstructExpr 0x26dc450 <col:12, col:27> 'struct __gnu_cxx::__ops::_Val_less_iter' 'void (const struct __gnu_cxx::__ops::_Val_less_iter &) throw()' elidable
| | `-MaterializeTemporaryExpr 0x26daaf0 <col:12, col:27> 'const struct __gnu_cxx::__ops::_Val_less_iter' lvalue
| | `-ImplicitCastExpr 0x26daad8 <col:12, col:27> 'const struct __gnu_cxx::__ops::_Val_less_iter' <NoOp>
| | `-CXXTemporaryObjectExpr 0x26daaa0 <col:12, col:27> 'struct __gnu_cxx::__ops::_Val_less_iter' 'void (void)' zeroing
| |-CXXRecordDecl 0x26dc4d8 <line:82:3, line:88:5> line:82:10 referenced struct _Iter_equal_to_iter definition
| | |-CXXRecordDecl 0x26dc5f0 <col:3, col:10> col:10 implicit struct _Iter_equal_to_iter
| | |-FunctionTemplateDecl 0x26dc988 <line:84:5, line:87:34> line:86:7 operator()
| | | |-TemplateTypeParmDecl 0x26dc688 <line:84:14, col:23> col:23 referenced typename _Iterator1
| | | |-TemplateTypeParmDecl 0x26dc6f8 <col:35, col:44> col:44 referenced typename _Iterator2
| | | `-CXXMethodDecl 0x26dc8e0 <line:85:7, line:87:34> line:86:7 operator() '_Bool (_Iterator1, _Iterator2) const'
| | | |-ParmVarDecl 0x26dc798 <col:18, col:29> col:29 referenced __it1 '_Iterator1'
| | | |-ParmVarDecl 0x26dc808 <col:36, col:47> col:47 referenced __it2 '_Iterator2'
| | | `-CompoundStmt 0x26dcb68 <line:87:7, col:34>
| | | `-ReturnStmt 0x26dcb50 <col:9, col:27>
| | | `-CXXOperatorCallExpr 0x26dcb08 <col:16, col:27> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x26dcaa8 <col:23> '<overloaded function type>' lvalue (ADL) = 'operator==' 0x26c7098 0x26c79c8
| | | |-UnaryOperator 0x26dca40 <col:16, col:17> '<dependent type>' prefix '*'
| | | | `-DeclRefExpr 0x26dca18 <col:17> '_Iterator1' lvalue ParmVar 0x26dc798 '__it1' '_Iterator1'
| | | `-UnaryOperator 0x26dca88 <col:26, col:27> '<dependent type>' prefix '*'
| | | `-DeclRefExpr 0x26dca60 <col:27> '_Iterator2' lvalue ParmVar 0x26dc808 '__it2' '_Iterator2'
| | |-CXXConstructorDecl 0x26dccb8 <line:82:10> col:10 implicit referenced _Iter_equal_to_iter 'void (void)' inline noexcept-unevaluated 0x26dccb8
| | |-CXXConstructorDecl 0x26dcdd8 <col:10> col:10 implicit used _Iter_equal_to_iter 'void (const struct __gnu_cxx::__ops::_Iter_equal_to_iter &) throw()' inline
| | | |-ParmVarDecl 0x26dcf10 <col:10> col:10 'const struct __gnu_cxx::__ops::_Iter_equal_to_iter &'
| | | `-CompoundStmt 0x26dd0e8 <col:10>
| | `-CXXDestructorDecl 0x26dcfd0 <col:10> col:10 implicit referenced ~_Iter_equal_to_iter 'void (void)' inline noexcept-unevaluated 0x26dcfd0
| |-FunctionDecl 0x26dcbe0 <line:90:3, line:92:35> line:91:3 referenced __iter_equal_to_iter 'struct __gnu_cxx::__ops::_Iter_equal_to_iter (void)' inline
| | `-CompoundStmt 0x26dd1a0 <line:92:3, col:35>
| | `-ReturnStmt 0x26dd188 <col:5, col:32>
| | `-ExprWithCleanups 0x26dd170 <col:12, col:32> 'struct __gnu_cxx::__ops::_Iter_equal_to_iter'
| | `-CXXConstructExpr 0x26dd138 <col:12, col:32> 'struct __gnu_cxx::__ops::_Iter_equal_to_iter' 'void (const struct __gnu_cxx::__ops::_Iter_equal_to_iter &) throw()' elidable
| | `-MaterializeTemporaryExpr 0x26dd0d0 <col:12, col:32> 'const struct __gnu_cxx::__ops::_Iter_equal_to_iter' lvalue
| | `-ImplicitCastExpr 0x26dd0b8 <col:12, col:32> 'const struct __gnu_cxx::__ops::_Iter_equal_to_iter' <NoOp>
| | `-CXXTemporaryObjectExpr 0x26dcf78 <col:12, col:32> 'struct __gnu_cxx::__ops::_Iter_equal_to_iter' 'void (void)' zeroing
| |-CXXRecordDecl 0x26dd1c0 <line:94:3, line:100:5> line:94:10 referenced struct _Iter_equal_to_val definition
| | |-CXXRecordDecl 0x26dd2e0 <col:3, col:10> col:10 implicit struct _Iter_equal_to_val
| | |-FunctionTemplateDecl 0x26ddae8 <line:96:5, line:99:32> line:98:7 operator()
| | | |-TemplateTypeParmDecl 0x26dd378 <line:96:14, col:23> col:23 referenced typename _Iterator
| | | |-TemplateTypeParmDecl 0x26dd3e8 <col:34, col:43> col:43 referenced typename _Value
| | | `-CXXMethodDecl 0x26dda40 <line:97:7, line:99:32> line:98:7 operator() '_Bool (_Iterator, _Value &) const'
| | | |-ParmVarDecl 0x26dd8c8 <col:18, col:28> col:28 referenced __it '_Iterator'
| | | |-ParmVarDecl 0x26dd968 <col:34, col:42> col:42 referenced __val '_Value &'
| | | `-CompoundStmt 0x26ddca8 <line:99:7, col:32>
| | | `-ReturnStmt 0x26ddc90 <col:9, col:25>
| | | `-CXXOperatorCallExpr 0x26ddc48 <col:16, col:25> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x26ddbe8 <col:22> '<overloaded function type>' lvalue (ADL) = 'operator==' 0x26c7098 0x26c79c8
| | | |-UnaryOperator 0x26ddba0 <col:16, col:17> '<dependent type>' prefix '*'
| | | | `-DeclRefExpr 0x26ddb78 <col:17> '_Iterator' lvalue ParmVar 0x26dd8c8 '__it' '_Iterator'
| | | `-DeclRefExpr 0x26ddbc0 <col:25> '_Value' lvalue ParmVar 0x26dd968 '__val' '_Value &'
| | |-CXXConstructorDecl 0x26dddf8 <line:94:10> col:10 implicit referenced _Iter_equal_to_val 'void (void)' inline noexcept-unevaluated 0x26dddf8
| | |-CXXConstructorDecl 0x26ddf18 <col:10> col:10 implicit used _Iter_equal_to_val 'void (const struct __gnu_cxx::__ops::_Iter_equal_to_val &) throw()' inline
| | | |-ParmVarDecl 0x26de050 <col:10> col:10 'const struct __gnu_cxx::__ops::_Iter_equal_to_val &'
| | | `-CompoundStmt 0x26de228 <col:10>
| | `-CXXDestructorDecl 0x26de110 <col:10> col:10 implicit referenced ~_Iter_equal_to_val 'void (void)' inline noexcept-unevaluated 0x26de110
| |-FunctionDecl 0x26ddd20 <line:102:3, line:104:34> line:103:3 __iter_equal_to_val 'struct __gnu_cxx::__ops::_Iter_equal_to_val (void)' inline
| | `-CompoundStmt 0x26de2e0 <line:104:3, col:34>
| | `-ReturnStmt 0x26de2c8 <col:5, col:31>
| | `-ExprWithCleanups 0x26de2b0 <col:12, col:31> 'struct __gnu_cxx::__ops::_Iter_equal_to_val'
| | `-CXXConstructExpr 0x26de278 <col:12, col:31> 'struct __gnu_cxx::__ops::_Iter_equal_to_val' 'void (const struct __gnu_cxx::__ops::_Iter_equal_to_val &) throw()' elidable
| | `-MaterializeTemporaryExpr 0x26de210 <col:12, col:31> 'const struct __gnu_cxx::__ops::_Iter_equal_to_val' lvalue
| | `-ImplicitCastExpr 0x26de1f8 <col:12, col:31> 'const struct __gnu_cxx::__ops::_Iter_equal_to_val' <NoOp>
| | `-CXXTemporaryObjectExpr 0x26de0b8 <col:12, col:31> 'struct __gnu_cxx::__ops::_Iter_equal_to_val' 'void (void)' zeroing
| |-FunctionDecl 0x26de3d0 <line:106:3, line:108:34> line:107:3 __iter_comp_val 'struct __gnu_cxx::__ops::_Iter_equal_to_val (struct __gnu_cxx::__ops::_Iter_equal_to_iter)' inline
| | |-ParmVarDecl 0x26de310 <col:19> col:38 'struct __gnu_cxx::__ops::_Iter_equal_to_iter'
| | `-CompoundStmt 0x26de560 <line:108:3, col:34>
| | `-ReturnStmt 0x26de548 <col:5, col:31>
| | `-ExprWithCleanups 0x26de530 <col:12, col:31> 'struct __gnu_cxx::__ops::_Iter_equal_to_val'
| | `-CXXConstructExpr 0x26de4f8 <col:12, col:31> 'struct __gnu_cxx::__ops::_Iter_equal_to_val' 'void (const struct __gnu_cxx::__ops::_Iter_equal_to_val &) throw()' elidable
| | `-MaterializeTemporaryExpr 0x26de4e0 <col:12, col:31> 'const struct __gnu_cxx::__ops::_Iter_equal_to_val' lvalue
| | `-ImplicitCastExpr 0x26de4c8 <col:12, col:31> 'const struct __gnu_cxx::__ops::_Iter_equal_to_val' <NoOp>
| | `-CXXTemporaryObjectExpr 0x26de490 <col:12, col:31> 'struct __gnu_cxx::__ops::_Iter_equal_to_val' 'void (void)' zeroing
| |-ClassTemplateDecl 0x26de698 <line:110:3, line:124:5> line:111:12 _Iter_comp_iter
| | |-TemplateTypeParmDecl 0x26de580 <line:110:12, col:21> col:21 referenced typename _Compare
| | `-CXXRecordDecl 0x26de600 <line:111:5, line:124:5> line:111:12 struct _Iter_comp_iter definition
| | |-CXXRecordDecl 0x26ded68 <col:5, col:12> col:12 implicit referenced struct _Iter_comp_iter
| | |-FieldDecl 0x26dee10 <line:113:7, col:16> col:16 referenced _M_comp '_Compare'
| | |-CXXConstructorDecl 0x26def50 <line:115:7, line:117:9> line:115:7 _Iter_comp_iter<_Compare> 'void (_Compare)'
| | | |-ParmVarDecl 0x26dee68 <col:23, col:32> col:32 referenced __comp '_Compare'
| | | |-CXXCtorInitializer Field 0x26dee10 '_M_comp' '_Compare'
| | | | `-ParenListExpr 0x26df400 <line:116:11, col:18> 'NULL TYPE'
| | | | `-DeclRefExpr 0x26df3d8 <col:12> '_Compare' lvalue ParmVar 0x26dee68 '__comp' '_Compare'
| | | `-CompoundStmt 0x26df460 <line:117:7, col:9>
| | `-FunctionTemplateDecl 0x26df348 <line:119:7, line:123:49> line:122:9 operator()
| | |-TemplateTypeParmDecl 0x26df010 <line:119:16, col:25> col:25 referenced typename _Iterator1
| | |-TemplateTypeParmDecl 0x26df078 <col:37, col:46> col:46 referenced typename _Iterator2
| | `-CXXMethodDecl 0x26df2a0 <line:121:9, line:123:49> line:122:9 operator() '_Bool (_Iterator1, _Iterator2)'
| | |-ParmVarDecl 0x26df118 <col:20, col:31> col:31 referenced __it1 '_Iterator1'
| | |-ParmVarDecl 0x26df188 <col:38, col:49> col:49 referenced __it2 '_Iterator2'
| | `-CompoundStmt 0x26df5e8 <line:123:9, col:49>
| | `-ReturnStmt 0x26df5d0 <col:11, col:46>
| | `-CXXUnresolvedConstructExpr 0x26df5a0 <col:18, col:46> '_Bool'
| | `-CallExpr 0x26df568 <col:23, col:45> '<dependent type>'
| | |-MemberExpr 0x26df4a0 <col:23> '_Compare' lvalue ->_M_comp 0x26dee10
| | | `-CXXThisExpr 0x26df488 <col:23> '_Iter_comp_iter<_Compare> *' this
| | |-UnaryOperator 0x26df500 <col:31, col:32> '<dependent type>' prefix '*'
| | | `-DeclRefExpr 0x26df4d8 <col:32> '_Iterator1' lvalue ParmVar 0x26df118 '__it1' '_Iterator1'
| | `-UnaryOperator 0x26df548 <col:39, col:40> '<dependent type>' prefix '*'
| | `-DeclRefExpr 0x26df520 <col:40> '_Iterator2' lvalue ParmVar 0x26df188 '__it2' '_Iterator2'
| |-FunctionTemplateDecl 0x26df948 <line:126:3, line:130:49> line:129:5 __iter_comp_iter
| | |-TemplateTypeParmDecl 0x26df608 <line:126:12, col:21> col:21 referenced typename _Compare
| | `-FunctionDecl 0x26df8a0 <line:128:5, line:130:49> line:129:5 __iter_comp_iter '_Iter_comp_iter<_Compare> (_Compare)' inline
| | |-ParmVarDecl 0x26df778 <col:22, col:31> col:31 referenced __comp '_Compare'
| | `-CompoundStmt 0x26dfb18 <line:130:5, col:49>
| | `-ReturnStmt 0x26dfb00 <col:7, col:46>
| | `-CXXUnresolvedConstructExpr 0x26dfad0 <col:14, col:46> '_Iter_comp_iter<_Compare>'
| | `-DeclRefExpr 0x26dfaa8 <col:40> '_Compare' lvalue ParmVar 0x26df778 '__comp' '_Compare'
| |-ClassTemplateDecl 0x26e00b0 <line:132:3, line:145:5> line:133:12 _Iter_comp_val
| | |-TemplateTypeParmDecl 0x26dfb38 <line:132:12, col:21> col:21 referenced typename _Compare
| | `-CXXRecordDecl 0x26dfbc0 <line:133:5, line:145:5> line:133:12 struct _Iter_comp_val definition
| | |-CXXRecordDecl 0x26e0328 <col:5, col:12> col:12 implicit referenced struct _Iter_comp_val
| | |-FieldDecl 0x26e03d0 <line:135:7, col:16> col:16 referenced _M_comp '_Compare'
| | |-CXXConstructorDecl 0x26e0510 <line:137:7, line:139:9> line:137:7 _Iter_comp_val<_Compare> 'void (_Compare)'
| | | |-ParmVarDecl 0x26e0428 <col:22, col:31> col:31 referenced __comp '_Compare'
| | | |-CXXCtorInitializer Field 0x26e03d0 '_M_comp' '_Compare'
| | | | `-ParenListExpr 0x26e0a20 <line:138:11, col:18> 'NULL TYPE'
| | | | `-DeclRefExpr 0x26e09f8 <col:12> '_Compare' lvalue ParmVar 0x26e0428 '__comp' '_Compare'
| | | `-CompoundStmt 0x26e0a80 <line:139:7, col:9>
| | `-FunctionTemplateDecl 0x26e0968 <line:141:7, line:144:40> line:143:2 operator()
| | |-TemplateTypeParmDecl 0x26e05d0 <line:141:16, col:25> col:25 referenced typename _Iterator
| | |-TemplateTypeParmDecl 0x26e0638 <col:36, col:45> col:45 referenced typename _Value
| | `-CXXMethodDecl 0x26e08c0 <line:142:2, line:144:40> line:143:2 operator() '_Bool (_Iterator, _Value &)'
| | |-ParmVarDecl 0x26e06d8 <col:13, col:23> col:23 referenced __it '_Iterator'
| | |-ParmVarDecl 0x26e07a8 <col:29, col:37> col:37 referenced __val '_Value &'
| | `-CompoundStmt 0x26e0be8 <line:144:2, col:40>
| | `-ReturnStmt 0x26e0bd0 <col:4, col:37>
| | `-CXXUnresolvedConstructExpr 0x26e0ba0 <col:11, col:37> '_Bool'
| | `-CallExpr 0x26e0b68 <col:16, col:36> '<dependent type>'
| | |-MemberExpr 0x26e0ac0 <col:16> '_Compare' lvalue ->_M_comp 0x26e03d0
| | | `-CXXThisExpr 0x26e0aa8 <col:16> '_Iter_comp_val<_Compare> *' this
| | |-UnaryOperator 0x26e0b20 <col:24, col:25> '<dependent type>' prefix '*'
| | | `-DeclRefExpr 0x26e0af8 <col:25> '_Iterator' lvalue ParmVar 0x26e06d8 '__it' '_Iterator'
| | `-DeclRefExpr 0x26e0b40 <col:31> '_Value' lvalue ParmVar 0x26e07a8 '__val' '_Value &'
| |-FunctionTemplateDecl 0x26e0f48 <line:147:3, line:150:48> line:149:5 __iter_comp_val
| | |-TemplateTypeParmDecl 0x26e0c08 <line:147:12, col:21> col:21 referenced typename _Compare
| | `-FunctionDecl 0x26e0ea0 <line:148:4, line:150:48> line:149:5 __iter_comp_val '_Iter_comp_val<_Compare> (_Compare)' inline
| | |-ParmVarDecl 0x26e0d78 <col:21, col:30> col:30 referenced __comp '_Compare'
| | `-CompoundStmt 0x26e1540 <line:150:5, col:48>
| | `-ReturnStmt 0x26e1528 <col:7, col:45>
| | `-CXXUnresolvedConstructExpr 0x26e14f8 <col:14, col:45> '_Iter_comp_val<_Compare>'
| | `-DeclRefExpr 0x26e14d0 <col:39> '_Compare' lvalue ParmVar 0x26e0d78 '__comp' '_Compare'
| |-FunctionTemplateDecl 0x26e1998 <line:152:3, line:155:56> line:154:5 __iter_comp_val
| | |-TemplateTypeParmDecl 0x26e1560 <line:152:12, col:21> col:21 referenced typename _Compare
| | `-FunctionDecl 0x26e18f0 <line:153:5, line:155:56> line:154:5 __iter_comp_val '_Iter_comp_val<_Compare> (_Iter_comp_iter<_Compare>)' inline
| | |-ParmVarDecl 0x26e17c8 <col:21, col:47> col:47 referenced __comp '_Iter_comp_iter<_Compare>'
| | `-CompoundStmt 0x26e1bc0 <line:155:5, col:56>
| | `-ReturnStmt 0x26e1ba8 <col:7, col:53>
| | `-CXXUnresolvedConstructExpr 0x26e1b78 <col:14, col:53> '_Iter_comp_val<_Compare>'
| | `-CXXDependentScopeMemberExpr 0x26e1b20 <col:39, col:46> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26e1af8 <col:39> '_Iter_comp_iter<_Compare>' lvalue ParmVar 0x26e17c8 '__comp' '_Iter_comp_iter<_Compare>'
| |-ClassTemplateDecl 0x26e1cf8 <line:157:3, line:170:5> line:158:12 _Val_comp_iter
| | |-TemplateTypeParmDecl 0x26e1be0 <line:157:12, col:21> col:21 referenced typename _Compare
| | `-CXXRecordDecl 0x26e1c60 <line:158:5, line:170:5> line:158:12 struct _Val_comp_iter definition
| | |-CXXRecordDecl 0x26e1f68 <col:5, col:12> col:12 implicit referenced struct _Val_comp_iter
| | |-FieldDecl 0x26e2010 <line:160:7, col:16> col:16 referenced _M_comp '_Compare'
| | |-CXXConstructorDecl 0x26e2150 <line:162:7, line:164:9> line:162:7 _Val_comp_iter<_Compare> 'void (_Compare)'
| | | |-ParmVarDecl 0x26e2068 <col:22, col:31> col:31 referenced __comp '_Compare'
| | | |-CXXCtorInitializer Field 0x26e2010 '_M_comp' '_Compare'
| | | | `-ParenListExpr 0x26e2c90 <line:163:11, col:18> 'NULL TYPE'
| | | | `-DeclRefExpr 0x26e2c68 <col:12> '_Compare' lvalue ParmVar 0x26e2068 '__comp' '_Compare'
| | | `-CompoundStmt 0x26e2cf0 <line:164:7, col:9>
| | `-FunctionTemplateDecl 0x26e2bd8 <line:166:7, line:169:40> line:168:2 operator()
| | |-TemplateTypeParmDecl 0x26e2210 <line:166:16, col:25> col:25 referenced typename _Value
| | |-TemplateTypeParmDecl 0x26e2278 <col:33, col:42> col:42 referenced typename _Iterator
| | `-CXXMethodDecl 0x26e2b30 <line:167:2, line:169:40> line:168:2 operator() '_Bool (_Value &, _Iterator)'
| | |-ParmVarDecl 0x26e2378 <col:13, col:21> col:21 referenced __val '_Value &'
| | |-ParmVarDecl 0x26e23e8 <col:28, col:38> col:38 referenced __it '_Iterator'
| | `-CompoundStmt 0x26e2e58 <line:169:2, col:40>
| | `-ReturnStmt 0x26e2e40 <col:4, col:37>
| | `-CXXUnresolvedConstructExpr 0x26e2e10 <col:11, col:37> '_Bool'
| | `-CallExpr 0x26e2dd8 <col:16, col:36> '<dependent type>'
| | |-MemberExpr 0x26e2d30 <col:16> '_Compare' lvalue ->_M_comp 0x26e2010
| | | `-CXXThisExpr 0x26e2d18 <col:16> '_Val_comp_iter<_Compare> *' this
| | |-DeclRefExpr 0x26e2d68 <col:24> '_Value' lvalue ParmVar 0x26e2378 '__val' '_Value &'
| | `-UnaryOperator 0x26e2db8 <col:31, col:32> '<dependent type>' prefix '*'
| | `-DeclRefExpr 0x26e2d90 <col:32> '_Iterator' lvalue ParmVar 0x26e23e8 '__it' '_Iterator'
| |-FunctionTemplateDecl 0x26e31b8 <line:172:3, line:175:48> line:174:5 __val_comp_iter
| | |-TemplateTypeParmDecl 0x26e2e78 <line:172:12, col:21> col:21 referenced typename _Compare
| | `-FunctionDecl 0x26e3110 <line:173:5, line:175:48> line:174:5 __val_comp_iter '_Val_comp_iter<_Compare> (_Compare)' inline
| | |-ParmVarDecl 0x26e2fe8 <col:21, col:30> col:30 referenced __comp '_Compare'
| | `-CompoundStmt 0x26e3388 <line:175:5, col:48>
| | `-ReturnStmt 0x26e3370 <col:7, col:45>
| | `-CXXUnresolvedConstructExpr 0x26e3340 <col:14, col:45> '_Val_comp_iter<_Compare>'
| | `-DeclRefExpr 0x26e3318 <col:39> '_Compare' lvalue ParmVar 0x26e2fe8 '__comp' '_Compare'
| |-FunctionTemplateDecl 0x26e37e8 <line:177:3, line:180:56> line:179:5 __val_comp_iter
| | |-TemplateTypeParmDecl 0x26e33a8 <line:177:12, col:21> col:21 referenced typename _Compare
| | `-FunctionDecl 0x26e3740 <line:178:5, line:180:56> line:179:5 __val_comp_iter '_Val_comp_iter<_Compare> (_Iter_comp_iter<_Compare>)' inline
| | |-ParmVarDecl 0x26e3618 <col:21, col:47> col:47 referenced __comp '_Iter_comp_iter<_Compare>'
| | `-CompoundStmt 0x26e3a10 <line:180:5, col:56>
| | `-ReturnStmt 0x26e39f8 <col:7, col:53>
| | `-CXXUnresolvedConstructExpr 0x26e39c8 <col:14, col:53> '_Val_comp_iter<_Compare>'
| | `-CXXDependentScopeMemberExpr 0x26e3970 <col:39, col:46> '<dependent type>' lvalue
| | `-DeclRefExpr 0x26e3948 <col:39> '_Iter_comp_iter<_Compare>' lvalue ParmVar 0x26e3618 '__comp' '_Iter_comp_iter<_Compare>'
| |-ClassTemplateDecl 0x26e3ba8 <line:182:3, line:195:5> line:183:12 _Iter_equals_val
| | |-TemplateTypeParmDecl 0x26e3a30 <line:182:12, col:21> col:21 referenced typename _Value
| | `-CXXRecordDecl 0x26e3b10 <line:183:5, line:195:5> line:183:12 struct _Iter_equals_val definition
| | |-CXXRecordDecl 0x26e3e18 <col:5, col:12> col:12 implicit referenced struct _Iter_equals_val
| | |-FieldDecl 0x26e3ee8 <line:185:7, col:15> col:15 referenced _M_value '_Value &'
| | |-CXXConstructorDecl 0x26e4020 <line:187:7, line:189:9> line:187:7 _Iter_equals_val<_Value> 'void (_Value &)'
| | | |-ParmVarDecl 0x26e3f40 <col:24, col:32> col:32 referenced __value '_Value &'
| | | |-CXXCtorInitializer Field 0x26e3ee8 '_M_value' '_Value &'
| | | | `-ParenListExpr 0x26e43c0 <line:188:12, col:20> 'NULL TYPE'
| | | | `-DeclRefExpr 0x26e4398 <col:13> '_Value' lvalue ParmVar 0x26e3f40 '__value' '_Value &'
| | | `-CompoundStmt 0x26e4420 <line:189:7, col:9>
| | `-FunctionTemplateDecl 0x26e4318 <line:191:7, line:194:30> line:193:2 operator()
| | |-TemplateTypeParmDecl 0x26e40e0 <line:191:16, col:25> col:25 referenced typename _Iterator
| | `-CXXMethodDecl 0x26e4270 <line:192:2, line:194:30> line:193:2 operator() '_Bool (_Iterator)'
| | |-ParmVarDecl 0x26e4170 <col:13, col:23> col:23 referenced __it '_Iterator'
| | `-CompoundStmt 0x26e4590 <line:194:2, col:30>
| | `-ReturnStmt 0x26e4578 <col:4, col:20>
| | `-CXXOperatorCallExpr 0x26e4530 <col:11, col:20> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26e44d0 <col:17> '<overloaded function type>' lvalue (ADL) = 'operator==' 0x26c7098 0x26c79c8
| | |-UnaryOperator 0x26e4460 <col:11, col:12> '<dependent type>' prefix '*'
| | | `-DeclRefExpr 0x26e4438 <col:12> '_Iterator' lvalue ParmVar 0x26e4170 '__it' '_Iterator'
| | `-MemberExpr 0x26e4498 <col:20> '_Value' lvalue ->_M_value 0x26e3ee8
| | `-CXXThisExpr 0x26e4480 <col:20> '_Iter_equals_val<_Value> *' this
| |-FunctionTemplateDecl 0x26e4918 <line:197:3, line:200:47> line:199:5 __iter_equals_val
| | |-TemplateTypeParmDecl 0x26e45b0 <line:197:12, col:21> col:21 referenced typename _Value
| | `-FunctionDecl 0x26e4870 <line:198:5, line:200:47> line:199:5 __iter_equals_val '_Iter_equals_val<_Value> (_Value &)' inline
| | |-ParmVarDecl 0x26e4748 <col:23, col:31> col:31 referenced __val '_Value &'
| | `-CompoundStmt 0x26e4ae8 <line:200:5, col:47>
| | `-ReturnStmt 0x26e4ad0 <col:7, col:44>
| | `-CXXUnresolvedConstructExpr 0x26e4aa0 <col:14, col:44> '_Iter_equals_val<_Value>'
| | `-DeclRefExpr 0x26e4a78 <col:39> '_Value' lvalue ParmVar 0x26e4748 '__val' '_Value &'
| |-ClassTemplateDecl 0x26e5878 <line:202:3, line:215:5> line:203:12 _Iter_equals_iter
| | |-TemplateTypeParmDecl 0x26e5760 <line:202:12, col:21> col:21 referenced typename _Iterator1
| | `-CXXRecordDecl 0x26e57e0 <line:203:5, line:215:5> line:203:12 struct _Iter_equals_iter definition
| | |-CXXRecordDecl 0x26e5ae8 <col:5, col:12> col:12 implicit referenced struct _Iter_equals_iter
| | |-FieldDecl 0x26e5d10 <line:205:7, col:60> col:60 referenced _M_ref 'typename std::iterator_traits<_Iterator1>::reference'
| | |-CXXConstructorDecl 0x26e5e50 <line:207:7, line:209:9> line:207:7 _Iter_equals_iter<_Iterator1> 'void (_Iterator1)'
| | | |-ParmVarDecl 0x26e5d68 <col:25, col:36> col:36 referenced __it1 '_Iterator1'
| | | |-CXXCtorInitializer Field 0x26e5d10 '_M_ref' 'typename std::iterator_traits<_Iterator1>::reference'
| | | | `-ParenListExpr 0x26e61d0 <line:208:10, col:17> 'NULL TYPE'
| | | | `-UnaryOperator 0x26e61b0 <col:11, col:12> '<dependent type>' prefix '*'
| | | | `-DeclRefExpr 0x26e6188 <col:12> '_Iterator1' lvalue ParmVar 0x26e5d68 '__it1' '_Iterator1'
| | | `-CompoundStmt 0x26e6230 <line:209:7, col:9>
| | `-FunctionTemplateDecl 0x26e6108 <line:211:7, line:214:29> line:213:2 operator()
| | |-TemplateTypeParmDecl 0x26e5f10 <line:211:16, col:25> col:25 referenced typename _Iterator2
| | `-CXXMethodDecl 0x26e6060 <line:212:2, line:214:29> line:213:2 operator() '_Bool (_Iterator2)'
| | |-ParmVarDecl 0x26e5fa0 <col:13, col:24> col:24 referenced __it2 '_Iterator2'
| | `-CompoundStmt 0x26e63a0 <line:214:2, col:29>
| | `-ReturnStmt 0x26e6388 <col:4, col:21>
| | `-CXXOperatorCallExpr 0x26e6340 <col:11, col:21> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26e62e0 <col:18> '<overloaded function type>' lvalue (ADL) = 'operator==' 0x26c7098 0x26c79c8
| | |-UnaryOperator 0x26e6270 <col:11, col:12> '<dependent type>' prefix '*'
| | | `-DeclRefExpr 0x26e6248 <col:12> '_Iterator2' lvalue ParmVar 0x26e5fa0 '__it2' '_Iterator2'
| | `-MemberExpr 0x26e62a8 <col:21> 'typename std::iterator_traits<_Iterator1>::reference' lvalue ->_M_ref 0x26e5d10
| | `-CXXThisExpr 0x26e6290 <col:21> '_Iter_equals_iter<_Iterator1> *' this
| |-FunctionTemplateDecl 0x26e7e48 <line:217:3, line:220:50> line:219:5 __iter_comp_iter
| | |-TemplateTypeParmDecl 0x26e63c0 <line:217:12, col:21> col:21 referenced typename _Iterator
| | `-FunctionDecl 0x26e7da0 <line:218:5, line:220:50> line:219:5 __iter_comp_iter '_Iter_equals_iter<_Iterator> (struct __gnu_cxx::__ops::_Iter_equal_to_iter, _Iterator)' inline
| | |-ParmVarDecl 0x26e6528 <col:22> col:41 'struct __gnu_cxx::__ops::_Iter_equal_to_iter'
| | |-ParmVarDecl 0x26e6598 <col:43, col:53> col:53 referenced __it '_Iterator'
| | `-CompoundStmt 0x26e8028 <line:220:5, col:50>
| | `-ReturnStmt 0x26e8010 <col:7, col:47>
| | `-CXXUnresolvedConstructExpr 0x26e7fe0 <col:14, col:47> '_Iter_equals_iter<_Iterator>'
| | `-DeclRefExpr 0x26e7fb8 <col:43> '_Iterator' lvalue ParmVar 0x26e6598 '__it' '_Iterator'
| |-ClassTemplateDecl 0x26e8168 <line:222:3, line:235:5> line:223:12 _Iter_pred
| | |-TemplateTypeParmDecl 0x26e8048 <line:222:12, col:21> col:21 referenced typename _Predicate
| | `-CXXRecordDecl 0x26e80d0 <line:223:5, line:235:5> line:223:12 struct _Iter_pred definition
| | |-CXXRecordDecl 0x26e83d8 <col:5, col:12> col:12 implicit referenced struct _Iter_pred
| | |-FieldDecl 0x26e8480 <line:225:7, col:18> col:18 referenced _M_pred '_Predicate'
| | |-CXXConstructorDecl 0x26e85c0 <line:227:7, line:229:9> line:227:7 _Iter_pred<_Predicate> 'void (_Predicate)'
| | | |-ParmVarDecl 0x26e84d8 <col:18, col:29> col:29 referenced __pred '_Predicate'
| | | |-CXXCtorInitializer Field 0x26e8480 '_M_pred' '_Predicate'
| | | | `-ParenListExpr 0x26e8920 <line:228:11, col:18> 'NULL TYPE'
| | | | `-DeclRefExpr 0x26e88f8 <col:12> '_Predicate' lvalue ParmVar 0x26e84d8 '__pred' '_Predicate'
| | | `-CompoundStmt 0x26e8980 <line:229:7, col:9>
| | `-FunctionTemplateDecl 0x26e8878 <line:231:7, line:234:33> line:233:2 operator()
| | |-TemplateTypeParmDecl 0x26e8680 <line:231:16, col:25> col:25 referenced typename _Iterator
| | `-CXXMethodDecl 0x26e87d0 <line:232:2, line:234:33> line:233:2 operator() '_Bool (_Iterator)'
| | |-ParmVarDecl 0x26e8710 <col:13, col:23> col:23 referenced __it '_Iterator'
| | `-CompoundStmt 0x26e8ab8 <line:234:2, col:33>
| | `-ReturnStmt 0x26e8aa0 <col:4, col:30>
| | `-CXXUnresolvedConstructExpr 0x26e8a70 <col:11, col:30> '_Bool'
| | `-CallExpr 0x26e8a40 <col:16, col:29> '<dependent type>'
| | |-MemberExpr 0x26e89c0 <col:16> '_Predicate' lvalue ->_M_pred 0x26e8480
| | | `-CXXThisExpr 0x26e89a8 <col:16> '_Iter_pred<_Predicate> *' this
| | `-UnaryOperator 0x26e8a20 <col:24, col:25> '<dependent type>' prefix '*'
| | `-DeclRefExpr 0x26e89f8 <col:25> '_Iterator' lvalue ParmVar 0x26e8710 '__it' '_Iterator'
| |-FunctionTemplateDecl 0x26e9688 <line:237:3, line:240:46> line:239:5 __pred_iter
| | |-TemplateTypeParmDecl 0x26e8ad8 <line:237:12, col:21> col:21 referenced typename _Predicate
| | `-FunctionDecl 0x26e95e0 <line:238:5, line:240:46> line:239:5 __pred_iter '_Iter_pred<_Predicate> (_Predicate)' inline
| | |-ParmVarDecl 0x26e8c48 <col:17, col:28> col:28 referenced __pred '_Predicate'
| | `-CompoundStmt 0x26e9858 <line:240:5, col:46>
| | `-ReturnStmt 0x26e9840 <col:7, col:43>
| | `-CXXUnresolvedConstructExpr 0x26e9810 <col:14, col:43> '_Iter_pred<_Predicate>'
| | `-DeclRefExpr 0x26e97e8 <col:37> '_Predicate' lvalue ParmVar 0x26e8c48 '__pred' '_Predicate'
| |-ClassTemplateDecl 0x26e9a10 <line:242:3, line:256:5> line:243:12 _Iter_comp_to_val
| | |-TemplateTypeParmDecl 0x26e9878 <line:242:12, col:21> col:21 referenced typename _Compare
| | |-TemplateTypeParmDecl 0x26e98e8 <col:31, col:40> col:40 referenced typename _Value
| | `-CXXRecordDecl 0x26e9978 <line:243:5, line:256:5> line:243:12 struct _Iter_comp_to_val definition
| | |-CXXRecordDecl 0x26e9ca8 <col:5, col:12> col:12 implicit referenced struct _Iter_comp_to_val
| | |-FieldDecl 0x26e9d50 <line:245:7, col:16> col:16 referenced _M_comp '_Compare'
| | |-FieldDecl 0x26e9dd8 <line:246:7, col:15> col:15 referenced _M_value '_Value &'
| | |-CXXConstructorDecl 0x26e9fd0 <line:248:7, line:250:9> line:248:7 _Iter_comp_to_val<_Compare, _Value> 'void (_Compare, _Value &)'
| | | |-ParmVarDecl 0x26e9e30 <col:25, col:34> col:34 referenced __comp '_Compare'
| | | |-ParmVarDecl 0x26e9ea0 <col:42, col:50> col:50 referenced __value '_Value &'
| | | |-CXXCtorInitializer Field 0x26e9d50 '_M_comp' '_Compare'
| | | | `-ParenListExpr 0x26ea340 <line:249:11, col:18> 'NULL TYPE'
| | | | `-DeclRefExpr 0x26ea318 <col:12> '_Compare' lvalue ParmVar 0x26e9e30 '__comp' '_Compare'
| | | |-CXXCtorInitializer Field 0x26e9dd8 '_M_value' '_Value &'
| | | | `-ParenListExpr 0x26ea3c0 <col:29, col:37> 'NULL TYPE'
| | | | `-DeclRefExpr 0x26ea398 <col:30> '_Value' lvalue ParmVar 0x26e9ea0 '__value' '_Value &'
| | | `-CompoundStmt 0x26ea428 <line:250:7, col:9>
| | `-FunctionTemplateDecl 0x26ea298 <line:252:7, line:255:43> line:254:2 operator()
| | |-TemplateTypeParmDecl 0x26ea098 <line:252:16, col:25> col:25 referenced typename _Iterator
| | `-CXXMethodDecl 0x26ea1f0 <line:253:2, line:255:43> line:254:2 operator() '_Bool (_Iterator)'
| | |-ParmVarDecl 0x26ea130 <col:13, col:23> col:23 referenced __it '_Iterator'
| | `-CompoundStmt 0x26ea5b8 <line:255:2, col:43>
| | `-ReturnStmt 0x26ea5a0 <col:4, col:40>
| | `-CXXUnresolvedConstructExpr 0x26ea570 <col:11, col:40> '_Bool'
| | `-CallExpr 0x26ea538 <col:16, col:39> '<dependent type>'
| | |-MemberExpr 0x26ea468 <col:16> '_Compare' lvalue ->_M_comp 0x26e9d50
| | | `-CXXThisExpr 0x26ea450 <col:16> '_Iter_comp_to_val<_Compare, _Value> *' this
| | |-UnaryOperator 0x26ea4c8 <col:24, col:25> '<dependent type>' prefix '*'
| | | `-DeclRefExpr 0x26ea4a0 <col:25> '_Iterator' lvalue ParmVar 0x26ea130 '__it' '_Iterator'
| | `-MemberExpr 0x26ea500 <col:31> '_Value' lvalue ->_M_value 0x26e9dd8
| | `-CXXThisExpr 0x26ea4e8 <col:31> '_Iter_comp_to_val<_Compare, _Value> *' this
| |-FunctionTemplateDecl 0x26eb2f0 <line:258:3, line:261:66> line:260:5 __iter_comp_val
| | |-TemplateTypeParmDecl 0x26eae20 <line:258:12, col:21> col:21 referenced typename _Compare
| | |-TemplateTypeParmDecl 0x26eae88 <col:31, col:40> col:40 referenced typename _Value
| | `-FunctionDecl 0x26eb248 <line:259:5, line:261:66> line:260:5 __iter_comp_val '_Iter_comp_to_val<_Compare, _Value> (_Compare, _Value &)'
| | |-ParmVarDecl 0x26eb058 <col:21, col:30> col:30 referenced __comp '_Compare'
| | |-ParmVarDecl 0x26eb0f8 <col:38, col:46> col:46 referenced __val '_Value &'
| | `-CompoundStmt 0x26eb560 <line:261:5, col:66>
| | `-ReturnStmt 0x26eb548 <col:7, col:63>
| | `-CXXUnresolvedConstructExpr 0x26eb510 <col:14, col:63> '_Iter_comp_to_val<_Compare, _Value>'
| | |-DeclRefExpr 0x26eb4c0 <col:50> '_Compare' lvalue ParmVar 0x26eb058 '__comp' '_Compare'
| | `-DeclRefExpr 0x26eb4e8 <col:58> '_Value' lvalue ParmVar 0x26eb0f8 '__val' '_Value &'
| |-ClassTemplateDecl 0x26eb710 <line:263:3, line:277:5> line:264:12 _Iter_comp_to_iter
| | |-TemplateTypeParmDecl 0x26eb580 <line:263:12, col:21> col:21 referenced typename _Compare
| | |-TemplateTypeParmDecl 0x26eb5e8 <col:31, col:40> col:40 referenced typename _Iterator1
| | `-CXXRecordDecl 0x26eb678 <line:264:5, line:277:5> line:264:12 struct _Iter_comp_to_iter definition
| | |-CXXRecordDecl 0x26eb9a8 <col:5, col:12> col:12 implicit referenced struct _Iter_comp_to_iter
| | |-FieldDecl 0x26eba50 <line:266:7, col:16> col:16 referenced _M_comp '_Compare'
| | |-FieldDecl 0x26ebcb0 <line:267:7, col:60> col:60 referenced _M_ref 'typename std::iterator_traits<_Iterator1>::reference'
| | |-CXXConstructorDecl 0x26ec710 <line:269:7, line:271:9> line:269:7 _Iter_comp_to_iter<_Compare, _Iterator1> 'void (_Compare, _Iterator1)'
| | | |-ParmVarDecl 0x26ebd08 <col:26, col:35> col:35 referenced __comp '_Compare'
| | | |-ParmVarDecl 0x26ebd78 <col:43, col:54> col:54 referenced __it1 '_Iterator1'
| | | |-CXXCtorInitializer Field 0x26eba50 '_M_comp' '_Compare'
| | | | `-ParenListExpr 0x26eca80 <line:270:11, col:18> 'NULL TYPE'
| | | | `-DeclRefExpr 0x26eca58 <col:12> '_Compare' lvalue ParmVar 0x26ebd08 '__comp' '_Compare'
| | | |-CXXCtorInitializer Field 0x26ebcb0 '_M_ref' 'typename std::iterator_traits<_Iterator1>::reference'
| | | | `-ParenListExpr 0x26ecb20 <col:27, col:34> 'NULL TYPE'
| | | | `-UnaryOperator 0x26ecb00 <col:28, col:29> '<dependent type>' prefix '*'
| | | | `-DeclRefExpr 0x26ecad8 <col:29> '_Iterator1' lvalue ParmVar 0x26ebd78 '__it1' '_Iterator1'
| | | `-CompoundStmt 0x26ecb88 <line:271:7, col:9>
| | `-FunctionTemplateDecl 0x26ec9d8 <line:273:7, line:276:42> line:275:2 operator()
| | |-TemplateTypeParmDecl 0x26ec7d8 <line:273:16, col:25> col:25 referenced typename _Iterator2
| | `-CXXMethodDecl 0x26ec930 <line:274:2, line:276:42> line:275:2 operator() '_Bool (_Iterator2)'
| | |-ParmVarDecl 0x26ec870 <col:13, col:24> col:24 referenced __it2 '_Iterator2'
| | `-CompoundStmt 0x26ecd18 <line:276:2, col:42>
| | `-ReturnStmt 0x26ecd00 <col:4, col:39>
| | `-CXXUnresolvedConstructExpr 0x26eccd0 <col:11, col:39> '_Bool'
| | `-CallExpr 0x26ecc98 <col:16, col:38> '<dependent type>'
| | |-MemberExpr 0x26ecbc8 <col:16> '_Compare' lvalue ->_M_comp 0x26eba50
| | | `-CXXThisExpr 0x26ecbb0 <col:16> '_Iter_comp_to_iter<_Compare, _Iterator1> *' this
| | |-UnaryOperator 0x26ecc28 <col:24, col:25> '<dependent type>' prefix '*'
| | | `-DeclRefExpr 0x26ecc00 <col:25> '_Iterator2' lvalue ParmVar 0x26ec870 '__it2' '_Iterator2'
| | `-MemberExpr 0x26ecc60 <col:32> 'typename std::iterator_traits<_Iterator1>::reference' lvalue ->_M_ref 0x26ebcb0
| | `-CXXThisExpr 0x26ecc48 <col:32> '_Iter_comp_to_iter<_Compare, _Iterator1> *' this
| |-FunctionTemplateDecl 0x26ed2e0 <line:279:3, line:282:77> line:281:5 __iter_comp_iter
| | |-TemplateTypeParmDecl 0x26ecd38 <line:279:12, col:21> col:21 referenced typename _Compare
| | |-TemplateTypeParmDecl 0x26ecda8 <col:31, col:40> col:40 referenced typename _Iterator
| | `-FunctionDecl 0x26ed238 <line:280:5, line:282:77> line:281:5 __iter_comp_iter '_Iter_comp_to_iter<_Compare, _Iterator> (_Iter_comp_iter<_Compare>, _Iterator)' inline
| | |-ParmVarDecl 0x26ed078 <col:22, col:48> col:48 referenced __comp '_Iter_comp_iter<_Compare>'
| | |-ParmVarDecl 0x26ed0e8 <col:56, col:66> col:66 referenced __it '_Iterator'
| | `-CompoundStmt 0x26ed5a8 <line:282:5, col:77>
| | `-ReturnStmt 0x26ed590 <col:7, col:74>
| | `-CXXUnresolvedConstructExpr 0x26ed558 <col:14, col:74> '_Iter_comp_to_iter<_Compare, _Iterator>'
| | |-CXXDependentScopeMemberExpr 0x26ed4d8 <col:54, col:61> '<dependent type>' lvalue
| | | `-DeclRefExpr 0x26ed4b0 <col:54> '_Iter_comp_iter<_Compare>' lvalue ParmVar 0x26ed078 '__comp' '_Iter_comp_iter<_Compare>'
| | `-DeclRefExpr 0x26ed530 <col:70> '_Iterator' lvalue ParmVar 0x26ed0e8 '__it' '_Iterator'
| |-ClassTemplateDecl 0x26ed708 <line:284:3, line:297:5> line:285:12 _Iter_negate
| | |-TemplateTypeParmDecl 0x26ed5c8 <line:284:12, col:21> col:21 referenced typename _Predicate
| | `-CXXRecordDecl 0x26ed670 <line:285:5, line:297:5> line:285:12 struct _Iter_negate definition
| | |-CXXRecordDecl 0x26ed978 <col:5, col:12> col:12 implicit referenced struct _Iter_negate
| | |-FieldDecl 0x26eda20 <line:287:7, col:18> col:18 referenced _M_pred '_Predicate'
| | |-CXXConstructorDecl 0x26edb60 <line:289:7, line:291:9> line:289:7 _Iter_negate<_Predicate> 'void (_Predicate)'
| | | |-ParmVarDecl 0x26eda78 <col:20, col:31> col:31 referenced __pred '_Predicate'
| | | |-CXXCtorInitializer Field 0x26eda20 '_M_pred' '_Predicate'
| | | | `-ParenListExpr 0x26edec0 <line:290:11, col:18> 'NULL TYPE'
| | | | `-DeclRefExpr 0x26ede98 <col:12> '_Predicate' lvalue ParmVar 0x26eda78 '__pred' '_Predicate'
| | | `-CompoundStmt 0x26edf20 <line:291:7, col:9>
| | `-FunctionTemplateDecl 0x26ede18 <line:293:7, line:296:34> line:295:2 operator()
| | |-TemplateTypeParmDecl 0x26edc20 <line:293:16, col:25> col:25 referenced typename _Iterator
| | `-CXXMethodDecl 0x26edd70 <line:294:2, line:296:34> line:295:2 operator() '_Bool (_Iterator)'
| | |-ParmVarDecl 0x26edcb0 <col:13, col:23> col:23 referenced __it '_Iterator'
| | `-CompoundStmt 0x26ee078 <line:296:2, col:34>
| | `-ReturnStmt 0x26ee060 <col:4, col:31>
| | `-UnaryOperator 0x26ee040 <col:11, col:31> '_Bool' prefix '!'
| | `-CXXUnresolvedConstructExpr 0x26ee010 <col:12, col:31> '_Bool'
| | `-CallExpr 0x26edfe0 <col:17, col:30> '<dependent type>'
| | |-MemberExpr 0x26edf60 <col:17> '_Predicate' lvalue ->_M_pred 0x26eda20
| | | `-CXXThisExpr 0x26edf48 <col:17> '_Iter_negate<_Predicate> *' this
| | `-UnaryOperator 0x26edfc0 <col:25, col:26> '<dependent type>' prefix '*'
| | `-DeclRefExpr 0x26edf98 <col:26> '_Iterator' lvalue ParmVar 0x26edcb0 '__it' '_Iterator'
| `-FunctionTemplateDecl 0x26ee4d8 <line:299:3, line:302:56> line:301:5 __negate
| |-TemplateTypeParmDecl 0x26ee098 <line:299:12, col:21> col:21 referenced typename _Predicate
| `-FunctionDecl 0x26ee430 <line:300:5, line:302:56> line:301:5 __negate '_Iter_negate<_Predicate> (_Iter_pred<_Predicate>)' inline
| |-ParmVarDecl 0x26ee308 <col:14, col:37> col:37 referenced __pred '_Iter_pred<_Predicate>'
| `-CompoundStmt 0x26ef360 <line:302:5, col:56>
| `-ReturnStmt 0x26ef348 <col:7, col:53>
| `-CXXUnresolvedConstructExpr 0x26ef318 <col:14, col:53> '_Iter_negate<_Predicate>'
| `-CXXDependentScopeMemberExpr 0x26ef2c0 <col:39, col:46> '<dependent type>' lvalue
| `-DeclRefExpr 0x26ee638 <col:39> '_Iter_pred<_Predicate>' lvalue ParmVar 0x26ee308 '__pred' '_Iter_pred<_Predicate>'
|-NamespaceDecl 0x26ef3b0 prev 0x26d10b8 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:73:1, line:1414:1> line:73:11 std
| |-original Namespace 0x25fd3b0 'std'
| |-VisibilityAttr 0x26ef418 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/x86_64-pc-linux-gnu/bits/c++config.h:67:49, col:67> Default
| |-ClassTemplateDecl 0x26ef568 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:81:3, line:94:5> line:82:12 __iter_swap
| | |-NonTypeTemplateParmDecl 0x26ef460 <line:81:12, col:17> col:17 '_Bool' _BoolType
| | |-CXXRecordDecl 0x26ef4d0 <line:82:5, line:94:5> line:82:12 struct __iter_swap definition
| | | |-CXXRecordDecl 0x26ef808 <col:5, col:12> col:12 implicit struct __iter_swap
| | | `-FunctionTemplateDecl 0x26efbd8 <line:84:7, line:93:2> line:86:9 iter_swap
| | | |-TemplateTypeParmDecl 0x26ef8a0 <line:84:16, col:25> col:25 referenced typename _ForwardIterator1
| | | |-TemplateTypeParmDecl 0x26ef908 <col:44, col:53> col:53 referenced typename _ForwardIterator2
| | | `-CXXMethodDecl 0x26efb30 <line:85:9, line:93:2> line:86:9 iter_swap 'void (_ForwardIterator1, _ForwardIterator2)' static
| | | |-ParmVarDecl 0x26ef9a8 <col:19, col:37> col:37 referenced __a '_ForwardIterator1'
| | | |-ParmVarDecl 0x26efa18 <col:42, col:60> col:60 referenced __b '_ForwardIterator2'
| | | `-CompoundStmt 0x26f0180 <line:87:9, line:93:2>
| | | |-DeclStmt 0x26efec0 <line:88:11, line:89:24>
| | | | `-TypedefDecl 0x26efe70 <line:88:11, line:89:13> col:13 referenced _ValueType1 'typename iterator_traits<_ForwardIterator1>::value_type'
| | | | `-DependentNameType 0x26efe00 'typename iterator_traits<_ForwardIterator1>::value_type' dependent
| | | |-DeclStmt 0x26effd8 <line:90:11, col:50>
| | | | `-VarDecl 0x26eff10 <col:11, /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/move.h:155:36> /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:90:23 referenced __tmp '_ValueType1':'typename iterator_traits<_ForwardIterator1>::value_type' cinit
| | | | `-ParenExpr 0x26effb8 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/move.h:155:30, col:36> '<dependent type>'
| | | | `-UnaryOperator 0x26eff98 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:90:45, col:46> '<dependent type>' prefix '*'
| | | | `-DeclRefExpr 0x26eff70 <col:46> '_ForwardIterator1' lvalue ParmVar 0x26ef9a8 '__a' '_ForwardIterator1'
| | | |-BinaryOperator 0x26f00a0 <line:91:11, /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/move.h:155:36> '<dependent type>' '='
| | | | |-UnaryOperator 0x26f0018 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:91:11, col:12> '<dependent type>' prefix '*'
| | | | | `-DeclRefExpr 0x26efff0 <col:12> '_ForwardIterator1' lvalue ParmVar 0x26ef9a8 '__a' '_ForwardIterator1'
| | | | `-ParenExpr 0x26f0080 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/move.h:155:30, col:36> '<dependent type>'
| | | | `-UnaryOperator 0x26f0060 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:91:32, col:33> '<dependent type>' prefix '*'
| | | | `-DeclRefExpr 0x26f0038 <col:33> '_ForwardIterator2' lvalue ParmVar 0x26efa18 '__b' '_ForwardIterator2'
| | | `-BinaryOperator 0x26f0158 <line:92:11, /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/move.h:155:36> '<dependent type>' '='
| | | |-UnaryOperator 0x26f00f0 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:92:11, col:12> '<dependent type>' prefix '*'
| | | | `-DeclRefExpr 0x26f00c8 <col:12> '_ForwardIterator2' lvalue ParmVar 0x26efa18 '__b' '_ForwardIterator2'
| | | `-ParenExpr 0x26f0138 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/move.h:155:30, col:36> '_ValueType1':'typename iterator_traits<_ForwardIterator1>::value_type' lvalue
| | | `-DeclRefExpr 0x26f0110 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:92:32> '_ValueType1':'typename iterator_traits<_ForwardIterator1>::value_type' lvalue Var 0x26eff10 '__tmp' '_ValueType1':'typename iterator_traits<_ForwardIterator1>::value_type'
| | `-ClassTemplateSpecialization 0x26f01e0 '__iter_swap'
| |-ClassTemplateSpecializationDecl 0x26f01e0 <line:96:3, line:105:5> line:97:12 struct __iter_swap definition
| | |-TemplateArgument integral 1
| | |-CXXRecordDecl 0x26f0648 <col:5, col:12> col:12 implicit struct __iter_swap
| | `-FunctionTemplateDecl 0x26f09d8 <line:99:7, line:104:9> line:101:9 iter_swap
| | |-TemplateTypeParmDecl 0x26f06e0 <line:99:16, col:25> col:25 referenced typename _ForwardIterator1
| | |-TemplateTypeParmDecl 0x26f0748 <col:44, col:53> col:53 referenced typename _ForwardIterator2
| | `-CXXMethodDecl 0x26f0930 <line:100:9, line:104:9> line:101:9 iter_swap 'void (_ForwardIterator1, _ForwardIterator2)' static
| | |-ParmVarDecl 0x26f07e8 <col:19, col:37> col:37 referenced __a '_ForwardIterator1'
| | |-ParmVarDecl 0x26f0858 <col:42, col:60> col:60 referenced __b '_ForwardIterator2'
| | `-CompoundStmt 0x26f0b90 <line:102:9, line:104:9>
| | `-CallExpr 0x26f0b58 <line:103:11, col:26> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26f0a68 <col:11> '<overloaded function type>' lvalue (ADL) = 'swap' 0x268a368 0x268ab88
| | |-UnaryOperator 0x26f0af0 <col:16, col:17> '<dependent type>' prefix '*'
| | | `-DeclRefExpr 0x26f0ac8 <col:17> '_ForwardIterator1' lvalue ParmVar 0x26f07e8 '__a' '_ForwardIterator1'
| | `-UnaryOperator 0x26f0b38 <col:22, col:23> '<dependent type>' prefix '*'
| | `-DeclRefExpr 0x26f0b10 <col:23> '_ForwardIterator2' lvalue ParmVar 0x26f0858 '__b' '_ForwardIterator2'
| |-FunctionTemplateDecl 0x26f0ea8 <line:118:3, line:150:5> line:120:5 iter_swap
| | |-TemplateTypeParmDecl 0x26f0bb0 <line:118:12, col:21> col:21 referenced typename _ForwardIterator1
| | |-TemplateTypeParmDecl 0x26f0c18 <col:40, col:49> col:49 referenced typename _ForwardIterator2
| | `-FunctionDecl 0x26f0e00 <line:119:5, line:150:5> line:120:5 iter_swap 'void (_ForwardIterator1, _ForwardIterator2)' inline
| | |-ParmVarDecl 0x26f0cb8 <col:15, col:33> col:33 referenced __a '_ForwardIterator1'
| | |-ParmVarDecl 0x26f0d28 <col:38, col:56> col:56 referenced __b '_ForwardIterator2'
| | `-CompoundStmt 0x26f2160 <line:121:5, line:150:5>
| | |-DeclStmt 0x26f10d0 <line:129:7, line:130:13>
| | | `-TypedefDecl 0x26f1080 <line:129:7, line:130:2> col:2 referenced _ValueType1 'typename iterator_traits<_ForwardIterator1>::value_type'
| | | `-DependentNameType 0x26f1010 'typename iterator_traits<_ForwardIterator1>::value_type' dependent
| | |-DeclStmt 0x26f12e0 <line:131:7, line:132:13>
| | | `-TypedefDecl 0x26f1290 <line:131:7, line:132:2> col:2 referenced _ValueType2 'typename iterator_traits<_ForwardIterator2>::value_type'
| | | `-DependentNameType 0x26f1220 'typename iterator_traits<_ForwardIterator2>::value_type' dependent
| | |-DeclStmt 0x26f14c0 <line:139:7, line:140:17>
| | | `-TypedefDecl 0x26f1470 <line:139:7, line:140:2> col:2 referenced _ReferenceType1 'typename iterator_traits<_ForwardIterator1>::reference'
| | | `-DependentNameType 0x26f1400 'typename iterator_traits<_ForwardIterator1>::reference' dependent
| | |-DeclStmt 0x26f16b0 <line:141:7, line:142:17>
| | | `-TypedefDecl 0x26f1660 <line:141:7, line:142:2> col:2 referenced _ReferenceType2 'typename iterator_traits<_ForwardIterator2>::reference'
| | | `-DependentNameType 0x26f15f0 'typename iterator_traits<_ForwardIterator2>::reference' dependent
| | `-CallExpr 0x26f2128 <line:143:7, line:146:20> '<dependent type>'
| | |-DependentScopeDeclRefExpr 0x26f2098 <line:143:7, line:146:2> '<dependent type>' lvalue
| | |-DeclRefExpr 0x26f20d8 <col:12> '_ForwardIterator1' lvalue ParmVar 0x26f0cb8 '__a' '_ForwardIterator1'
| | `-DeclRefExpr 0x26f2100 <col:17> '_ForwardIterator2' lvalue ParmVar 0x26f0d28 '__b' '_ForwardIterator2'
| |-FunctionTemplateDecl 0x26f25a8 <line:164:3, line:179:5> line:166:5 swap_ranges
| | |-TemplateTypeParmDecl 0x26f21a0 <line:164:12, col:21> col:21 referenced typename _ForwardIterator1
| | |-TemplateTypeParmDecl 0x26f2208 <col:40, col:49> col:49 referenced typename _ForwardIterator2
| | `-FunctionDecl 0x26f2500 <line:165:5, line:179:5> line:166:5 swap_ranges '_ForwardIterator2 (_ForwardIterator1, _ForwardIterator1, _ForwardIterator2)'
| | |-ParmVarDecl 0x26f22a8 <col:17, col:35> col:35 referenced __first1 '_ForwardIterator1'
| | |-ParmVarDecl 0x26f2318 <col:45, col:63> col:63 referenced __last1 '_ForwardIterator1'
| | |-ParmVarDecl 0x26f2388 <line:167:3, col:21> col:21 referenced __first2 '_ForwardIterator2'
| | `-CompoundStmt 0x26f2988 <line:168:5, line:179:5>
| | |-NullStmt 0x26f2610 <line:174:56>
| | |-ForStmt 0x26f2910 <line:176:7, line:177:35>
| | | |-<<<NULL>>>
| | | |-<<<NULL>>>
| | | |-CXXOperatorCallExpr 0x26f26d8 <line:176:14, col:26> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x26f2670 <col:23> '<overloaded function type>' lvalue (ADL) = 'operator!=' 0x268e1f8 0x26b2418 0x26b6368
| | | | |-DeclRefExpr 0x26f2620 <col:14> '_ForwardIterator1' lvalue ParmVar 0x26f22a8 '__first1' '_ForwardIterator1'
| | | | `-DeclRefExpr 0x26f2648 <col:26> '_ForwardIterator1' lvalue ParmVar 0x26f2318 '__last1' '_ForwardIterator1'
| | | |-BinaryOperator 0x26f27e8 <col:35, col:55> '<dependent type>' ','
| | | | |-UnaryOperator 0x26f2748 <col:35, col:37> '<dependent type>' prefix '++'
| | | | | `-DeclRefExpr 0x26f2720 <col:37> '_ForwardIterator1' lvalue ParmVar 0x26f22a8 '__first1' '_ForwardIterator1'
| | | | `-CStyleCastExpr 0x26f27c0 <col:47, col:55> 'void' <ToVoid>
| | | | `-UnaryOperator 0x26f2790 <col:53, col:55> '<dependent type>' prefix '++'
| | | | `-DeclRefExpr 0x26f2768 <col:55> '_ForwardIterator2' lvalue ParmVar 0x26f2388 '__first2' '_ForwardIterator2'
| | | `-CallExpr 0x26f28d8 <line:177:2, col:35> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x26f2830 <col:2, col:7> '<overloaded function type>' lvalue (no ADL) = 'iter_swap' 0x26f0ea8
| | | |-DeclRefExpr 0x26f2888 <col:17> '_ForwardIterator1' lvalue ParmVar 0x26f22a8 '__first1' '_ForwardIterator1'
| | | `-DeclRefExpr 0x26f28b0 <col:27> '_ForwardIterator2' lvalue ParmVar 0x26f2388 '__first2' '_ForwardIterator2'
| | `-ReturnStmt 0x26f2970 <line:178:7, col:14>
| | `-DeclRefExpr 0x26f2948 <col:14> '_ForwardIterator2' lvalue ParmVar 0x26f2388 '__first2' '_ForwardIterator2'
| |-FunctionTemplateDecl 0x26f2ca8 <line:192:3, line:203:5> line:195:5 min
| | |-TemplateTypeParmDecl 0x26f29b8 <line:192:12, col:21> col:21 referenced typename _Tp
| | |-FunctionDecl 0x26f2c00 <line:194:5, line:203:5> line:195:5 min 'const _Tp &(const _Tp &, const _Tp &)' inline
| | | |-ParmVarDecl 0x26f2a78 <col:9, col:20> col:20 referenced __a 'const _Tp &'
| | | |-ParmVarDecl 0x26f2ae8 <col:25, col:36> col:36 referenced __b 'const _Tp &'
| | | `-CompoundStmt 0x26f2ec0 <line:196:5, line:203:5>
| | | |-IfStmt 0x26f2e48 <line:200:7, line:201:9>
| | | | |-<<<NULL>>>
| | | | |-<<<NULL>>>
| | | | |-CXXOperatorCallExpr 0x26f2dc0 <line:200:11, col:17> '<dependent type>'
| | | | | |-UnresolvedLookupExpr 0x26f2d58 <col:15> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x268d598 0x26b1ca8 0x26b5b78
| | | | | |-DeclRefExpr 0x26f2d08 <col:11> 'const _Tp' lvalue ParmVar 0x26f2ae8 '__b' 'const _Tp &'
| | | | | `-DeclRefExpr 0x26f2d30 <col:17> 'const _Tp' lvalue ParmVar 0x26f2a78 '__a' 'const _Tp &'
| | | | |-ReturnStmt 0x26f2e30 <line:201:2, col:9>
| | | | | `-DeclRefExpr 0x26f2e08 <col:9> 'const _Tp' lvalue ParmVar 0x26f2ae8 '__b' 'const _Tp &'
| | | | `-<<<NULL>>>
| | | `-ReturnStmt 0x26f2ea8 <line:202:7, col:14>
| | | `-DeclRefExpr 0x26f2e80 <col:14> 'const _Tp' lvalue ParmVar 0x26f2a78 '__a' 'const _Tp &'
| | `-FunctionDecl 0x27181a0 <line:194:5, line:203:5> line:195:5 referenced min 'const unsigned long &(const unsigned long &, const unsigned long &)' inline
| | |-TemplateArgument type 'unsigned long'
| | |-ParmVarDecl 0x2718018 <col:9, col:20> col:20 __a 'const unsigned long &'
| | `-ParmVarDecl 0x2718088 <col:25, col:36> col:36 __b 'const unsigned long &'
| |-FunctionTemplateDecl 0x26f3198 <line:216:3, line:227:5> line:219:5 max
| | |-TemplateTypeParmDecl 0x26f2ee8 <line:216:12, col:21> col:21 referenced typename _Tp
| | |-FunctionDecl 0x26f30f0 <line:218:5, line:227:5> line:219:5 max 'const _Tp &(const _Tp &, const _Tp &)' inline
| | | |-ParmVarDecl 0x26f2fa8 <col:9, col:20> col:20 referenced __a 'const _Tp &'
| | | |-ParmVarDecl 0x26f3018 <col:25, col:36> col:36 referenced __b 'const _Tp &'
| | | `-CompoundStmt 0x26f33b0 <line:220:5, line:227:5>
| | | |-IfStmt 0x26f3338 <line:224:7, line:225:9>
| | | | |-<<<NULL>>>
| | | | |-<<<NULL>>>
| | | | |-CXXOperatorCallExpr 0x26f32b0 <line:224:11, col:17> '<dependent type>'
| | | | | |-UnresolvedLookupExpr 0x26f3248 <col:15> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x268d598 0x26b1ca8 0x26b5b78
| | | | | |-DeclRefExpr 0x26f31f8 <col:11> 'const _Tp' lvalue ParmVar 0x26f2fa8 '__a' 'const _Tp &'
| | | | | `-DeclRefExpr 0x26f3220 <col:17> 'const _Tp' lvalue ParmVar 0x26f3018 '__b' 'const _Tp &'
| | | | |-ReturnStmt 0x26f3320 <line:225:2, col:9>
| | | | | `-DeclRefExpr 0x26f32f8 <col:9> 'const _Tp' lvalue ParmVar 0x26f3018 '__b' 'const _Tp &'
| | | | `-<<<NULL>>>
| | | `-ReturnStmt 0x26f3398 <line:226:7, col:14>
| | | `-DeclRefExpr 0x26f3370 <col:14> 'const _Tp' lvalue ParmVar 0x26f2fa8 '__a' 'const _Tp &'
| | `-FunctionDecl 0x283baf0 <line:218:5, line:227:5> line:219:5 used max 'const unsigned long &(const unsigned long &, const unsigned long &)' inline
| | |-TemplateArgument type 'unsigned long'
| | |-ParmVarDecl 0x283b9a8 <col:9, col:20> col:20 used __a 'const unsigned long &'
| | |-ParmVarDecl 0x283ba18 <col:25, col:36> col:36 used __b 'const unsigned long &'
| | `-CompoundStmt 0x283cc68 <line:220:5, line:227:5>
| | |-IfStmt 0x283cbf0 <line:224:7, line:225:9>
| | | |-<<<NULL>>>
| | | |-<<<NULL>>>
| | | |-BinaryOperator 0x283cb88 <line:224:11, col:17> '_Bool' '<'
| | | | |-ImplicitCastExpr 0x283cb58 <col:11> 'unsigned long':'unsigned long' <LValueToRValue>
| | | | | `-DeclRefExpr 0x283cb08 <col:11> 'const unsigned long':'const unsigned long' lvalue ParmVar 0x283b9a8 '__a' 'const unsigned long &'
| | | | `-ImplicitCastExpr 0x283cb70 <col:17> 'unsigned long':'unsigned long' <LValueToRValue>
| | | | `-DeclRefExpr 0x283cb30 <col:17> 'const unsigned long':'const unsigned long' lvalue ParmVar 0x283ba18 '__b' 'const unsigned long &'
| | | |-ReturnStmt 0x283cbd8 <line:225:2, col:9>
| | | | `-DeclRefExpr 0x283cbb0 <col:9> 'const unsigned long':'const unsigned long' lvalue ParmVar 0x283ba18 '__b' 'const unsigned long &'
| | | `-<<<NULL>>>
| | `-ReturnStmt 0x283cc50 <line:226:7, col:14>
| | `-DeclRefExpr 0x283cc28 <col:14> 'const unsigned long':'const unsigned long' lvalue ParmVar 0x283b9a8 '__a' 'const unsigned long &'
| |-FunctionTemplateDecl 0x26f3808 <line:240:3, line:249:5> line:243:5 min
| | |-TemplateTypeParmDecl 0x26f33d8 <line:240:12, col:21> col:21 referenced typename _Tp
| | |-TemplateTypeParmDecl 0x26f3448 <col:26, col:35> col:35 referenced typename _Compare
| | `-FunctionDecl 0x26f3760 <line:242:5, line:249:5> line:243:5 min 'const _Tp &(const _Tp &, const _Tp &, _Compare)' inline
| | |-ParmVarDecl 0x26f3548 <col:9, col:20> col:20 referenced __a 'const _Tp &'
| | |-ParmVarDecl 0x26f35b8 <col:25, col:36> col:36 referenced __b 'const _Tp &'
| | |-ParmVarDecl 0x26f3628 <col:41, col:50> col:50 referenced __comp '_Compare'
| | `-CompoundStmt 0x26f39d8 <line:244:5, line:249:5>
| | |-IfStmt 0x26f3960 <line:246:7, line:247:9>
| | | |-<<<NULL>>>
| | | |-<<<NULL>>>
| | | |-CallExpr 0x26f38e8 <line:246:11, col:26> '<dependent type>'
| | | | |-DeclRefExpr 0x26f3870 <col:11> '_Compare' lvalue ParmVar 0x26f3628 '__comp' '_Compare'
| | | | |-DeclRefExpr 0x26f3898 <col:18> 'const _Tp' lvalue ParmVar 0x26f35b8 '__b' 'const _Tp &'
| | | | `-DeclRefExpr 0x26f38c0 <col:23> 'const _Tp' lvalue ParmVar 0x26f3548 '__a' 'const _Tp &'
| | | |-ReturnStmt 0x26f3948 <line:247:2, col:9>
| | | | `-DeclRefExpr 0x26f3920 <col:9> 'const _Tp' lvalue ParmVar 0x26f35b8 '__b' 'const _Tp &'
| | | `-<<<NULL>>>
| | `-ReturnStmt 0x26f39c0 <line:248:7, col:14>
| | `-DeclRefExpr 0x26f3998 <col:14> 'const _Tp' lvalue ParmVar 0x26f3548 '__a' 'const _Tp &'
| |-FunctionTemplateDecl 0x26f3da8 <line:262:3, line:271:5> line:265:5 max
| | |-TemplateTypeParmDecl 0x26f3a00 <line:262:12, col:21> col:21 referenced typename _Tp
| | |-TemplateTypeParmDecl 0x26f3a68 <col:26, col:35> col:35 referenced typename _Compare
| | `-FunctionDecl 0x26f3d00 <line:264:5, line:271:5> line:265:5 max 'const _Tp &(const _Tp &, const _Tp &, _Compare)' inline
| | |-ParmVarDecl 0x26f3b38 <col:9, col:20> col:20 referenced __a 'const _Tp &'
| | |-ParmVarDecl 0x26f3ba8 <col:25, col:36> col:36 referenced __b 'const _Tp &'
| | |-ParmVarDecl 0x26f3c18 <col:41, col:50> col:50 referenced __comp '_Compare'
| | `-CompoundStmt 0x26f3f78 <line:266:5, line:271:5>
| | |-IfStmt 0x26f3f00 <line:268:7, line:269:9>
| | | |-<<<NULL>>>
| | | |-<<<NULL>>>
| | | |-CallExpr 0x26f3e88 <line:268:11, col:26> '<dependent type>'
| | | | |-DeclRefExpr 0x26f3e10 <col:11> '_Compare' lvalue ParmVar 0x26f3c18 '__comp' '_Compare'
| | | | |-DeclRefExpr 0x26f3e38 <col:18> 'const _Tp' lvalue ParmVar 0x26f3b38 '__a' 'const _Tp &'
| | | | `-DeclRefExpr 0x26f3e60 <col:23> 'const _Tp' lvalue ParmVar 0x26f3ba8 '__b' 'const _Tp &'
| | | |-ReturnStmt 0x26f3ee8 <line:269:2, col:9>
| | | | `-DeclRefExpr 0x26f3ec0 <col:9> 'const _Tp' lvalue ParmVar 0x26f3ba8 '__b' 'const _Tp &'
| | | `-<<<NULL>>>
| | `-ReturnStmt 0x26f3f60 <line:270:7, col:14>
| | `-DeclRefExpr 0x26f3f38 <col:14> 'const _Tp' lvalue ParmVar 0x26f3b38 '__a' 'const _Tp &'
| |-FunctionTemplateDecl 0x26f4198 <line:275:3, line:278:20> line:277:5 __niter_base
| | |-TemplateTypeParmDecl 0x26f3fa0 <line:275:12, col:21> col:21 referenced typename _Iterator
| | |-FunctionDecl 0x26f40f0 <line:276:5, line:278:20> line:277:5 __niter_base '_Iterator (_Iterator)' inline
| | | |-ParmVarDecl 0x26f4030 <col:18, col:28> col:28 referenced __it '_Iterator'
| | | `-CompoundStmt 0x26f4230 <line:278:5, col:20>
| | | `-ReturnStmt 0x26f4218 <col:7, col:14>
| | | `-DeclRefExpr 0x26f41f0 <col:14> '_Iterator' lvalue ParmVar 0x26f4030 '__it' '_Iterator'
| | |-FunctionDecl 0x281bdb0 <line:276:5, line:278:20> line:277:5 used __niter_base 'unsigned long *(unsigned long *)' inline
| | | |-TemplateArgument type 'unsigned long *'
| | | |-ParmVarDecl 0x281bca8 <col:18, col:28> col:28 used __it 'unsigned long *':'unsigned long *'
| | | `-CompoundStmt 0x271aea0 <line:278:5, col:20>
| | | `-ReturnStmt 0x271ae88 <col:7, col:14>
| | | `-ImplicitCastExpr 0x271ae70 <col:14> 'unsigned long *':'unsigned long *' <LValueToRValue>
| | | `-DeclRefExpr 0x271ae48 <col:14> 'unsigned long *':'unsigned long *' lvalue ParmVar 0x281bca8 '__it' 'unsigned long *':'unsigned long *'
| | `-FunctionDecl 0x2838460 <line:276:5, line:278:20> line:277:5 used __niter_base 'struct A *(struct A *)' inline
| | |-TemplateArgument type 'struct A *'
| | |-ParmVarDecl 0x2838398 <col:18, col:28> col:28 used __it 'struct A *':'struct A *'
| | `-CompoundStmt 0x2839128 <line:278:5, col:20>
| | `-ReturnStmt 0x2839110 <col:7, col:14>
| | `-ImplicitCastExpr 0x28390f8 <col:14> 'struct A *':'struct A *' <LValueToRValue>
| | `-DeclRefExpr 0x28390d0 <col:14> 'struct A *':'struct A *' lvalue ParmVar 0x2838398 '__it' 'struct A *':'struct A *'
| |-ClassTemplateDecl 0x26f4448 <line:286:3, line:297:5> line:287:12 __copy_move
| | |-NonTypeTemplateParmDecl 0x26f4260 <line:286:12> col:16 '_Bool'
| | |-NonTypeTemplateParmDecl 0x26f42c8 <col:18> col:22 '_Bool'
| | |-TemplateTypeParmDecl 0x26f4320 <col:24> col:24 typename
| | |-CXXRecordDecl 0x26f43b0 <line:287:5, line:297:5> line:287:12 struct __copy_move definition
| | | |-CXXRecordDecl 0x26f47f8 <col:5, col:12> col:12 implicit struct __copy_move
| | | `-FunctionTemplateDecl 0x26f4c58 <line:289:7, line:296:2> line:291:9 __copy_m
| | | |-TemplateTypeParmDecl 0x26f4890 <line:289:16, col:25> col:25 referenced typename _II
| | | |-TemplateTypeParmDecl 0x26f48f8 <col:30, col:39> col:39 referenced typename _OI
| | | `-CXXMethodDecl 0x26f4bb0 <line:290:9, line:296:2> line:291:9 __copy_m '_OI (_II, _II, _OI)' static
| | | |-ParmVarDecl 0x26f4998 <col:18, col:22> col:22 referenced __first '_II'
| | | |-ParmVarDecl 0x26f4a08 <col:31, col:35> col:35 referenced __last '_II'
| | | |-ParmVarDecl 0x26f4a78 <col:43, col:47> col:47 referenced __result '_OI'
| | | `-CompoundStmt 0x26f5008 <line:292:9, line:296:2>
| | | |-ForStmt 0x26f4f90 <line:293:4, line:294:19>
| | | | |-<<<NULL>>>
| | | | |-<<<NULL>>>
| | | | |-CXXOperatorCallExpr 0x26f4da0 <line:293:11, col:22> '<dependent type>'
| | | | | |-UnresolvedLookupExpr 0x26f4d38 <col:19> '<overloaded function type>' lvalue (ADL) = 'operator!=' 0x268e1f8 0x26b2418 0x26b6368
| | | | | |-DeclRefExpr 0x26f4ce8 <col:11> '_II' lvalue ParmVar 0x26f4998 '__first' '_II'
| | | | | `-DeclRefExpr 0x26f4d10 <col:22> '_II' lvalue ParmVar 0x26f4a08 '__last' '_II'
| | | | |-BinaryOperator 0x26f4eb0 <col:30, col:50> '<dependent type>' ','
| | | | | |-UnaryOperator 0x26f4e10 <col:30, col:32> '<dependent type>' prefix '++'
| | | | | | `-DeclRefExpr 0x26f4de8 <col:32> '_OI' lvalue ParmVar 0x26f4a78 '__result' '_OI'
| | | | | `-CStyleCastExpr 0x26f4e88 <col:42, col:50> 'void' <ToVoid>
| | | | | `-UnaryOperator 0x26f4e58 <col:48, col:50> '<dependent type>' prefix '++'
| | | | | `-DeclRefExpr 0x26f4e30 <col:50> '_II' lvalue ParmVar 0x26f4998 '__first' '_II'
| | | | `-BinaryOperator 0x26f4f68 <line:294:6, col:19> '<dependent type>' '='
| | | | |-UnaryOperator 0x26f4f00 <col:6, col:7> '<dependent type>' prefix '*'
| | | | | `-DeclRefExpr 0x26f4ed8 <col:7> '_OI' lvalue ParmVar 0x26f4a78 '__result' '_OI'
| | | | `-UnaryOperator 0x26f4f48 <col:18, col:19> '<dependent type>' prefix '*'
| | | | `-DeclRefExpr 0x26f4f20 <col:19> '_II' lvalue ParmVar 0x26f4998 '__first' '_II'
| | | `-ReturnStmt 0x26f4ff0 <line:295:4, col:11>
| | | `-DeclRefExpr 0x26f4fc8 <col:11> '_OI' lvalue ParmVar 0x26f4a78 '__result' '_OI'
| | `-ClassTemplateSpecialization 0x26f5080 '__copy_move'
| |-ClassTemplateSpecializationDecl 0x26f5080 <line:314:3, line:330:5> line:315:12 struct __copy_move definition
| | |-TemplateArgument integral 0
| | |-TemplateArgument integral 0
| | |-TemplateArgument type 'struct std::random_access_iterator_tag'
| | |-CXXRecordDecl 0x26f5338 <col:5, col:12> col:12 implicit struct __copy_move
| | `-FunctionTemplateDecl 0x26f61b8 <line:317:7, line:329:2> line:319:9 __copy_m
| | |-TemplateTypeParmDecl 0x26f53d0 <line:317:16, col:25> col:25 referenced typename _II
| | |-TemplateTypeParmDecl 0x26f5438 <col:30, col:39> col:39 referenced typename _OI
| | `-CXXMethodDecl 0x26f6110 <line:318:9, line:329:2> line:319:9 __copy_m '_OI (_II, _II, _OI)' static
| | |-ParmVarDecl 0x26f5f50 <col:18, col:22> col:22 referenced __first '_II'
| | |-ParmVarDecl 0x26f5fc0 <col:31, col:35> col:35 referenced __last '_II'
| | |-ParmVarDecl 0x26f6030 <col:43, col:47> col:47 referenced __result '_OI'
| | `-CompoundStmt 0x26f6900 <line:320:9, line:329:2>
| | |-DeclStmt 0x26f6410 <line:321:4, col:68>
| | | `-TypedefDecl 0x26f63c0 <col:4, col:59> col:59 referenced _Distance 'typename iterator_traits<_II>::difference_type'
| | | `-DependentNameType 0x26f6350 'typename iterator_traits<_II>::difference_type' dependent
| | |-ForStmt 0x26f6888 <line:322:4, line:327:6>
| | | |-DeclStmt 0x26f65b8 <line:322:8, col:40>
| | | | `-VarDecl 0x26f6460 <col:8, col:33> col:18 referenced __n '_Distance':'typename iterator_traits<_II>::difference_type' cinit
| | | | `-CXXOperatorCallExpr 0x26f6570 <col:24, col:33> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x26f6510 <col:31> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8 0x26b8208
| | | | |-DeclRefExpr 0x26f64c0 <col:24> '_II' lvalue ParmVar 0x26f5fc0 '__last' '_II'
| | | | `-DeclRefExpr 0x26f64e8 <col:33> '_II' lvalue ParmVar 0x26f5f50 '__first' '_II'
| | | |-<<<NULL>>>
| | | |-CXXOperatorCallExpr 0x26f6680 <col:42, col:48> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x26f6618 <col:46> '<overloaded function type>' lvalue (ADL) = 'operator>' 0x268ea08 0x26b2af8 0x26b6af8
| | | | |-DeclRefExpr 0x26f65d0 <col:42> '_Distance':'typename iterator_traits<_II>::difference_type' lvalue Var 0x26f6460 '__n' '_Distance':'typename iterator_traits<_II>::difference_type'
| | | | `-IntegerLiteral 0x26f65f8 <col:48> 'int' 0
| | | |-UnaryOperator 0x26f66f0 <col:51, col:53> '<dependent type>' prefix '--'
| | | | `-DeclRefExpr 0x26f66c8 <col:53> '_Distance':'typename iterator_traits<_II>::difference_type' lvalue Var 0x26f6460 '__n' '_Distance':'typename iterator_traits<_II>::difference_type'
| | | `-CompoundStmt 0x26f6858 <line:323:6, line:327:6>
| | | |-BinaryOperator 0x26f67a0 <line:324:8, col:21> '<dependent type>' '='
| | | | |-UnaryOperator 0x26f6738 <col:8, col:9> '<dependent type>' prefix '*'
| | | | | `-DeclRefExpr 0x26f6710 <col:9> '_OI' lvalue ParmVar 0x26f6030 '__result' '_OI'
| | | | `-UnaryOperator 0x26f6780 <col:20, col:21> '<dependent type>' prefix '*'
| | | | `-DeclRefExpr 0x26f6758 <col:21> '_II' lvalue ParmVar 0x26f5f50 '__first' '_II'
| | | |-UnaryOperator 0x26f67f0 <line:325:8, col:10> '<dependent type>' prefix '++'
| | | | `-DeclRefExpr 0x26f67c8 <col:10> '_II' lvalue ParmVar 0x26f5f50 '__first' '_II'
| | | `-UnaryOperator 0x26f6838 <line:326:8, col:10> '<dependent type>' prefix '++'
| | | `-DeclRefExpr 0x26f6810 <col:10> '_OI' lvalue ParmVar 0x26f6030 '__result' '_OI'
| | `-ReturnStmt 0x26f68e8 <line:328:4, col:11>
| | `-DeclRefExpr 0x26f68c0 <col:11> '_OI' lvalue ParmVar 0x26f6030 '__result' '_OI'
| |-ClassTemplatePartialSpecializationDecl 0x26f6b98 <line:352:3, line:371:5> line:353:12 struct __copy_move definition
| | |-TemplateArgument expr
| | | `-DeclRefExpr 0x26f69b0 <col:24> '_Bool' NonTypeTemplateParm 0x26f6940 '_IsMove' '_Bool'
| | |-TemplateArgument integral 1
| | |-TemplateArgument type 'struct std::random_access_iterator_tag'
| | |-NonTypeTemplateParmDecl 0x26f6940 <line:352:12, col:17> col:17 referenced '_Bool' _IsMove
| | |-CXXRecordDecl 0x26f6e48 <line:353:5, col:12> col:12 implicit struct __copy_move
| | `-FunctionTemplateDecl 0x26f7308 <line:355:7, line:370:2> line:357:9 __copy_m
| | |-TemplateTypeParmDecl 0x26f6ee0 <line:355:16, col:25> col:25 referenced typename _Tp
| | `-CXXMethodDecl 0x26f7260 <line:356:9, line:370:2> line:357:9 __copy_m '_Tp *(const _Tp *, const _Tp *, _Tp *)' static
| | |-ParmVarDecl 0x26f6fe8 <col:18, col:29> col:29 referenced __first 'const _Tp *'
| | |-ParmVarDecl 0x26f7058 <col:38, col:49> col:49 referenced __last 'const _Tp *'
| | |-ParmVarDecl 0x26f7128 <col:57, col:62> col:62 referenced __result '_Tp *'
| | `-CompoundStmt 0x26f7b38 <line:358:9, line:370:2>
| | |-DeclStmt 0x26f7500 <line:366:4, col:43>
| | | `-VarDecl 0x26f73a8 <col:4, col:36> col:20 referenced _Num 'const ptrdiff_t':'const long' cinit
| | | `-CXXOperatorCallExpr 0x26f74b8 <col:27, col:36> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x26f7458 <col:34> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8 0x26b8208
| | | |-DeclRefExpr 0x26f7408 <col:27> 'const _Tp *' lvalue ParmVar 0x26f7058 '__last' 'const _Tp *'
| | | `-DeclRefExpr 0x26f7430 <col:36> 'const _Tp *' lvalue ParmVar 0x26f6fe8 '__first' 'const _Tp *'
| | |-IfStmt 0x26f79f8 <line:367:4, line:368:61>
| | | |-<<<NULL>>>
| | | |-<<<NULL>>>
| | | |-ImplicitCastExpr 0x26f7558 <line:367:8> '_Bool' <IntegralToBoolean>
| | | | `-ImplicitCastExpr 0x26f7540 <col:8> 'ptrdiff_t':'long' <LValueToRValue>
| | | | `-DeclRefExpr 0x26f7518 <col:8> 'const ptrdiff_t':'const long' lvalue Var 0x26f73a8 '_Num' 'const ptrdiff_t':'const long'
| | | |-CallExpr 0x26f79b8 <line:368:6, col:61> '<dependent type>'
| | | | |-DeclRefExpr 0x26f7890 <col:6> '<builtin fn type>' Function 0x26f7638 '__builtin_memmove' 'void *(void *, const void *, unsigned long)'
| | | | |-DeclRefExpr 0x26f78b8 <col:24> '_Tp *' lvalue ParmVar 0x26f7128 '__result' '_Tp *'
| | | | |-DeclRefExpr 0x26f78e0 <col:34> 'const _Tp *' lvalue ParmVar 0x26f6fe8 '__first' 'const _Tp *'
| | | | `-BinaryOperator 0x26f7990 <col:43, col:57> 'unsigned long' '*'
| | | | |-UnaryExprOrTypeTraitExpr 0x26f7918 <col:43, col:53> 'unsigned long' sizeof '_Tp'
| | | | `-ImplicitCastExpr 0x26f7978 <col:57> 'unsigned long' <IntegralCast>
| | | | `-ImplicitCastExpr 0x26f7960 <col:57> 'ptrdiff_t':'long' <LValueToRValue>
| | | | `-DeclRefExpr 0x26f7938 <col:57> 'const ptrdiff_t':'const long' lvalue Var 0x26f73a8 '_Num' 'const ptrdiff_t':'const long'
| | | `-<<<NULL>>>
| | `-ReturnStmt 0x26f7b20 <line:369:4, col:22>
| | `-CXXOperatorCallExpr 0x26f7ad8 <col:11, col:22> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26f7a80 <col:20> '<overloaded function type>' lvalue (ADL) = 'operator+' 0x26b4a08
| | |-DeclRefExpr 0x26f7a30 <col:11> '_Tp *' lvalue ParmVar 0x26f7128 '__result' '_Tp *'
| | `-DeclRefExpr 0x26f7a58 <col:22> 'const ptrdiff_t':'const long' lvalue Var 0x26f73a8 '_Num' 'const ptrdiff_t':'const long'
| |-FunctionTemplateDecl 0x26f8018 <line:373:3, line:387:5> line:375:5 __copy_move_a
| | |-NonTypeTemplateParmDecl 0x26f7b78 <line:373:12, col:17> col:17 referenced '_Bool' _IsMove
| | |-TemplateTypeParmDecl 0x26f7bd0 <col:26, col:35> col:35 referenced typename _II
| | |-TemplateTypeParmDecl 0x26f7c38 <col:40, col:49> col:49 referenced typename _OI
| | `-FunctionDecl 0x26f7f70 <line:374:5, line:387:5> line:375:5 __copy_move_a '_OI (_II, _II, _OI)' inline
| | |-ParmVarDecl 0x26f7ce0 <col:19, col:23> col:23 referenced __first '_II'
| | |-ParmVarDecl 0x26f7d50 <col:32, col:36> col:36 referenced __last '_II'
| | |-ParmVarDecl 0x26f7dc0 <col:44, col:48> col:48 referenced __result '_OI'
| | `-CompoundStmt 0x26fa658 <line:376:5, line:387:5>
| | |-DeclStmt 0x26f8240 <line:377:7, col:68>
| | | `-TypedefDecl 0x26f81f0 <col:7, col:57> col:57 referenced _ValueTypeI 'typename iterator_traits<_II>::value_type'
| | | `-DependentNameType 0x26f8180 'typename iterator_traits<_II>::value_type' dependent
| | |-DeclStmt 0x26f84b0 <line:378:7, col:68>
| | | `-TypedefDecl 0x26f8460 <col:7, col:57> col:57 referenced _ValueTypeO 'typename iterator_traits<_OI>::value_type'
| | | `-DependentNameType 0x26f83f0 'typename iterator_traits<_OI>::value_type' dependent
| | |-DeclStmt 0x26f86c0 <line:379:7, col:73>
| | | `-TypedefDecl 0x26f8670 <col:7, col:64> col:64 referenced _Category 'typename iterator_traits<_II>::iterator_category'
| | | `-DependentNameType 0x26f8600 'typename iterator_traits<_II>::iterator_category' dependent
| | |-DeclStmt 0x26f8db0 <line:380:7, line:383:58>
| | | `-VarDecl 0x26f86e8 <line:380:7, line:383:57> line:380:18 referenced __simple 'const _Bool' cinit
| | | `-ParenExpr 0x26f8d90 <col:29, line:383:57> '<dependent type>'
| | | `-BinaryOperator 0x26f8d68 <line:380:30, line:383:50> '<dependent type>' '&&'
| | | |-BinaryOperator 0x26f8b18 <line:380:30, line:382:45> '<dependent type>' '&&'
| | | | |-BinaryOperator 0x26f8948 <line:380:30, line:381:45> '<dependent type>' '&&'
| | | | | |-TypeTraitExpr 0x26f8780 <line:380:30, col:54> '_Bool'
| | | | | `-DependentScopeDeclRefExpr 0x26f8908 <line:381:26, col:45> '<dependent type>' lvalue
| | | | `-DependentScopeDeclRefExpr 0x26f8ad8 <line:382:26, col:45> '<dependent type>' lvalue
| | | `-DependentScopeDeclRefExpr 0x26f8d28 <line:383:12, col:50> '<dependent type>' lvalue
| | `-ReturnStmt 0x26fa640 <line:385:7, line:386:70>
| | `-CallExpr 0x26fa600 <line:385:14, line:386:70> '<dependent type>'
| | |-DependentScopeDeclRefExpr 0x26fa548 <line:385:14, line:386:36> '<dependent type>' lvalue
| | |-DeclRefExpr 0x26fa588 <col:45> '_II' lvalue ParmVar 0x26f7ce0 '__first' '_II'
| | |-DeclRefExpr 0x26fa5b0 <col:54> '_II' lvalue ParmVar 0x26f7d50 '__last' '_II'
| | `-DeclRefExpr 0x26fa5d8 <col:62> '_OI' lvalue ParmVar 0x26f7dc0 '__result' '_OI'
| |-ClassTemplateDecl 0x26fa7b8 <line:391:3, line:392:12> col:12 char_traits
| | |-TemplateTypeParmDecl 0x26fa698 <line:391:12, col:21> col:21 typename _CharT
| | `-CXXRecordDecl 0x26fa720 <line:392:5, col:12> col:12 struct char_traits
| |-ClassTemplateDecl 0x26fab60 <line:394:3, line:395:11> col:11 istreambuf_iterator
| | |-TemplateTypeParmDecl 0x26fa9c8 <line:394:12, col:21> col:21 typename _CharT
| | |-TemplateTypeParmDecl 0x26faa38 <col:29, col:38> col:38 typename _Traits
| | `-CXXRecordDecl 0x26faac8 <line:395:5, col:11> col:11 class istreambuf_iterator
| |-ClassTemplateDecl 0x26faf30 <line:397:3, line:398:11> col:11 ostreambuf_iterator
| | |-TemplateTypeParmDecl 0x26fad98 <line:397:12, col:21> col:21 typename _CharT
| | |-TemplateTypeParmDecl 0x26fae08 <col:29, col:38> col:38 typename _Traits
| | `-CXXRecordDecl 0x26fae98 <line:398:5, col:11> col:11 class ostreambuf_iterator
| |-FunctionTemplateDecl 0x26fcd98 <line:400:3, line:404:55> line:403:5 __copy_move_a2
| | |-NonTypeTemplateParmDecl 0x26fb178 <line:400:12, col:17> col:17 '_Bool' _IsMove
| | |-TemplateTypeParmDecl 0x26fb1d0 <col:26, col:35> col:35 referenced typename _CharT
| | `-FunctionDecl 0x26fccf0 <line:401:5, line:404:55> line:403:5 __copy_move_a2 'typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type (_CharT *, _CharT *, ostreambuf_iterator<_CharT, char_traits<_CharT> >)'
| | |-ParmVarDecl 0x26fc868 <col:20, col:26> col:27 '_CharT *'
| | |-ParmVarDecl 0x26fc8d8 <col:29, col:35> col:36 '_CharT *'
| | `-ParmVarDecl 0x26fcbb0 <line:404:6, col:54> col:55 'ostreambuf_iterator<_CharT, char_traits<_CharT> >'
| |-FunctionTemplateDecl 0x26fda08 <line:406:3, line:410:55> line:409:5 __copy_move_a2
| | |-NonTypeTemplateParmDecl 0x26fce10 <line:406:12, col:17> col:17 '_Bool' _IsMove
| | |-TemplateTypeParmDecl 0x26fce68 <col:26, col:35> col:35 referenced typename _CharT
| | `-FunctionDecl 0x26fd960 <line:407:5, line:410:55> line:409:5 __copy_move_a2 'typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type (const _CharT *, const _CharT *, ostreambuf_iterator<_CharT, char_traits<_CharT> >)'
| | |-ParmVarDecl 0x26fd4d8 <col:20, col:32> col:33 'const _CharT *'
| | |-ParmVarDecl 0x26fd548 <col:35, col:47> col:48 'const _CharT *'
| | `-ParmVarDecl 0x26fd820 <line:410:6, col:54> col:55 'ostreambuf_iterator<_CharT, char_traits<_CharT> >'
| |-FunctionTemplateDecl 0x26fe788 <line:412:3, line:416:64> line:415:5 __copy_move_a2
| | |-NonTypeTemplateParmDecl 0x26fda80 <line:412:12, col:17> col:17 '_Bool' _IsMove
| | |-TemplateTypeParmDecl 0x26fdad8 <col:26, col:35> col:35 referenced typename _CharT
| | `-FunctionDecl 0x26fe6e0 <line:413:5, line:416:64> line:415:5 __copy_move_a2 'typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, _CharT *>::__type (istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT *)'
| | |-ParmVarDecl 0x26fe258 <col:20, col:68> col:69 'istreambuf_iterator<_CharT, char_traits<_CharT> >'
| | |-ParmVarDecl 0x26fe530 <line:416:6, col:54> col:55 'istreambuf_iterator<_CharT, char_traits<_CharT> >'
| | `-ParmVarDecl 0x26fe5a0 <col:57, col:63> col:64 '_CharT *'
| |-FunctionTemplateDecl 0x26febd8 <line:418:3, line:425:5> line:420:5 __copy_move_a2
| | |-NonTypeTemplateParmDecl 0x26fe800 <line:418:12, col:17> col:17 referenced '_Bool' _IsMove
| | |-TemplateTypeParmDecl 0x26fe858 <col:26, col:35> col:35 referenced typename _II
| | |-TemplateTypeParmDecl 0x26fe8c8 <col:40, col:49> col:49 referenced typename _OI
| | `-FunctionDecl 0x26feb30 <line:419:5, line:425:5> line:420:5 __copy_move_a2 '_OI (_II, _II, _OI)' inline
| | |-ParmVarDecl 0x26fe970 <col:20, col:24> col:24 referenced __first '_II'
| | |-ParmVarDecl 0x26fe9e0 <col:33, col:37> col:37 referenced __last '_II'
| | |-ParmVarDecl 0x26fea50 <col:45, col:49> col:49 referenced __result '_OI'
| | `-CompoundStmt 0x26ff058 <line:421:5, line:425:5>
| | `-ReturnStmt 0x26ff040 <line:422:7, line:424:39>
| | `-CXXUnresolvedConstructExpr 0x26ff010 <line:422:14, line:424:39> '_OI'
| | `-CallExpr 0x26fefd0 <line:422:18, line:424:38> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26fecb0 <line:422:18, col:44> '<dependent type>' lvalue (no ADL) = '__copy_move_a' 0x26f8018
| | |-CallExpr 0x26fedf0 <col:46, col:71> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x26fed68 <col:46, col:51> '<overloaded function type>' lvalue (no ADL) = '__niter_base' 0x26d0f80 0x26f4198
| | | `-DeclRefExpr 0x26fedc8 <col:64> '_II' lvalue ParmVar 0x26fe970 '__first' '_II'
| | |-CallExpr 0x26feec8 <line:423:11, col:35> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x26fee40 <col:11, col:16> '<overloaded function type>' lvalue (no ADL) = '__niter_base' 0x26d0f80 0x26f4198
| | | `-DeclRefExpr 0x26feea0 <col:29> '_II' lvalue ParmVar 0x26fe9e0 '__last' '_II'
| | `-CallExpr 0x26fefa0 <line:424:11, col:37> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26fef18 <col:11, col:16> '<overloaded function type>' lvalue (no ADL) = '__niter_base' 0x26d0f80 0x26f4198
| | `-DeclRefExpr 0x26fef78 <col:29> '_OI' lvalue ParmVar 0x26fea50 '__result' '_OI'
| |-FunctionTemplateDecl 0x26ff418 <line:444:3, line:457:5> line:446:5 copy
| | |-TemplateTypeParmDecl 0x26ff078 <line:444:12, col:21> col:21 referenced typename _II
| | |-TemplateTypeParmDecl 0x26ff0e8 <col:26, col:35> col:35 referenced typename _OI
| | |-FunctionDecl 0x26ff370 <line:445:5, line:457:5> line:446:5 copy '_OI (_II, _II, _OI)' inline
| | | |-ParmVarDecl 0x26ff188 <col:10, col:14> col:14 referenced __first '_II'
| | | |-ParmVarDecl 0x26ff220 <col:23, col:27> col:27 referenced __last '_II'
| | | |-ParmVarDecl 0x26ff290 <col:35, col:39> col:39 referenced __result '_OI'
| | | `-CompoundStmt 0x26ff950 <line:447:5, line:457:5>
| | | |-NullStmt 0x26ff480 <line:452:54>
| | | `-ReturnStmt 0x26ff938 <line:454:7, line:456:18>
| | | `-ParenExpr 0x26ff918 <line:454:14, line:456:18> '<dependent type>'
| | | `-CallExpr 0x26ff8d8 <line:454:15, line:456:17> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x26ff660 <line:454:15, col:67> '<dependent type>' lvalue (no ADL) = '__copy_move_a2' 0x26fcd98 0x26fda08 0x26fe788 0x26febd8
| | | |-CallExpr 0x26ff7b0 <line:455:9, col:34> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x26ff730 <col:9, col:14> '<overloaded function type>' lvalue (no ADL) = '__miter_base' 0x26606b8
| | | | `-DeclRefExpr 0x26ff788 <col:27> '_II' lvalue ParmVar 0x26ff188 '__first' '_II'
| | | |-CallExpr 0x26ff880 <col:37, col:61> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x26ff800 <col:37, col:42> '<overloaded function type>' lvalue (no ADL) = '__miter_base' 0x26606b8
| | | | `-DeclRefExpr 0x26ff858 <col:55> '_II' lvalue ParmVar 0x26ff220 '__last' '_II'
| | | `-DeclRefExpr 0x26ff8b0 <line:456:9> '_OI' lvalue ParmVar 0x26ff290 '__result' '_OI'
| | |-FunctionDecl 0x27d6670 <line:445:5, line:457:5> line:446:5 referenced copy 'unsigned long *(unsigned long *, unsigned long *, unsigned long *)' inline
| | | |-TemplateArgument type 'unsigned long *'
| | | |-TemplateArgument type 'unsigned long *'
| | | |-ParmVarDecl 0x27d6458 <col:10, col:14> col:14 __first 'unsigned long *':'unsigned long *'
| | | |-ParmVarDecl 0x27d64c8 <col:23, col:27> col:27 __last 'unsigned long *':'unsigned long *'
| | | `-ParmVarDecl 0x27d6538 <col:35, col:39> col:39 __result 'unsigned long *':'unsigned long *'
| | `-FunctionDecl 0x27d7d80 <line:445:5, line:457:5> line:446:5 referenced copy 'struct std::_Bit_iterator (struct std::_Bit_const_iterator, struct std::_Bit_const_iterator, struct std::_Bit_iterator)' inline
| | |-TemplateArgument type 'struct std::_Bit_const_iterator'
| | |-TemplateArgument type 'struct std::_Bit_iterator'
| | |-ParmVarDecl 0x27d7bb8 <col:10, col:14> col:14 __first 'struct std::_Bit_const_iterator':'struct std::_Bit_const_iterator'
| | |-ParmVarDecl 0x27d7c28 <col:23, col:27> col:27 __last 'struct std::_Bit_const_iterator':'struct std::_Bit_const_iterator'
| | `-ParmVarDecl 0x27d7c98 <col:35, col:39> col:39 __result 'struct std::_Bit_iterator':'struct std::_Bit_iterator'
| |-ClassTemplateDecl 0x26ffb78 <line:496:3, line:507:5> line:497:12 __copy_move_backward
| | |-NonTypeTemplateParmDecl 0x26ff988 <line:496:12> col:16 '_Bool'
| | |-NonTypeTemplateParmDecl 0x26ff9f0 <col:18> col:22 '_Bool'
| | |-TemplateTypeParmDecl 0x26ffa48 <col:24> col:24 typename
| | |-CXXRecordDecl 0x26ffae0 <line:497:5, line:507:5> line:497:12 struct __copy_move_backward definition
| | | |-CXXRecordDecl 0x26ffe98 <col:5, col:12> col:12 implicit struct __copy_move_backward
| | | `-FunctionTemplateDecl 0x2700898 <line:499:7, line:506:2> line:501:9 __copy_move_b
| | | |-TemplateTypeParmDecl 0x26fff30 <line:499:16, col:25> col:25 referenced typename _BI1
| | | |-TemplateTypeParmDecl 0x26fff98 <col:31, col:40> col:40 referenced typename _BI2
| | | `-CXXMethodDecl 0x27007f0 <line:500:9, line:506:2> line:501:9 __copy_move_b '_BI2 (_BI1, _BI1, _BI2)' static
| | | |-ParmVarDecl 0x2700038 <col:23, col:28> col:28 referenced __first '_BI1'
| | | |-ParmVarDecl 0x27000a8 <col:37, col:42> col:42 referenced __last '_BI1'
| | | |-ParmVarDecl 0x2700118 <col:50, col:55> col:55 referenced __result '_BI2'
| | | `-CompoundStmt 0x2700b80 <line:502:9, line:506:2>
| | | |-WhileStmt 0x2700b20 <line:503:4, line:504:23>
| | | | |-<<<NULL>>>
| | | | |-CXXOperatorCallExpr 0x27009e0 <line:503:11, col:22> '<dependent type>'
| | | | | |-UnresolvedLookupExpr 0x2700978 <col:19> '<overloaded function type>' lvalue (ADL) = 'operator!=' 0x268e1f8 0x26b2418 0x26b6368
| | | | | |-DeclRefExpr 0x2700928 <col:11> '_BI1' lvalue ParmVar 0x2700038 '__first' '_BI1'
| | | | | `-DeclRefExpr 0x2700950 <col:22> '_BI1' lvalue ParmVar 0x27000a8 '__last' '_BI1'
| | | | `-BinaryOperator 0x2700af8 <line:504:6, col:23> '<dependent type>' '='
| | | | |-UnaryOperator 0x2700a70 <col:6, col:9> '<dependent type>' prefix '*'
| | | | | `-UnaryOperator 0x2700a50 <col:7, col:9> '<dependent type>' prefix '--'
| | | | | `-DeclRefExpr 0x2700a28 <col:9> '_BI2' lvalue ParmVar 0x2700118 '__result' '_BI2'
| | | | `-UnaryOperator 0x2700ad8 <col:20, col:23> '<dependent type>' prefix '*'
| | | | `-UnaryOperator 0x2700ab8 <col:21, col:23> '<dependent type>' prefix '--'
| | | | `-DeclRefExpr 0x2700a90 <col:23> '_BI1' lvalue ParmVar 0x27000a8 '__last' '_BI1'
| | | `-ReturnStmt 0x2700b68 <line:505:4, col:11>
| | | `-DeclRefExpr 0x2700b40 <col:11> '_BI2' lvalue ParmVar 0x2700118 '__result' '_BI2'
| | `-ClassTemplateSpecialization 0x2700bf8 '__copy_move_backward'
| |-ClassTemplateSpecializationDecl 0x2700bf8 <line:524:3, line:536:5> line:525:12 struct __copy_move_backward definition
| | |-TemplateArgument integral 0
| | |-TemplateArgument integral 0
| | |-TemplateArgument type 'struct std::random_access_iterator_tag'
| | |-CXXRecordDecl 0x2700ea8 <col:5, col:12> col:12 implicit struct __copy_move_backward
| | `-FunctionTemplateDecl 0x27012b8 <line:527:7, line:535:2> line:529:9 __copy_move_b
| | |-TemplateTypeParmDecl 0x2700f40 <line:527:16, col:25> col:25 referenced typename _BI1
| | |-TemplateTypeParmDecl 0x2700fa8 <col:31, col:40> col:40 referenced typename _BI2
| | |-CXXMethodDecl 0x2701210 <line:528:9, line:535:2> line:529:9 __copy_move_b '_BI2 (_BI1, _BI1, _BI2)' static
| | | |-ParmVarDecl 0x2701048 <col:23, col:28> col:28 referenced __first '_BI1'
| | | |-ParmVarDecl 0x27010b8 <col:37, col:42> col:42 referenced __last '_BI1'
| | | |-ParmVarDecl 0x2701128 <col:50, col:55> col:55 referenced __result '_BI2'
| | | `-CompoundStmt 0x2701d88 <line:530:9, line:535:2>
| | | |-DeclStmt 0x2701520 <line:531:4, col:55>
| | | | `-VarDecl 0x27014c0 <col:4, col:52> col:52 referenced __n 'typename iterator_traits<_BI1>::difference_type'
| | | |-ForStmt 0x2701d10 <line:532:4, line:533:23>
| | | | |-BinaryOperator 0x2701658 <line:532:9, col:24> '<dependent type>' '='
| | | | | |-DeclRefExpr 0x2701538 <col:9> 'typename iterator_traits<_BI1>::difference_type' lvalue Var 0x27014c0 '__n' 'typename iterator_traits<_BI1>::difference_type'
| | | | | `-CXXOperatorCallExpr 0x2701610 <col:15, col:24> '<dependent type>'
| | | | | |-UnresolvedLookupExpr 0x27015b0 <col:22> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8 0x26b8208
| | | | | |-DeclRefExpr 0x2701560 <col:15> '_BI1' lvalue ParmVar 0x27010b8 '__last' '_BI1'
| | | | | `-DeclRefExpr 0x2701588 <col:24> '_BI1' lvalue ParmVar 0x2701048 '__first' '_BI1'
| | | | |-<<<NULL>>>
| | | | |-CXXOperatorCallExpr 0x2701730 <col:33, col:39> '<dependent type>'
| | | | | |-UnresolvedLookupExpr 0x27016c8 <col:37> '<overloaded function type>' lvalue (ADL) = 'operator>' 0x268ea08 0x26b2af8 0x26b6af8
| | | | | |-DeclRefExpr 0x2701680 <col:33> 'typename iterator_traits<_BI1>::difference_type' lvalue Var 0x27014c0 '__n' 'typename iterator_traits<_BI1>::difference_type'
| | | | | `-IntegerLiteral 0x27016a8 <col:39> 'int' 0
| | | | |-UnaryOperator 0x27017a0 <col:42, col:44> '<dependent type>' prefix '--'
| | | | | `-DeclRefExpr 0x2701778 <col:44> 'typename iterator_traits<_BI1>::difference_type' lvalue Var 0x27014c0 '__n' 'typename iterator_traits<_BI1>::difference_type'
| | | | `-BinaryOperator 0x2701ce8 <line:533:6, col:23> '<dependent type>' '='
| | | | |-UnaryOperator 0x2701c60 <col:6, col:9> '<dependent type>' prefix '*'
| | | | | `-UnaryOperator 0x2701c40 <col:7, col:9> '<dependent type>' prefix '--'
| | | | | `-DeclRefExpr 0x27017c0 <col:9> '_BI2' lvalue ParmVar 0x2701128 '__result' '_BI2'
| | | | `-UnaryOperator 0x2701cc8 <col:20, col:23> '<dependent type>' prefix '*'
| | | | `-UnaryOperator 0x2701ca8 <col:21, col:23> '<dependent type>' prefix '--'
| | | | `-DeclRefExpr 0x2701c80 <col:23> '_BI1' lvalue ParmVar 0x27010b8 '__last' '_BI1'
| | | `-ReturnStmt 0x2701d70 <line:534:4, col:11>
| | | `-DeclRefExpr 0x2701d48 <col:11> '_BI2' lvalue ParmVar 0x2701128 '__result' '_BI2'
| | `-CXXMethodDecl 0x283a930 <line:528:9, line:535:2> line:529:9 used __copy_move_b 'struct A *(struct A *, struct A *, struct A *)' static
| | |-TemplateArgument type 'struct A *'
| | |-TemplateArgument type 'struct A *'
| | |-ParmVarDecl 0x283a768 <col:23, col:28> col:28 used __first 'struct A *':'struct A *'
| | |-ParmVarDecl 0x283a7d8 <col:37, col:42> col:42 used __last 'struct A *':'struct A *'
| | |-ParmVarDecl 0x283a848 <col:50, col:55> col:55 used __result 'struct A *':'struct A *'
| | `-CompoundStmt 0x283b218 <line:530:9, line:535:2>
| | |-DeclStmt 0x283ad20 <line:531:4, col:55>
| | | `-VarDecl 0x283acc0 <col:4, col:52> col:52 used __n 'typename iterator_traits<struct A *>::difference_type':'long'
| | |-ForStmt 0x283b188 <line:532:4, line:533:23>
| | | |-BinaryOperator 0x283ae68 <line:532:9, col:24> 'typename iterator_traits<struct A *>::difference_type':'long' lvalue '='
| | | | |-DeclRefExpr 0x283ad38 <col:9> 'typename iterator_traits<struct A *>::difference_type':'long' lvalue Var 0x283acc0 '__n' 'typename iterator_traits<struct A *>::difference_type':'long'
| | | | `-BinaryOperator 0x283ae40 <col:15, col:24> 'long' '-'
| | | | |-ImplicitCastExpr 0x283ae10 <col:15> 'struct A *':'struct A *' <LValueToRValue>
| | | | | `-DeclRefExpr 0x283adc0 <col:15> 'struct A *':'struct A *' lvalue ParmVar 0x283a7d8 '__last' 'struct A *':'struct A *'
| | | | `-ImplicitCastExpr 0x283ae28 <col:24> 'struct A *':'struct A *' <LValueToRValue>
| | | | `-DeclRefExpr 0x283ade8 <col:24> 'struct A *':'struct A *' lvalue ParmVar 0x283a768 '__first' 'struct A *':'struct A *'
| | | |-<<<NULL>>>
| | | |-BinaryOperator 0x283af50 <col:33, col:39> '_Bool' '>'
| | | | |-ImplicitCastExpr 0x283af20 <col:33> 'typename iterator_traits<struct A *>::difference_type':'long' <LValueToRValue>
| | | | | `-DeclRefExpr 0x283aef8 <col:33> 'typename iterator_traits<struct A *>::difference_type':'long' lvalue Var 0x283acc0 '__n' 'typename iterator_traits<struct A *>::difference_type':'long'
| | | | `-ImplicitCastExpr 0x283af38 <col:39> 'long' <IntegralCast>
| | | | `-IntegerLiteral 0x27016a8 <col:39> 'int' 0
| | | |-UnaryOperator 0x283afa0 <col:42, col:44> 'typename iterator_traits<struct A *>::difference_type':'long' lvalue prefix '--'
| | | | `-DeclRefExpr 0x283af78 <col:44> 'typename iterator_traits<struct A *>::difference_type':'long' lvalue Var 0x283acc0 '__n' 'typename iterator_traits<struct A *>::difference_type':'long'
| | | `-CXXOperatorCallExpr 0x283b140 <line:533:6, col:23> 'struct A' lvalue
| | | |-ImplicitCastExpr 0x283b128 <col:18> 'struct A &(*)(const struct A &) throw()' <FunctionToPointerDecay>
| | | | `-DeclRefExpr 0x283b0d8 <col:18> 'struct A &(const struct A &) throw()' lvalue CXXMethod 0x2832808 'operator=' 'struct A &(const struct A &) throw()'
| | | |-UnaryOperator 0x283b020 <col:6, col:9> 'struct A' lvalue prefix '*'
| | | | `-ImplicitCastExpr 0x283b008 <col:7, col:9> 'struct A *':'struct A *' <LValueToRValue>
| | | | `-UnaryOperator 0x283afe8 <col:7, col:9> 'struct A *':'struct A *' lvalue prefix '--'
| | | | `-DeclRefExpr 0x283afc0 <col:9> 'struct A *':'struct A *' lvalue ParmVar 0x283a848 '__result' 'struct A *':'struct A *'
| | | `-ImplicitCastExpr 0x283b0c0 <col:20, col:23> 'const struct A' lvalue <NoOp>
| | | `-UnaryOperator 0x283b0a0 <col:20, col:23> 'struct A' lvalue prefix '*'
| | | `-ImplicitCastExpr 0x283b088 <col:21, col:23> 'struct A *':'struct A *' <LValueToRValue>
| | | `-UnaryOperator 0x283b068 <col:21, col:23> 'struct A *':'struct A *' lvalue prefix '--'
| | | `-DeclRefExpr 0x283b040 <col:23> 'struct A *':'struct A *' lvalue ParmVar 0x283a7d8 '__last' 'struct A *':'struct A *'
| | `-ReturnStmt 0x283b200 <line:534:4, col:11>
| | `-ImplicitCastExpr 0x283b1e8 <col:11> 'struct A *':'struct A *' <LValueToRValue>
| | `-DeclRefExpr 0x283b1c0 <col:11> 'struct A *':'struct A *' lvalue ParmVar 0x283a848 '__result' 'struct A *':'struct A *'
| |-ClassTemplatePartialSpecializationDecl 0x2702028 <line:554:3, line:573:5> line:555:12 struct __copy_move_backward definition
| | |-TemplateArgument expr
| | | `-DeclRefExpr 0x2701e38 <col:33> '_Bool' NonTypeTemplateParm 0x2701dc8 '_IsMove' '_Bool'
| | |-TemplateArgument integral 1
| | |-TemplateArgument type 'struct std::random_access_iterator_tag'
| | |-NonTypeTemplateParmDecl 0x2701dc8 <line:554:12, col:17> col:17 referenced '_Bool' _IsMove
| | |-CXXRecordDecl 0x27022d8 <line:555:5, col:12> col:12 implicit struct __copy_move_backward
| | `-FunctionTemplateDecl 0x27026c8 <line:557:7, line:572:2> line:559:9 __copy_move_b
| | |-TemplateTypeParmDecl 0x2702370 <line:557:16, col:25> col:25 referenced typename _Tp
| | `-CXXMethodDecl 0x2702620 <line:558:9, line:572:2> line:559:9 __copy_move_b '_Tp *(const _Tp *, const _Tp *, _Tp *)' static
| | |-ParmVarDecl 0x2702428 <col:23, col:34> col:34 referenced __first 'const _Tp *'
| | |-ParmVarDecl 0x2702498 <col:43, col:54> col:54 referenced __last 'const _Tp *'
| | |-ParmVarDecl 0x2702538 <col:62, col:67> col:67 referenced __result '_Tp *'
| | `-CompoundStmt 0x2702cc0 <line:560:9, line:572:2>
| | |-DeclStmt 0x27028c0 <line:568:4, col:43>
| | | `-VarDecl 0x2702768 <col:4, col:36> col:20 referenced _Num 'const ptrdiff_t':'const long' cinit
| | | `-CXXOperatorCallExpr 0x2702878 <col:27, col:36> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x2702818 <col:34> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8 0x26b8208
| | | |-DeclRefExpr 0x27027c8 <col:27> 'const _Tp *' lvalue ParmVar 0x2702498 '__last' 'const _Tp *'
| | | `-DeclRefExpr 0x27027f0 <col:36> 'const _Tp *' lvalue ParmVar 0x2702428 '__first' 'const _Tp *'
| | |-IfStmt 0x2702b68 <line:569:4, line:570:68>
| | | |-<<<NULL>>>
| | | |-<<<NULL>>>
| | | |-ImplicitCastExpr 0x2702918 <line:569:8> '_Bool' <IntegralToBoolean>
| | | | `-ImplicitCastExpr 0x2702900 <col:8> 'ptrdiff_t':'long' <LValueToRValue>
| | | | `-DeclRefExpr 0x27028d8 <col:8> 'const ptrdiff_t':'const long' lvalue Var 0x2702768 '_Num' 'const ptrdiff_t':'const long'
| | | |-CallExpr 0x2702b28 <line:570:6, col:68> '<dependent type>'
| | | | |-DeclRefExpr 0x2702930 <col:6> '<builtin fn type>' Function 0x26f7638 '__builtin_memmove' 'void *(void *, const void *, unsigned long)'
| | | | |-CXXOperatorCallExpr 0x2702a08 <col:24, col:35> '<dependent type>'
| | | | | |-UnresolvedLookupExpr 0x27029a8 <col:33> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8 0x26b8208
| | | | | |-DeclRefExpr 0x2702958 <col:24> '_Tp *' lvalue ParmVar 0x2702538 '__result' '_Tp *'
| | | | | `-DeclRefExpr 0x2702980 <col:35> 'const ptrdiff_t':'const long' lvalue Var 0x2702768 '_Num' 'const ptrdiff_t':'const long'
| | | | |-DeclRefExpr 0x2702a50 <col:41> 'const _Tp *' lvalue ParmVar 0x2702428 '__first' 'const _Tp *'
| | | | `-BinaryOperator 0x2702b00 <col:50, col:64> 'unsigned long' '*'
| | | | |-UnaryExprOrTypeTraitExpr 0x2702a88 <col:50, col:60> 'unsigned long' sizeof '_Tp'
| | | | `-ImplicitCastExpr 0x2702ae8 <col:64> 'unsigned long' <IntegralCast>
| | | | `-ImplicitCastExpr 0x2702ad0 <col:64> 'ptrdiff_t':'long' <LValueToRValue>
| | | | `-DeclRefExpr 0x2702aa8 <col:64> 'const ptrdiff_t':'const long' lvalue Var 0x2702768 '_Num' 'const ptrdiff_t':'const long'
| | | `-<<<NULL>>>
| | `-ReturnStmt 0x2702ca8 <line:571:4, col:22>
| | `-CXXOperatorCallExpr 0x2702c60 <col:11, col:22> '<dependent type>'
| | |-UnresolvedLookupExpr 0x2702bf0 <col:20> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8 0x26b8208
| | |-DeclRefExpr 0x2702ba0 <col:11> '_Tp *' lvalue ParmVar 0x2702538 '__result' '_Tp *'
| | `-DeclRefExpr 0x2702bc8 <col:22> 'const ptrdiff_t':'const long' lvalue Var 0x2702768 '_Num' 'const ptrdiff_t':'const long'
| |-FunctionTemplateDecl 0x27030d8 <line:575:3, line:591:5> line:577:5 __copy_move_backward_a
| | |-NonTypeTemplateParmDecl 0x2702d00 <line:575:12, col:17> col:17 referenced '_Bool' _IsMove
| | |-TemplateTypeParmDecl 0x2702d58 <col:26, col:35> col:35 referenced typename _BI1
| | |-TemplateTypeParmDecl 0x2702dc8 <col:41, col:50> col:50 referenced typename _BI2
| | |-FunctionDecl 0x2703030 <line:576:5, line:591:5> line:577:5 __copy_move_backward_a '_BI2 (_BI1, _BI1, _BI2)' inline
| | | |-ParmVarDecl 0x2702e70 <col:28, col:33> col:33 referenced __first '_BI1'
| | | |-ParmVarDecl 0x2702ee0 <col:42, col:47> col:47 referenced __last '_BI1'
| | | |-ParmVarDecl 0x2702f50 <col:55, col:60> col:60 referenced __result '_BI2'
| | | `-CompoundStmt 0x27040f8 <line:578:5, line:591:5>
| | | |-DeclStmt 0x2703300 <line:579:7, col:69>
| | | | `-TypedefDecl 0x27032b0 <col:7, col:58> col:58 referenced _ValueType1 'typename iterator_traits<_BI1>::value_type'
| | | | `-DependentNameType 0x2703240 'typename iterator_traits<_BI1>::value_type' dependent
| | | |-DeclStmt 0x27034e0 <line:580:7, col:69>
| | | | `-TypedefDecl 0x2703490 <col:7, col:58> col:58 referenced _ValueType2 'typename iterator_traits<_BI2>::value_type'
| | | | `-DependentNameType 0x2703420 'typename iterator_traits<_BI2>::value_type' dependent
| | | |-DeclStmt 0x27036c0 <line:581:7, col:74>
| | | | `-TypedefDecl 0x2703670 <col:7, col:65> col:65 referenced _Category 'typename iterator_traits<_BI1>::iterator_category'
| | | | `-DependentNameType 0x2703600 'typename iterator_traits<_BI1>::iterator_category' dependent
| | | |-DeclStmt 0x2703ce8 <line:582:7, line:585:58>
| | | | `-VarDecl 0x27036e8 <line:582:7, line:585:57> line:582:18 referenced __simple 'const _Bool' cinit
| | | | `-ParenExpr 0x2703cc8 <col:29, line:585:57> '<dependent type>'
| | | | `-BinaryOperator 0x2703ca0 <line:582:30, line:585:50> '<dependent type>' '&&'
| | | | |-BinaryOperator 0x2703a78 <line:582:30, line:584:46> '<dependent type>' '&&'
| | | | | |-BinaryOperator 0x27038f8 <line:582:30, line:583:46> '<dependent type>' '&&'
| | | | | | |-TypeTraitExpr 0x2703780 <line:582:30, col:54> '_Bool'
| | | | | | `-DependentScopeDeclRefExpr 0x27038b8 <line:583:26, col:46> '<dependent type>' lvalue
| | | | | `-DependentScopeDeclRefExpr 0x2703a38 <line:584:26, col:46> '<dependent type>' lvalue
| | | | `-DependentScopeDeclRefExpr 0x2703c60 <line:585:12, col:50> '<dependent type>' lvalue
| | | `-ReturnStmt 0x27040e0 <line:587:7, line:590:18>
| | | `-CallExpr 0x27040a0 <line:587:14, line:590:18> '<dependent type>'
| | | |-DependentScopeDeclRefExpr 0x2703fe8 <line:587:14, line:588:45> '<dependent type>' lvalue
| | | |-DeclRefExpr 0x2704028 <col:59> '_BI1' lvalue ParmVar 0x2702e70 '__first' '_BI1'
| | | |-DeclRefExpr 0x2704050 <line:589:10> '_BI1' lvalue ParmVar 0x2702ee0 '__last' '_BI1'
| | | `-DeclRefExpr 0x2704078 <line:590:10> '_BI2' lvalue ParmVar 0x2702f50 '__result' '_BI2'
| | `-FunctionDecl 0x2838e20 <line:576:5, line:591:5> line:577:5 used __copy_move_backward_a 'struct A *(struct A *, struct A *, struct A *)' inline
| | |-TemplateArgument integral 0
| | |-TemplateArgument type 'struct A *'
| | |-TemplateArgument type 'struct A *'
| | |-ParmVarDecl 0x2838c58 <col:28, col:33> col:33 used __first 'struct A *':'struct A *'
| | |-ParmVarDecl 0x2838cc8 <col:42, col:47> col:47 used __last 'struct A *':'struct A *'
| | |-ParmVarDecl 0x2838d38 <col:55, col:60> col:60 used __result 'struct A *':'struct A *'
| | `-CompoundStmt 0x283ab80 <line:578:5, line:591:5>
| | |-DeclStmt 0x28392a0 <line:579:7, col:69>
| | | `-TypedefDecl 0x2839250 <col:7, col:58> col:58 _ValueType1 'typename iterator_traits<struct A *>::value_type':'struct A'
| | | `-ElaboratedType 0x2839200 'typename iterator_traits<struct A *>::value_type' sugar
| | | `-TypedefType 0x271e090 'value_type' sugar
| | | |-Typedef 0x271def8 'value_type'
| | | `-SubstTemplateTypeParmType 0x271dcf0 'struct A' sugar
| | | |-TemplateTypeParmType 0x2695b90 '_Tp' dependent depth 0 index 0
| | | | `-TemplateTypeParm 0x2695b50 '_Tp'
| | | `-RecordType 0x280a9d0 'struct A'
| | | `-CXXRecord 0x280a930 'A'
| | |-DeclStmt 0x2839410 <line:580:7, col:69>
| | | `-TypedefDecl 0x28393c0 <col:7, col:58> col:58 _ValueType2 'typename iterator_traits<struct A *>::value_type':'struct A'
| | | `-ElaboratedType 0x2839370 'typename iterator_traits<struct A *>::value_type' sugar
| | | `-TypedefType 0x271e090 'value_type' sugar
| | | |-Typedef 0x271def8 'value_type'
| | | `-SubstTemplateTypeParmType 0x271dcf0 'struct A' sugar
| | | |-TemplateTypeParmType 0x2695b90 '_Tp' dependent depth 0 index 0
| | | | `-TemplateTypeParm 0x2695b50 '_Tp'
| | | `-RecordType 0x280a9d0 'struct A'
| | | `-CXXRecord 0x280a930 'A'
| | |-DeclStmt 0x28395d0 <line:581:7, col:74>
| | | `-TypedefDecl 0x2839580 <col:7, col:65> col:65 _Category 'typename iterator_traits<struct A *>::iterator_category':'struct std::random_access_iterator_tag'
| | | `-ElaboratedType 0x28394e0 'typename iterator_traits<struct A *>::iterator_category' sugar
| | | `-TypedefType 0x282d6d0 'iterator_category' sugar
| | | |-Typedef 0x271de98 'iterator_category'
| | | `-RecordType 0x2690bd0 'struct std::random_access_iterator_tag'
| | | `-CXXRecord 0x2690b38 'random_access_iterator_tag'
| | |-DeclStmt 0x283a368 <line:582:7, line:585:58>
| | | `-VarDecl 0x28395e8 <line:582:7, line:585:57> line:582:18 referenced __simple 'const _Bool' cinit
| | | `-ParenExpr 0x283a300 <col:29, line:585:57> '_Bool'
| | | `-BinaryOperator 0x283a2d8 <line:582:30, line:585:50> '_Bool' '&&'
| | | |-BinaryOperator 0x2839d10 <line:582:30, line:584:46> '_Bool' '&&'
| | | | |-BinaryOperator 0x2839be8 <line:582:30, line:583:46> '_Bool' '&&'
| | | | | |-TypeTraitExpr 0x2839680 <line:582:30, col:54> '_Bool'
| | | | | `-ImplicitCastExpr 0x2839bd0 <line:583:26, col:46> '_Bool' <IntegralToBoolean>
| | | | | `-DeclRefExpr 0x2839b98 <col:26, col:46> 'enum std::__is_pointer<struct A *>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:320:7)' EnumConstant 0x2839ae0 '__value' 'enum std::__is_pointer<struct A *>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:320:7)'
| | | | `-ImplicitCastExpr 0x2839cf8 <line:584:26, col:46> '_Bool' <IntegralToBoolean>
| | | | `-DeclRefExpr 0x2839cc0 <col:26, col:46> 'enum std::__is_pointer<struct A *>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:320:7)' EnumConstant 0x2839ae0 '__value' 'enum std::__is_pointer<struct A *>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:320:7)'
| | | `-ImplicitCastExpr 0x283a2c0 <line:585:12, col:50> '_Bool' <IntegralToBoolean>
| | | `-DeclRefExpr 0x283a288 <col:12, col:50> 'enum std::__are_same<struct A, struct A>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:104:7)' EnumConstant 0x283a1d0 '__value' 'enum std::__are_same<struct A, struct A>::(anonymous at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/cpp_type_traits.h:104:7)'
| | `-ReturnStmt 0x283ab68 <line:587:7, line:590:18>
| | `-CallExpr 0x283aae0 <line:587:14, line:590:18> 'struct A *':'struct A *'
| | |-ImplicitCastExpr 0x283aac8 <line:587:14, line:588:45> 'struct A *(*)(struct A *, struct A *, struct A *)' <FunctionToPointerDecay>
| | | `-DeclRefExpr 0x283aa60 <line:587:14, line:588:45> 'struct A *(struct A *, struct A *, struct A *)' lvalue CXXMethod 0x283a930 '__copy_move_b' 'struct A *(struct A *, struct A *, struct A *)' (FunctionTemplate 0x27012b8 '__copy_move_b')
| | |-ImplicitCastExpr 0x283ab20 <col:59> 'struct A *':'struct A *' <LValueToRValue>
| | | `-DeclRefExpr 0x283a5a0 <col:59> 'struct A *':'struct A *' lvalue ParmVar 0x2838c58 '__first' 'struct A *':'struct A *'
| | |-ImplicitCastExpr 0x283ab38 <line:589:10> 'struct A *':'struct A *' <LValueToRValue>
| | | `-DeclRefExpr 0x283a5c8 <col:10> 'struct A *':'struct A *' lvalue ParmVar 0x2838cc8 '__last' 'struct A *':'struct A *'
| | `-ImplicitCastExpr 0x283ab50 <line:590:10> 'struct A *':'struct A *' <LValueToRValue>
| | `-DeclRefExpr 0x283a5f0 <col:10> 'struct A *':'struct A *' lvalue ParmVar 0x2838d38 '__result' 'struct A *':'struct A *'
| |-FunctionTemplateDecl 0x2704518 <line:593:3, line:600:5> line:595:5 __copy_move_backward_a2
| | |-NonTypeTemplateParmDecl 0x2704148 <line:593:12, col:17> col:17 referenced '_Bool' _IsMove
| | |-TemplateTypeParmDecl 0x27041a0 <col:26, col:35> col:35 referenced typename _BI1
| | |-TemplateTypeParmDecl 0x2704208 <col:41, col:50> col:50 referenced typename _BI2
| | |-FunctionDecl 0x2704470 <line:594:5, line:600:5> line:595:5 __copy_move_backward_a2 '_BI2 (_BI1, _BI1, _BI2)' inline
| | | |-ParmVarDecl 0x27042b0 <col:29, col:34> col:34 referenced __first '_BI1'
| | | |-ParmVarDecl 0x2704320 <col:43, col:48> col:48 referenced __last '_BI1'
| | | |-ParmVarDecl 0x2704390 <col:56, col:61> col:61 referenced __result '_BI2'
| | | `-CompoundStmt 0x2704998 <line:596:5, line:600:5>
| | | `-ReturnStmt 0x2704980 <line:597:7, line:599:34>
| | | `-CXXUnresolvedConstructExpr 0x2704950 <line:597:14, line:599:34> '_BI2'
| | | `-CallExpr 0x2704910 <line:597:19, line:599:33> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x27045f0 <line:597:19, col:54> '<dependent type>' lvalue (no ADL) = '__copy_move_backward_a' 0x27030d8
| | | |-CallExpr 0x2704730 <line:598:6, col:31> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x27046a8 <col:6, col:11> '<overloaded function type>' lvalue (no ADL) = '__niter_base' 0x26d0f80 0x26f4198
| | | | `-DeclRefExpr 0x2704708 <col:24> '_BI1' lvalue ParmVar 0x27042b0 '__first' '_BI1'
| | | |-CallExpr 0x2704808 <col:34, col:58> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x2704780 <col:34, col:39> '<overloaded function type>' lvalue (no ADL) = '__niter_base' 0x26d0f80 0x26f4198
| | | | `-DeclRefExpr 0x27047e0 <col:52> '_BI1' lvalue ParmVar 0x2704320 '__last' '_BI1'
| | | `-CallExpr 0x27048e0 <line:599:6, col:32> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x2704858 <col:6, col:11> '<overloaded function type>' lvalue (no ADL) = '__niter_base' 0x26d0f80 0x26f4198
| | | `-DeclRefExpr 0x27048b8 <col:24> '_BI2' lvalue ParmVar 0x2704390 '__result' '_BI2'
| | `-FunctionDecl 0x2837e40 <line:594:5, line:600:5> line:595:5 used __copy_move_backward_a2 'struct A *(struct A *, struct A *, struct A *)' inline
| | |-TemplateArgument integral 0
| | |-TemplateArgument type 'struct A *'
| | |-TemplateArgument type 'struct A *'
| | |-ParmVarDecl 0x2837c78 <col:29, col:34> col:34 used __first 'struct A *':'struct A *'
| | |-ParmVarDecl 0x2837ce8 <col:43, col:48> col:48 used __last 'struct A *':'struct A *'
| | |-ParmVarDecl 0x2837d58 <col:56, col:61> col:61 used __result 'struct A *':'struct A *'
| | `-CompoundStmt 0x28390b0 <line:596:5, line:600:5>
| | `-ReturnStmt 0x2839098 <line:597:7, line:599:34>
| | `-CXXFunctionalCastExpr 0x2839070 <line:597:14, line:599:34> 'struct A *':'struct A *' functional cast to struct A * <NoOp>
| | `-CallExpr 0x2839030 <line:597:19, line:599:33> 'struct A *':'struct A *'
| | |-ImplicitCastExpr 0x2839018 <line:597:19, col:54> 'struct A *(*)(struct A *, struct A *, struct A *)' <FunctionToPointerDecay>
| | | `-DeclRefExpr 0x2838f68 <col:19, col:54> 'struct A *(struct A *, struct A *, struct A *)' lvalue Function 0x2838e20 '__copy_move_backward_a' 'struct A *(struct A *, struct A *, struct A *)' (FunctionTemplate 0x27030d8 '__copy_move_backward_a')
| | |-CallExpr 0x28385f0 <line:598:6, col:31> 'struct A *':'struct A *'
| | | |-ImplicitCastExpr 0x28385d8 <col:6, col:11> 'struct A *(*)(struct A *)' <FunctionToPointerDecay>
| | | | `-DeclRefExpr 0x2838568 <col:6, col:11> 'struct A *(struct A *)' lvalue Function 0x2838460 '__niter_base' 'struct A *(struct A *)' (FunctionTemplate 0x26f4198 '__niter_base')
| | | `-ImplicitCastExpr 0x2838620 <col:24> 'struct A *':'struct A *' <LValueToRValue>
| | | `-DeclRefExpr 0x28382c8 <col:24> 'struct A *':'struct A *' lvalue ParmVar 0x2837c78 '__first' 'struct A *':'struct A *'
| | |-CallExpr 0x2838780 <col:34, col:58> 'struct A *':'struct A *'
| | | |-ImplicitCastExpr 0x2838768 <col:34, col:39> 'struct A *(*)(struct A *)' <FunctionToPointerDecay>
| | | | `-DeclRefExpr 0x2838728 <col:34, col:39> 'struct A *(struct A *)' lvalue Function 0x2838460 '__niter_base' 'struct A *(struct A *)' (FunctionTemplate 0x26f4198 '__niter_base')
| | | `-ImplicitCastExpr 0x28387b0 <col:52> 'struct A *':'struct A *' <LValueToRValue>
| | | `-DeclRefExpr 0x2838698 <col:52> 'struct A *':'struct A *' lvalue ParmVar 0x2837ce8 '__last' 'struct A *':'struct A *'
| | `-CallExpr 0x2838910 <line:599:6, col:32> 'struct A *':'struct A *'
| | |-ImplicitCastExpr 0x28388f8 <col:6, col:11> 'struct A *(*)(struct A *)' <FunctionToPointerDecay>
| | | `-DeclRefExpr 0x28388b8 <col:6, col:11> 'struct A *(struct A *)' lvalue Function 0x2838460 '__niter_base' 'struct A *(struct A *)' (FunctionTemplate 0x26f4198 '__niter_base')
| | `-ImplicitCastExpr 0x2838940 <col:24> 'struct A *':'struct A *' <LValueToRValue>
| | `-DeclRefExpr 0x2838828 <col:24> 'struct A *':'struct A *' lvalue ParmVar 0x2837d58 '__result' 'struct A *':'struct A *'
| |-FunctionTemplateDecl 0x2704d50 <line:620:3, line:635:5> line:622:5 copy_backward
| | |-TemplateTypeParmDecl 0x27049b8 <line:620:12, col:21> col:21 referenced typename _BI1
| | |-TemplateTypeParmDecl 0x2704a28 <col:27, col:36> col:36 referenced typename _BI2
| | |-FunctionDecl 0x2704ca8 <line:621:5, line:635:5> line:622:5 copy_backward '_BI2 (_BI1, _BI1, _BI2)' inline
| | | |-ParmVarDecl 0x2704ac8 <col:19, col:24> col:24 referenced __first '_BI1'
| | | |-ParmVarDecl 0x2704b38 <col:33, col:38> col:38 referenced __last '_BI1'
| | | |-ParmVarDecl 0x2704ba8 <col:46, col:51> col:51 referenced __result '_BI2'
| | | `-CompoundStmt 0x2705258 <line:623:5, line:635:5>
| | | |-NullStmt 0x2704db8 <line:630:54>
| | | `-ReturnStmt 0x2705240 <line:632:7, line:634:18>
| | | `-ParenExpr 0x2705220 <line:632:14, line:634:18> '<dependent type>'
| | | `-CallExpr 0x27051e0 <line:632:15, line:634:17> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x2704f80 <line:632:15, col:77> '<dependent type>' lvalue (no ADL) = '__copy_move_backward_a2' 0x2704518
| | | |-CallExpr 0x27050b8 <line:633:9, col:34> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x2705038 <col:9, col:14> '<overloaded function type>' lvalue (no ADL) = '__miter_base' 0x26606b8
| | | | `-DeclRefExpr 0x2705090 <col:27> '_BI1' lvalue ParmVar 0x2704ac8 '__first' '_BI1'
| | | |-CallExpr 0x2705188 <col:37, col:61> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x2705108 <col:37, col:42> '<overloaded function type>' lvalue (no ADL) = '__miter_base' 0x26606b8
| | | | `-DeclRefExpr 0x2705160 <col:55> '_BI1' lvalue ParmVar 0x2704b38 '__last' '_BI1'
| | | `-DeclRefExpr 0x27051b8 <line:634:9> '_BI2' lvalue ParmVar 0x2704ba8 '__result' '_BI2'
| | `-FunctionDecl 0x2832490 <line:621:5, line:635:5> line:622:5 used copy_backward 'struct A *(struct A *, struct A *, struct A *)' inline
| | |-TemplateArgument type 'struct A *'
| | |-TemplateArgument type 'struct A *'
| | |-ParmVarDecl 0x2832278 <col:19, col:24> col:24 used __first 'struct A *':'struct A *'
| | |-ParmVarDecl 0x28322e8 <col:33, col:38> col:38 used __last 'struct A *':'struct A *'
| | |-ParmVarDecl 0x2832358 <col:46, col:51> col:51 used __result 'struct A *':'struct A *'
| | `-CompoundStmt 0x28380e0 <line:623:5, line:635:5>
| | |-NullStmt 0x2704db8 <line:630:54>
| | `-ReturnStmt 0x28380c8 <line:632:7, line:634:18>
| | `-ParenExpr 0x28380a8 <line:632:14, line:634:18> 'struct A *':'struct A *'
| | `-CallExpr 0x2838050 <line:632:15, line:634:17> 'struct A *':'struct A *'
| | |-ImplicitCastExpr 0x2838038 <line:632:15, col:77> 'struct A *(*)(struct A *, struct A *, struct A *)' <FunctionToPointerDecay>
| | | `-DeclRefExpr 0x2837f88 <col:15, col:77> 'struct A *(struct A *, struct A *, struct A *)' lvalue Function 0x2837e40 '__copy_move_backward_a2' 'struct A *(struct A *, struct A *, struct A *)' (FunctionTemplate 0x2704518 '__copy_move_backward_a2')
| | |-CallExpr 0x2837790 <line:633:9, col:34> 'struct A *':'struct A *'
| | | |-ImplicitCastExpr 0x2837778 <col:9, col:14> 'struct A *(*)(struct A *)' <FunctionToPointerDecay>
| | | | `-DeclRefExpr 0x28376d8 <col:9, col:14> 'struct A *(struct A *)' lvalue Function 0x28375d0 '__miter_base' 'struct A *(struct A *)' (FunctionTemplate 0x26606b8 '__miter_base')
| | | `-ImplicitCastExpr 0x28377c0 <col:27> 'struct A *':'struct A *' <LValueToRValue>
| | | `-DeclRefExpr 0x2837370 <col:27> 'struct A *':'struct A *' lvalue ParmVar 0x2832278 '__first' 'struct A *':'struct A *'
| | |-CallExpr 0x28378e8 <col:37, col:61> 'struct A *':'struct A *'
| | | |-ImplicitCastExpr 0x28378d0 <col:37, col:42> 'struct A *(*)(struct A *)' <FunctionToPointerDecay>
| | | | `-DeclRefExpr 0x2837890 <col:37, col:42> 'struct A *(struct A *)' lvalue Function 0x28375d0 '__miter_base' 'struct A *(struct A *)' (FunctionTemplate 0x26606b8 '__miter_base')
| | | `-ImplicitCastExpr 0x2837918 <col:55> 'struct A *':'struct A *' <LValueToRValue>
| | | `-DeclRefExpr 0x2837830 <col:55> 'struct A *':'struct A *' lvalue ParmVar 0x28322e8 '__last' 'struct A *':'struct A *'
| | `-ImplicitCastExpr 0x2838090 <line:634:9> 'struct A *':'struct A *' <LValueToRValue>
| | `-DeclRefExpr 0x2837930 <col:9> 'struct A *':'struct A *' lvalue ParmVar 0x2832358 '__result' 'struct A *':'struct A *'
| |-FunctionTemplateDecl 0x2705aa8 <line:678:3, line:686:5> line:681:5 __fill_a
| | |-TemplateTypeParmDecl 0x2705280 <line:678:12, col:21> col:21 referenced typename _ForwardIterator
| | |-TemplateTypeParmDecl 0x27052e8 <col:39, col:48> col:48 referenced typename _Tp
| | `-FunctionDecl 0x2705a00 <line:679:5, line:686:5> line:681:5 __fill_a 'typename __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value, void>::__type (_ForwardIterator, _ForwardIterator, const _Tp &)' inline
| | |-ParmVarDecl 0x27057b0 <col:14, col:31> col:31 referenced __first '_ForwardIterator'
| | |-ParmVarDecl 0x2705820 <col:40, col:57> col:57 referenced __last '_ForwardIterator'
| | |-ParmVarDecl 0x27058b8 <line:682:8, col:19> col:19 referenced __value 'const _Tp &'
| | `-CompoundStmt 0x2705ef0 <line:683:5, line:686:5>
| | `-ForStmt 0x2705eb8 <line:684:7, line:685:13>
| | |-<<<NULL>>>
| | |-<<<NULL>>>
| | |-CXXOperatorCallExpr 0x2705bc8 <line:684:14, col:25> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x2705b60 <col:22> '<overloaded function type>' lvalue (ADL) = 'operator!=' 0x268e1f8 0x26b2418 0x26b6368
| | | |-DeclRefExpr 0x2705b10 <col:14> '_ForwardIterator' lvalue ParmVar 0x27057b0 '__first' '_ForwardIterator'
| | | `-DeclRefExpr 0x2705b38 <col:25> '_ForwardIterator' lvalue ParmVar 0x2705820 '__last' '_ForwardIterator'
| | |-UnaryOperator 0x2705c38 <col:33, col:35> '<dependent type>' prefix '++'
| | | `-DeclRefExpr 0x2705c10 <col:35> '_ForwardIterator' lvalue ParmVar 0x27057b0 '__first' '_ForwardIterator'
| | `-BinaryOperator 0x2705e90 <line:685:2, col:13> '<dependent type>' '='
| | |-UnaryOperator 0x2705e48 <col:2, col:3> '<dependent type>' prefix '*'
| | | `-DeclRefExpr 0x2705e20 <col:3> '_ForwardIterator' lvalue ParmVar 0x27057b0 '__first' '_ForwardIterator'
| | `-DeclRefExpr 0x2705e68 <col:13> 'const _Tp' lvalue ParmVar 0x27058b8 '__value' 'const _Tp &'
| |-FunctionTemplateDecl 0x27066c8 <line:688:3, line:697:5> line:691:5 __fill_a
| | |-TemplateTypeParmDecl 0x2705f10 <line:688:12, col:21> col:21 referenced typename _ForwardIterator
| | |-TemplateTypeParmDecl 0x2705f78 <col:39, col:48> col:48 referenced typename _Tp
| | |-FunctionDecl 0x2706620 <line:689:5, line:697:5> line:691:5 __fill_a 'typename __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type (_ForwardIterator, _ForwardIterator, const _Tp &)' inline
| | | |-ParmVarDecl 0x27063d0 <col:14, col:31> col:31 referenced __first '_ForwardIterator'
| | | |-ParmVarDecl 0x2706440 <col:40, col:57> col:57 referenced __last '_ForwardIterator'
| | | |-ParmVarDecl 0x27064d8 <line:692:7, col:18> col:18 referenced __value 'const _Tp &'
| | | `-CompoundStmt 0x27069f8 <line:693:5, line:697:5>
| | | |-DeclStmt 0x27067c8 <line:694:7, col:32>
| | | | `-VarDecl 0x2706740 <col:7, col:25> col:17 referenced __tmp 'const _Tp' cinit
| | | | `-DeclRefExpr 0x27067a0 <col:25> 'const _Tp' lvalue ParmVar 0x27064d8 '__value' 'const _Tp &'
| | | `-ForStmt 0x27069c0 <line:695:7, line:696:13>
| | | |-<<<NULL>>>
| | | |-<<<NULL>>>
| | | |-CXXOperatorCallExpr 0x2706898 <line:695:14, col:25> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x2706830 <col:22> '<overloaded function type>' lvalue (ADL) = 'operator!=' 0x268e1f8 0x26b2418 0x26b6368
| | | | |-DeclRefExpr 0x27067e0 <col:14> '_ForwardIterator' lvalue ParmVar 0x27063d0 '__first' '_ForwardIterator'
| | | | `-DeclRefExpr 0x2706808 <col:25> '_ForwardIterator' lvalue ParmVar 0x2706440 '__last' '_ForwardIterator'
| | | |-UnaryOperator 0x2706908 <col:33, col:35> '<dependent type>' prefix '++'
| | | | `-DeclRefExpr 0x27068e0 <col:35> '_ForwardIterator' lvalue ParmVar 0x27063d0 '__first' '_ForwardIterator'
| | | `-BinaryOperator 0x2706998 <line:696:2, col:13> '<dependent type>' '='
| | | |-UnaryOperator 0x2706950 <col:2, col:3> '<dependent type>' prefix '*'
| | | | `-DeclRefExpr 0x2706928 <col:3> '_ForwardIterator' lvalue ParmVar 0x27063d0 '__first' '_ForwardIterator'
| | | `-DeclRefExpr 0x2706970 <col:13> 'const _Tp' lvalue Var 0x2706740 '__tmp' 'const _Tp'
| | `-FunctionDecl 0x271abf0 <line:689:5, line:697:5> line:691:5 used __fill_a 'typename __gnu_cxx::__enable_if<__is_scalar<int>::__value, void>::__type (unsigned long *, unsigned long *, const int &)' inline
| | |-TemplateArgument type 'unsigned long *'
| | |-TemplateArgument type 'int'
| | |-ParmVarDecl 0x271a9e8 <col:14, col:31> col:31 used __first 'unsigned long *':'unsigned long *'
| | |-ParmVarDecl 0x271aa58 <col:40, col:57> col:57 used __last 'unsigned long *':'unsigned long *'
| | |-ParmVarDecl 0x271aaf8 <line:692:7, col:18> col:18 used __value 'const int &'
| | `-CompoundStmt 0x271b240 <line:693:5, line:697:5>
| | |-DeclStmt 0x271afb8 <line:694:7, col:32>
| | | `-VarDecl 0x271aed0 <col:7, col:25> col:17 used __tmp 'const int':'const int' cinit
| | | `-ImplicitCastExpr 0x271af58 <col:25> 'int':'int' <LValueToRValue>
| | | `-DeclRefExpr 0x271af30 <col:25> 'const int':'const int' lvalue ParmVar 0x271aaf8 '__value' 'const int &'
| | `-ForStmt 0x271b208 <line:695:7, line:696:13>
| | |-<<<NULL>>>
| | |-<<<NULL>>>
| | |-BinaryOperator 0x271b0b8 <line:695:14, col:25> '_Bool' '!='
| | | |-ImplicitCastExpr 0x271b088 <col:14> 'unsigned long *':'unsigned long *' <LValueToRValue>
| | | | `-DeclRefExpr 0x271b038 <col:14> 'unsigned long *':'unsigned long *' lvalue ParmVar 0x271a9e8 '__first' 'unsigned long *':'unsigned long *'
| | | `-ImplicitCastExpr 0x271b0a0 <col:25> 'unsigned long *':'unsigned long *' <LValueToRValue>
| | | `-DeclRefExpr 0x271b060 <col:25> 'unsigned long *':'unsigned long *' lvalue ParmVar 0x271aa58 '__last' 'unsigned long *':'unsigned long *'
| | |-UnaryOperator 0x271b108 <col:33, col:35> 'unsigned long *':'unsigned long *' lvalue prefix '++'
| | | `-DeclRefExpr 0x271b0e0 <col:35> 'unsigned long *':'unsigned long *' lvalue ParmVar 0x271a9e8 '__first' 'unsigned long *':'unsigned long *'
| | `-BinaryOperator 0x271b1e0 <line:696:2, col:13> 'unsigned long' lvalue '='
| | |-UnaryOperator 0x271b168 <col:2, col:3> 'unsigned long' lvalue prefix '*'
| | | `-ImplicitCastExpr 0x271b150 <col:3> 'unsigned long *':'unsigned long *' <LValueToRValue>
| | | `-DeclRefExpr 0x271b128 <col:3> 'unsigned long *':'unsigned long *' lvalue ParmVar 0x271a9e8 '__first' 'unsigned long *':'unsigned long *'
| | `-ImplicitCastExpr 0x271b1c8 <col:13> 'unsigned long' <IntegralCast>
| | `-ImplicitCastExpr 0x271b1b0 <col:13> 'int':'int' <LValueToRValue>
| | `-DeclRefExpr 0x271b188 <col:13> 'const int':'const int' lvalue Var 0x271aed0 '__tmp' 'const int':'const int'
| |-FunctionTemplateDecl 0x27071b8 <line:700:3, line:708:5> line:703:5 __fill_a
| | |-TemplateTypeParmDecl 0x2706a20 <line:700:12, col:21> col:21 referenced typename _Tp
| | `-FunctionDecl 0x2707110 <line:701:5, line:708:5> line:703:5 __fill_a 'typename __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type (_Tp *, _Tp *, const _Tp &)' inline
| | |-ParmVarDecl 0x2706eb8 <col:14, col:19> col:19 referenced __first '_Tp *'
| | |-ParmVarDecl 0x2706f28 <col:28, col:33> col:33 referenced __last '_Tp *'
| | |-ParmVarDecl 0x2706fc8 <col:41, col:52> col:52 referenced __c 'const _Tp &'
| | `-CompoundStmt 0x27078b0 <line:704:5, line:708:5>
| | |-DeclStmt 0x27072b8 <line:705:7, col:28>
| | | `-VarDecl 0x2707230 <col:7, col:25> col:17 referenced __tmp 'const _Tp' cinit
| | | `-DeclRefExpr 0x2707290 <col:25> 'const _Tp' lvalue ParmVar 0x2706fc8 '__c' 'const _Tp &'
| | `-IfStmt 0x2707860 <line:706:7, line:707:68>
| | |-<<<NULL>>>
| | |-DeclStmt 0x2707898 <line:706:11, col:41>
| | | `-VarDecl 0x27072e0 <col:11, col:41> col:24 referenced __len 'const size_t':'const unsigned long' cinit
| | | `-CXXOperatorCallExpr 0x27073f0 <col:32, col:41> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x2707390 <col:39> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8 0x26b8208
| | | |-DeclRefExpr 0x2707340 <col:32> '_Tp *' lvalue ParmVar 0x2706f28 '__last' '_Tp *'
| | | `-DeclRefExpr 0x2707368 <col:41> '_Tp *' lvalue ParmVar 0x2706eb8 '__first' '_Tp *'
| | |-ImplicitCastExpr 0x2707478 <col:24> '_Bool' <IntegralToBoolean>
| | | `-ImplicitCastExpr 0x2707460 <col:24> 'size_t':'unsigned long' <LValueToRValue>
| | | `-DeclRefExpr 0x2707438 <col:24> 'const size_t':'const unsigned long' lvalue Var 0x27072e0 '__len' 'const size_t':'const unsigned long'
| | |-CallExpr 0x2707820 <line:707:2, col:68> '<dependent type>'
| | | |-DeclRefExpr 0x2707740 <col:2> '<builtin fn type>' Function 0x2707528 '__builtin_memset' 'void *(void *, int, unsigned long)'
| | | |-DeclRefExpr 0x2707768 <col:19> '_Tp *' lvalue ParmVar 0x2706eb8 '__first' '_Tp *'
| | | |-CXXStaticCastExpr 0x27077c8 <col:28, col:60> 'unsigned char' static_cast<unsigned char> <Dependent>
| | | | `-DeclRefExpr 0x2707790 <col:55> 'const _Tp' lvalue Var 0x2707230 '__tmp' 'const _Tp'
| | | `-DeclRefExpr 0x27077f8 <col:63> 'const size_t':'const unsigned long' lvalue Var 0x27072e0 '__len' 'const size_t':'const unsigned long'
| | `-<<<NULL>>>
| |-FunctionTemplateDecl 0x2707cd8 <line:722:3, line:733:5> line:724:5 fill
| | |-TemplateTypeParmDecl 0x27078d8 <line:722:12, col:21> col:21 referenced typename _ForwardIterator
| | |-TemplateTypeParmDecl 0x2707948 <col:39, col:48> col:48 referenced typename _Tp
| | |-FunctionDecl 0x2707c30 <line:723:5, line:733:5> line:724:5 fill 'void (_ForwardIterator, _ForwardIterator, const _Tp &)' inline
| | | |-ParmVarDecl 0x27079e8 <col:10, col:27> col:27 referenced __first '_ForwardIterator'
| | | |-ParmVarDecl 0x2707a58 <col:36, col:53> col:53 referenced __last '_ForwardIterator'
| | | |-ParmVarDecl 0x2707af8 <col:61, col:72> col:72 referenced __value 'const _Tp &'
| | | `-CompoundStmt 0x2708038 <line:725:5, line:733:5>
| | | |-NullStmt 0x2707d40 <line:729:54>
| | | `-CallExpr 0x2707ff8 <line:731:7, line:732:14> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x2707d70 <line:731:7, col:12> '<overloaded function type>' lvalue (no ADL) = '__fill_a' 0x2705aa8 0x27066c8 0x27071b8
| | | |-CallExpr 0x2707ec8 <col:21, col:46> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x2707e40 <col:21, col:26> '<overloaded function type>' lvalue (no ADL) = '__niter_base' 0x26d0f80 0x26f4198
| | | | `-DeclRefExpr 0x2707ea0 <col:39> '_ForwardIterator' lvalue ParmVar 0x27079e8 '__first' '_ForwardIterator'
| | | |-CallExpr 0x2707fa0 <col:49, col:73> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x2707f18 <col:49, col:54> '<overloaded function type>' lvalue (no ADL) = '__niter_base' 0x26d0f80 0x26f4198
| | | | `-DeclRefExpr 0x2707f78 <col:67> '_ForwardIterator' lvalue ParmVar 0x2707a58 '__last' '_ForwardIterator'
| | | `-DeclRefExpr 0x2707fd0 <line:732:7> 'const _Tp' lvalue ParmVar 0x2707af8 '__value' 'const _Tp &'
| | |-FunctionDecl 0x27ad400 <line:723:5, line:733:5> line:724:5 used fill 'void (unsigned long *, unsigned long *, const int &)' inline
| | | |-TemplateArgument type 'unsigned long *'
| | | |-TemplateArgument type 'int'
| | | |-ParmVarDecl 0x27ad158 <col:10, col:27> col:27 used __first 'unsigned long *':'unsigned long *'
| | | |-ParmVarDecl 0x27ad1c8 <col:36, col:53> col:53 used __last 'unsigned long *':'unsigned long *'
| | | |-ParmVarDecl 0x27ad2c8 <col:61, col:72> col:72 used __value 'const int &'
| | | `-CompoundStmt 0x271ae20 <line:725:5, line:733:5>
| | | |-NullStmt 0x2707d40 <line:729:54>
| | | `-CallExpr 0x271ade0 <line:731:7, line:732:14> 'typename __gnu_cxx::__enable_if<__is_scalar<int>::__value, void>::__type':'void'
| | | |-ImplicitCastExpr 0x271adc8 <line:731:7, col:12> 'typename __gnu_cxx::__enable_if<__is_scalar<int>::__value, void>::__type (*)(unsigned long *, unsigned long *, const int &)' <FunctionToPointerDecay>
| | | | `-DeclRefExpr 0x271ad58 <col:7, col:12> 'typename __gnu_cxx::__enable_if<__is_scalar<int>::__value, void>::__type (unsigned long *, unsigned long *, const int &)' lvalue Function 0x271abf0 '__fill_a' 'typename __gnu_cxx::__enable_if<__is_scalar<int>::__value, void>::__type (unsigned long *, unsigned long *, const int &)' (FunctionTemplate 0x27066c8 '__fill_a')
| | | |-CallExpr 0x281bf70 <col:21, col:46> 'unsigned long *':'unsigned long *'
| | | | |-ImplicitCastExpr 0x281bf58 <col:21, col:26> 'unsigned long *(*)(unsigned long *)' <FunctionToPointerDecay>
| | | | | `-DeclRefExpr 0x281beb8 <col:21, col:26> 'unsigned long *(unsigned long *)' lvalue Function 0x281bdb0 '__niter_base' 'unsigned long *(unsigned long *)' (FunctionTemplate 0x26f4198 '__niter_base')
| | | | `-ImplicitCastExpr 0x281bfa0 <col:39> 'unsigned long *':'unsigned long *' <LValueToRValue>
| | | | `-DeclRefExpr 0x281bb50 <col:39> 'unsigned long *':'unsigned long *' lvalue ParmVar 0x27ad158 '__first' 'unsigned long *':'unsigned long *'
| | | |-CallExpr 0x281c108 <col:49, col:73> 'unsigned long *':'unsigned long *'
| | | | |-ImplicitCastExpr 0x281c0f0 <col:49, col:54> 'unsigned long *(*)(unsigned long *)' <FunctionToPointerDecay>
| | | | | `-DeclRefExpr 0x281c0b0 <col:49, col:54> 'unsigned long *(unsigned long *)' lvalue Function 0x281bdb0 '__niter_base' 'unsigned long *(unsigned long *)' (FunctionTemplate 0x26f4198 '__niter_base')
| | | | `-ImplicitCastExpr 0x281c138 <col:67> 'unsigned long *':'unsigned long *' <LValueToRValue>
| | | | `-DeclRefExpr 0x281c018 <col:67> 'unsigned long *':'unsigned long *' lvalue ParmVar 0x27ad1c8 '__last' 'unsigned long *':'unsigned long *'
| | | `-DeclRefExpr 0x281c150 <line:732:7> 'const int':'const int' lvalue ParmVar 0x27ad2c8 '__value' 'const int &'
| | `-FunctionDecl 0x27ffde0 <line:723:5, line:733:5> line:724:5 fill 'void (struct std::_Bit_iterator, struct std::_Bit_iterator, const _Bool &)' inline
| | |-TemplateArgument type 'struct std::_Bit_iterator'
| | |-TemplateArgument type '_Bool'
| | |-ParmVarDecl 0x27ffbb8 <col:10, col:27> col:27 __first 'struct std::_Bit_iterator':'struct std::_Bit_iterator'
| | |-ParmVarDecl 0x27ffc28 <col:36, col:53> col:53 __last 'struct std::_Bit_iterator':'struct std::_Bit_iterator'
| | `-ParmVarDecl 0x27ffcf8 <col:61, col:72> col:72 __value 'const _Bool &'
| |-FunctionTemplateDecl 0x2708928 <line:735:3, line:744:5> line:738:5 __fill_n_a
| | |-TemplateTypeParmDecl 0x2708060 <line:735:12, col:21> col:21 referenced typename _OutputIterator
| | |-TemplateTypeParmDecl 0x27080c8 <col:38, col:47> col:47 referenced typename _Size
| | |-TemplateTypeParmDecl 0x2708138 <col:54, col:63> col:63 referenced typename _Tp
| | `-FunctionDecl 0x2708880 <line:736:5, line:744:5> line:738:5 __fill_n_a 'typename __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value, _OutputIterator>::__type (_OutputIterator, _Size, const _Tp &)' inline
| | |-ParmVarDecl 0x2708600 <col:16, col:32> col:32 referenced __first '_OutputIterator'
| | |-ParmVarDecl 0x2708670 <col:41, col:47> col:47 referenced __n '_Size'
| | |-ParmVarDecl 0x2708738 <col:52, col:63> col:63 referenced __value 'const _Tp &'
| | `-CompoundStmt 0x2708e68 <line:739:5, line:744:5>
| | |-ForStmt 0x2708de0 <line:740:7, line:742:13>
| | | |-DeclStmt 0x2708b80 <line:740:12, col:45>
| | | | `-VarDecl 0x2708af8 <col:12, col:42> col:32 referenced __niter 'decltype(__n + 0)' cinit
| | | | `-DeclRefExpr 0x2708b58 <col:42> '_Size' lvalue ParmVar 0x2708670 '__n' '_Size'
| | | |-<<<NULL>>>
| | | |-CXXOperatorCallExpr 0x2708c48 <line:741:5, col:15> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x2708be0 <col:13> '<overloaded function type>' lvalue (ADL) = 'operator>' 0x268ea08 0x26b2af8 0x26b6af8
| | | | |-DeclRefExpr 0x2708b98 <col:5> 'decltype(__n + 0)' lvalue Var 0x2708af8 '__niter' 'decltype(__n + 0)'
| | | | `-IntegerLiteral 0x2708bc0 <col:15> 'int' 0
| | | |-BinaryOperator 0x2708d20 <col:18, col:31> '<dependent type>' ','
| | | | |-UnaryOperator 0x2708cb8 <col:18, col:20> '<dependent type>' prefix '--'
| | | | | `-DeclRefExpr 0x2708c90 <col:20> 'decltype(__n + 0)' lvalue Var 0x2708af8 '__niter' 'decltype(__n + 0)'
| | | | `-UnaryOperator 0x2708d00 <col:29, col:31> '<dependent type>' prefix '++'
| | | | `-DeclRefExpr 0x2708cd8 <col:31> '_OutputIterator' lvalue ParmVar 0x2708600 '__first' '_OutputIterator'
| | | `-BinaryOperator 0x2708db8 <line:742:2, col:13> '<dependent type>' '='
| | | |-UnaryOperator 0x2708d70 <col:2, col:3> '<dependent type>' prefix '*'
| | | | `-DeclRefExpr 0x2708d48 <col:3> '_OutputIterator' lvalue ParmVar 0x2708600 '__first' '_OutputIterator'
| | | `-DeclRefExpr 0x2708d90 <col:13> 'const _Tp' lvalue ParmVar 0x2708738 '__value' 'const _Tp &'
| | `-ReturnStmt 0x2708e50 <line:743:7, col:14>
| | `-DeclRefExpr 0x2708e18 <col:14> '_OutputIterator' lvalue ParmVar 0x2708600 '__first' '_OutputIterator'
| |-FunctionTemplateDecl 0x27096b8 <line:746:3, line:756:5> line:749:5 __fill_n_a
| | |-TemplateTypeParmDecl 0x2708e90 <line:746:12, col:21> col:21 referenced typename _OutputIterator
| | |-TemplateTypeParmDecl 0x2708ef8 <col:38, col:47> col:47 referenced typename _Size
| | |-TemplateTypeParmDecl 0x2708f68 <col:54, col:63> col:63 referenced typename _Tp
| | `-FunctionDecl 0x2709610 <line:747:5, line:756:5> line:749:5 __fill_n_a 'typename __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type (_OutputIterator, _Size, const _Tp &)' inline
| | |-ParmVarDecl 0x27093c0 <col:16, col:32> col:32 referenced __first '_OutputIterator'
| | |-ParmVarDecl 0x2709430 <col:41, col:47> col:47 referenced __n '_Size'
| | |-ParmVarDecl 0x27094c8 <col:52, col:63> col:63 referenced __value 'const _Tp &'
| | `-CompoundStmt 0x2709c58 <line:750:5, line:756:5>
| | |-DeclStmt 0x27097b8 <line:751:7, col:32>
| | | `-VarDecl 0x2709730 <col:7, col:25> col:17 referenced __tmp 'const _Tp' cinit
| | | `-DeclRefExpr 0x2709790 <col:25> 'const _Tp' lvalue ParmVar 0x27094c8 '__value' 'const _Tp &'
| | |-ForStmt 0x2709be0 <line:752:7, line:754:13>
| | | |-DeclStmt 0x2709980 <line:752:12, col:45>
| | | | `-VarDecl 0x27098f8 <col:12, col:42> col:32 referenced __niter 'decltype(__n + 0)' cinit
| | | | `-DeclRefExpr 0x2709958 <col:42> '_Size' lvalue ParmVar 0x2709430 '__n' '_Size'
| | | |-<<<NULL>>>
| | | |-CXXOperatorCallExpr 0x2709a48 <line:753:5, col:15> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x27099e0 <col:13> '<overloaded function type>' lvalue (ADL) = 'operator>' 0x268ea08 0x26b2af8 0x26b6af8
| | | | |-DeclRefExpr 0x2709998 <col:5> 'decltype(__n + 0)' lvalue Var 0x27098f8 '__niter' 'decltype(__n + 0)'
| | | | `-IntegerLiteral 0x27099c0 <col:15> 'int' 0
| | | |-BinaryOperator 0x2709b20 <col:18, col:31> '<dependent type>' ','
| | | | |-UnaryOperator 0x2709ab8 <col:18, col:20> '<dependent type>' prefix '--'
| | | | | `-DeclRefExpr 0x2709a90 <col:20> 'decltype(__n + 0)' lvalue Var 0x27098f8 '__niter' 'decltype(__n + 0)'
| | | | `-UnaryOperator 0x2709b00 <col:29, col:31> '<dependent type>' prefix '++'
| | | | `-DeclRefExpr 0x2709ad8 <col:31> '_OutputIterator' lvalue ParmVar 0x27093c0 '__first' '_OutputIterator'
| | | `-BinaryOperator 0x2709bb8 <line:754:2, col:13> '<dependent type>' '='
| | | |-UnaryOperator 0x2709b70 <col:2, col:3> '<dependent type>' prefix '*'
| | | | `-DeclRefExpr 0x2709b48 <col:3> '_OutputIterator' lvalue ParmVar 0x27093c0 '__first' '_OutputIterator'
| | | `-DeclRefExpr 0x2709b90 <col:13> 'const _Tp' lvalue Var 0x2709730 '__tmp' 'const _Tp'
| | `-ReturnStmt 0x2709c40 <line:755:7, col:14>
| | `-DeclRefExpr 0x2709c18 <col:14> '_OutputIterator' lvalue ParmVar 0x27093c0 '__first' '_OutputIterator'
| |-FunctionTemplateDecl 0x270a4f8 <line:758:3, line:765:5> line:761:5 __fill_n_a
| | |-TemplateTypeParmDecl 0x2709c88 <line:758:12, col:21> col:21 referenced typename _Size
| | |-TemplateTypeParmDecl 0x2709cf8 <col:28, col:37> col:37 referenced typename _Tp
| | `-FunctionDecl 0x270a450 <line:759:5, line:765:5> line:761:5 __fill_n_a 'typename __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp *>::__type (_Tp *, _Size, const _Tp &)' inline
| | |-ParmVarDecl 0x270a200 <col:16, col:21> col:21 referenced __first '_Tp *'
| | |-ParmVarDecl 0x270a270 <col:30, col:36> col:36 referenced __n '_Size'
| | |-ParmVarDecl 0x270a308 <col:41, col:52> col:52 referenced __c 'const _Tp &'
| | `-CompoundStmt 0x270a870 <line:762:5, line:765:5>
| | |-CallExpr 0x270a728 <line:763:7, col:48> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x270a580 <col:7, col:12> '<overloaded function type>' lvalue (no ADL) = '__fill_a' 0x2705aa8 0x27066c8 0x27071b8
| | | |-DeclRefExpr 0x270a5e8 <col:21> '_Tp *' lvalue ParmVar 0x270a200 '__first' '_Tp *'
| | | |-CXXOperatorCallExpr 0x270a6b8 <col:30, col:40> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x270a660 <col:38> '<overloaded function type>' lvalue (ADL) = 'operator+' 0x26b4a08
| | | | |-DeclRefExpr 0x270a610 <col:30> '_Tp *' lvalue ParmVar 0x270a200 '__first' '_Tp *'
| | | | `-DeclRefExpr 0x270a638 <col:40> '_Size' lvalue ParmVar 0x270a270 '__n' '_Size'
| | | `-DeclRefExpr 0x270a700 <col:45> 'const _Tp' lvalue ParmVar 0x270a308 '__c' 'const _Tp &'
| | `-ReturnStmt 0x270a858 <line:764:7, col:24>
| | `-CXXOperatorCallExpr 0x270a810 <col:14, col:24> '<dependent type>'
| | |-UnresolvedLookupExpr 0x270a7b8 <col:22> '<overloaded function type>' lvalue (ADL) = 'operator+' 0x26b4a08
| | |-DeclRefExpr 0x270a768 <col:14> '_Tp *' lvalue ParmVar 0x270a200 '__first' '_Tp *'
| | `-DeclRefExpr 0x270a790 <col:24> '_Size' lvalue ParmVar 0x270a270 '__n' '_Size'
| |-FunctionTemplateDecl 0x270ad08 <line:782:3, line:790:5> line:784:5 fill_n
| | |-TemplateTypeParmDecl 0x270a898 <line:782:12, col:21> col:21 referenced typename _OI
| | |-TemplateTypeParmDecl 0x270a908 <col:26, col:35> col:35 referenced typename _Size
| | |-TemplateTypeParmDecl 0x270a978 <col:42, col:51> col:51 referenced typename _Tp
| | `-FunctionDecl 0x270ac60 <line:783:5, line:790:5> line:784:5 fill_n '_OI (_OI, _Size, const _Tp &)' inline
| | |-ParmVarDecl 0x270aa20 <col:12, col:16> col:16 referenced __first '_OI'
| | |-ParmVarDecl 0x270aa90 <col:25, col:31> col:31 referenced __n '_Size'
| | |-ParmVarDecl 0x270ab28 <col:36, col:47> col:47 referenced __value 'const _Tp &'
| | `-CompoundStmt 0x270b000 <line:785:5, line:790:5>
| | `-ReturnStmt 0x270afe8 <line:789:7, col:75>
| | `-CXXUnresolvedConstructExpr 0x270afb8 <col:14, col:75> '_OI'
| | `-CallExpr 0x270af78 <col:18, col:74> '<dependent type>'
| | |-UnresolvedLookupExpr 0x270ada0 <col:18, col:23> '<overloaded function type>' lvalue (no ADL) = '__fill_n_a' 0x2708928 0x27096b8 0x270a4f8
| | |-CallExpr 0x270aef8 <col:34, col:59> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x270ae70 <col:34, col:39> '<overloaded function type>' lvalue (no ADL) = '__niter_base' 0x26d0f80 0x26f4198
| | | `-DeclRefExpr 0x270aed0 <col:52> '_OI' lvalue ParmVar 0x270aa20 '__first' '_OI'
| | |-DeclRefExpr 0x270af28 <col:62> '_Size' lvalue ParmVar 0x270aa90 '__n' '_Size'
| | `-DeclRefExpr 0x270af50 <col:67> 'const _Tp' lvalue ParmVar 0x270ab28 '__value' 'const _Tp &'
| |-ClassTemplateDecl 0x270b138 <line:792:3, line:804:5> line:793:12 __equal
| | |-NonTypeTemplateParmDecl 0x270b030 <line:792:12, col:17> col:17 '_Bool' _BoolType
| | |-CXXRecordDecl 0x270b0a0 <line:793:5, line:804:5> line:793:12 struct __equal definition
| | | |-CXXRecordDecl 0x270b3d8 <col:5, col:12> col:12 implicit struct __equal
| | | `-FunctionTemplateDecl 0x270b838 <line:795:7, line:803:2> line:797:9 equal
| | | |-TemplateTypeParmDecl 0x270b470 <line:795:16, col:25> col:25 referenced typename _II1
| | | |-TemplateTypeParmDecl 0x270b4d8 <col:31, col:40> col:40 referenced typename _II2
| | | `-CXXMethodDecl 0x270b790 <line:796:9, line:803:2> line:797:9 equal '_Bool (_II1, _II1, _II2)' static
| | | |-ParmVarDecl 0x270b578 <col:15, col:20> col:20 referenced __first1 '_II1'
| | | |-ParmVarDecl 0x270b5e8 <col:30, col:35> col:35 referenced __last1 '_II1'
| | | |-ParmVarDecl 0x270b658 <col:44, col:49> col:49 referenced __first2 '_II2'
| | | `-CompoundStmt 0x270bd08 <line:798:9, line:803:2>
| | | |-ForStmt 0x270bca0 <line:799:4, line:801:15>
| | | | |-<<<NULL>>>
| | | | |-<<<NULL>>>
| | | | |-CXXOperatorCallExpr 0x270b980 <line:799:11, col:23> '<dependent type>'
| | | | | |-UnresolvedLookupExpr 0x270b918 <col:20> '<overloaded function type>' lvalue (ADL) = 'operator!=' 0x268e1f8 0x26b2418 0x26b6368
| | | | | |-DeclRefExpr 0x270b8c8 <col:11> '_II1' lvalue ParmVar 0x270b578 '__first1' '_II1'
| | | | | `-DeclRefExpr 0x270b8f0 <col:23> '_II1' lvalue ParmVar 0x270b5e8 '__last1' '_II1'
| | | | |-BinaryOperator 0x270ba90 <col:32, col:52> '<dependent type>' ','
| | | | | |-UnaryOperator 0x270b9f0 <col:32, col:34> '<dependent type>' prefix '++'
| | | | | | `-DeclRefExpr 0x270b9c8 <col:34> '_II1' lvalue ParmVar 0x270b578 '__first1' '_II1'
| | | | | `-CStyleCastExpr 0x270ba68 <col:44, col:52> 'void' <ToVoid>
| | | | | `-UnaryOperator 0x270ba38 <col:50, col:52> '<dependent type>' prefix '++'
| | | | | `-DeclRefExpr 0x270ba10 <col:52> '_II2' lvalue ParmVar 0x270b658 '__first2' '_II2'
| | | | `-IfStmt 0x270bc68 <line:800:6, line:801:15>
| | | | |-<<<NULL>>>
| | | | |-<<<NULL>>>
| | | | |-UnaryOperator 0x270bc18 <line:800:10, col:34> '<dependent type>' prefix '!'
| | | | | `-ParenExpr 0x270bbf8 <col:11, col:34> '<dependent type>'
| | | | | `-CXXOperatorCallExpr 0x270bbb0 <col:12, col:26> '<dependent type>'
| | | | | |-UnresolvedLookupExpr 0x270bb48 <col:22> '<overloaded function type>' lvalue (ADL) = 'operator==' 0x268cb48 0x26b0e08 0x26b5368
| | | | | |-UnaryOperator 0x270bae0 <col:12, col:13> '<dependent type>' prefix '*'
| | | | | | `-DeclRefExpr 0x270bab8 <col:13> '_II1' lvalue ParmVar 0x270b578 '__first1' '_II1'
| | | | | `-UnaryOperator 0x270bb28 <col:25, col:26> '<dependent type>' prefix '*'
| | | | | `-DeclRefExpr 0x270bb00 <col:26> '_II2' lvalue ParmVar 0x270b658 '__first2' '_II2'
| | | | |-ReturnStmt 0x270bc50 <line:801:8, col:15>
| | | | | `-CXXBoolLiteralExpr 0x270bc38 <col:15> '_Bool' false
| | | | `-<<<NULL>>>
| | | `-ReturnStmt 0x270bcf0 <line:802:4, col:11>
| | | `-CXXBoolLiteralExpr 0x270bcd8 <col:11> '_Bool' true
| | `-ClassTemplateSpecialization 0x270bd58 '__equal'
| |-ClassTemplateSpecializationDecl 0x270bd58 <line:806:3, line:817:5> line:807:12 struct __equal definition
| | |-TemplateArgument integral 1
| | |-CXXRecordDecl 0x270c8d8 <col:5, col:12> col:12 implicit struct __equal
| | `-FunctionTemplateDecl 0x270cce8 <line:809:7, line:816:2> line:811:9 equal
| | |-TemplateTypeParmDecl 0x270c970 <line:809:16, col:25> col:25 referenced typename _Tp
| | `-CXXMethodDecl 0x270cc40 <line:810:9, line:816:2> line:811:9 equal '_Bool (const _Tp *, const _Tp *, const _Tp *)' static
| | |-ParmVarDecl 0x270ca28 <col:15, col:26> col:26 referenced __first1 'const _Tp *'
| | |-ParmVarDecl 0x270ca98 <col:36, col:47> col:47 referenced __last1 'const _Tp *'
| | |-ParmVarDecl 0x270cb08 <col:56, col:67> col:67 referenced __first2 'const _Tp *'
| | `-CompoundStmt 0x270d418 <line:812:9, line:816:2>
| | |-IfStmt 0x270d398 <line:813:4, line:814:70>
| | | |-<<<NULL>>>
| | | |-DeclStmt 0x270d3d0 <line:813:8, col:48>
| | | | `-VarDecl 0x270cd88 <col:8, col:48> col:21 referenced __len 'const size_t':'const unsigned long' cinit
| | | | `-ParenExpr 0x270cee0 <col:29, col:48> '<dependent type>'
| | | | `-CXXOperatorCallExpr 0x270ce98 <col:30, col:40> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x270ce38 <col:38> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8 0x26b8208
| | | | |-DeclRefExpr 0x270cde8 <col:30> 'const _Tp *' lvalue ParmVar 0x270ca98 '__last1' 'const _Tp *'
| | | | `-DeclRefExpr 0x270ce10 <col:40> 'const _Tp *' lvalue ParmVar 0x270ca28 '__first1' 'const _Tp *'
| | | |-ImplicitCastExpr 0x270cf40 <col:21> '_Bool' <IntegralToBoolean>
| | | | `-ImplicitCastExpr 0x270cf28 <col:21> 'size_t':'unsigned long' <LValueToRValue>
| | | | `-DeclRefExpr 0x270cf00 <col:21> 'const size_t':'const unsigned long' lvalue Var 0x270cd88 '__len' 'const size_t':'const unsigned long'
| | | |-ReturnStmt 0x270d380 <line:814:6, col:70>
| | | | `-UnaryOperator 0x270d360 <col:13, col:70> '<dependent type>' prefix '!'
| | | | `-CallExpr 0x270d320 <col:14, col:70> '<dependent type>'
| | | | |-DeclRefExpr 0x270d210 <col:14> '<builtin fn type>' Function 0x270cff8 '__builtin_memcmp' 'int (const void *, const void *, unsigned long)'
| | | | |-DeclRefExpr 0x270d238 <col:31> 'const _Tp *' lvalue ParmVar 0x270ca28 '__first1' 'const _Tp *'
| | | | |-DeclRefExpr 0x270d260 <col:41> 'const _Tp *' lvalue ParmVar 0x270cb08 '__first2' 'const _Tp *'
| | | | `-BinaryOperator 0x270d2f8 <col:51, col:65> 'unsigned long' '*'
| | | | |-UnaryExprOrTypeTraitExpr 0x270d298 <col:51, col:61> 'unsigned long' sizeof '_Tp'
| | | | `-ImplicitCastExpr 0x270d2e0 <col:65> 'size_t':'unsigned long' <LValueToRValue>
| | | | `-DeclRefExpr 0x270d2b8 <col:65> 'const size_t':'const unsigned long' lvalue Var 0x270cd88 '__len' 'const size_t':'const unsigned long'
| | | `-<<<NULL>>>
| | `-ReturnStmt 0x270d400 <line:815:4, col:11>
| | `-CXXBoolLiteralExpr 0x270d3e8 <col:11> '_Bool' true
| |-FunctionTemplateDecl 0x270e038 <line:819:3, line:832:5> line:821:5 __equal_aux
| | |-TemplateTypeParmDecl 0x270d440 <line:819:12, col:21> col:21 referenced typename _II1
| | |-TemplateTypeParmDecl 0x270d4a8 <col:27, col:36> col:36 referenced typename _II2
| | `-FunctionDecl 0x270df90 <line:820:5, line:832:5> line:821:5 __equal_aux '_Bool (_II1, _II1, _II2)' inline
| | |-ParmVarDecl 0x270d548 <col:17, col:22> col:22 referenced __first1 '_II1'
| | |-ParmVarDecl 0x270d5b8 <col:32, col:37> col:37 referenced __last1 '_II1'
| | |-ParmVarDecl 0x270d628 <col:46, col:51> col:51 referenced __first2 '_II2'
| | `-CompoundStmt 0x270f0b0 <line:822:5, line:832:5>
| | |-DeclStmt 0x270e260 <line:823:7, col:69>
| | | `-TypedefDecl 0x270e210 <col:7, col:58> col:58 referenced _ValueType1 'typename iterator_traits<_II1>::value_type'
| | | `-DependentNameType 0x270e1a0 'typename iterator_traits<_II1>::value_type' dependent
| | |-DeclStmt 0x270e440 <line:824:7, col:69>
| | | `-TypedefDecl 0x270e3f0 <col:7, col:58> col:58 referenced _ValueType2 'typename iterator_traits<_II2>::value_type'
| | | `-DependentNameType 0x270e380 'typename iterator_traits<_II2>::value_type' dependent
| | |-DeclStmt 0x270edb0 <line:825:7, line:829:58>
| | | `-VarDecl 0x270e468 <line:825:7, line:829:57> line:825:18 referenced __simple 'const _Bool' cinit
| | | `-ParenExpr 0x270ed90 <col:29, line:829:57> '<dependent type>'
| | | `-BinaryOperator 0x270ed68 <line:825:30, line:829:50> '<dependent type>' '&&'
| | | |-BinaryOperator 0x270eb78 <line:825:30, line:828:46> '<dependent type>' '&&'
| | | | |-BinaryOperator 0x270e9f8 <line:825:30, line:827:46> '<dependent type>' '&&'
| | | | | |-ParenExpr 0x270e880 <line:825:30, line:826:47> '<dependent type>'
| | | | | | `-BinaryOperator 0x270e858 <line:825:31, line:826:40> '<dependent type>' '||'
| | | | | | |-DependentScopeDeclRefExpr 0x270e670 <line:825:31, col:58> '<dependent type>' lvalue
| | | | | | `-DependentScopeDeclRefExpr 0x270e818 <line:826:13, col:40> '<dependent type>' lvalue
| | | | | `-DependentScopeDeclRefExpr 0x270e9b8 <line:827:26, col:46> '<dependent type>' lvalue
| | | | `-DependentScopeDeclRefExpr 0x270eb38 <line:828:26, col:46> '<dependent type>' lvalue
| | | `-DependentScopeDeclRefExpr 0x270ed28 <line:829:12, col:50> '<dependent type>' lvalue
| | `-ReturnStmt 0x270f098 <line:831:7, col:71>
| | `-CallExpr 0x270f058 <col:14, col:71> '<dependent type>'
| | |-DependentScopeDeclRefExpr 0x270efa0 <col:14, col:38> '<dependent type>' lvalue
| | |-DeclRefExpr 0x270efe0 <col:44> '_II1' lvalue ParmVar 0x270d548 '__first1' '_II1'
| | |-DeclRefExpr 0x270f008 <col:54> '_II1' lvalue ParmVar 0x270d5b8 '__last1' '_II1'
| | `-DeclRefExpr 0x270f030 <col:63> '_II2' lvalue ParmVar 0x270d628 '__first2' '_II2'
| |-ClassTemplateDecl 0x270f280 <line:834:3, line:846:5> line:835:12 __lc_rai
| | |-TemplateTypeParmDecl 0x270f0e8 <line:834:12> col:12 typename
| | |-TemplateTypeParmDecl 0x270f158 <col:22> col:22 typename
| | |-CXXRecordDecl 0x270f1e8 <line:835:5, line:846:5> line:835:12 struct __lc_rai definition
| | | |-CXXRecordDecl 0x270f518 <col:5, col:12> col:12 implicit struct __lc_rai
| | | |-FunctionTemplateDecl 0x270f9f8 <line:837:7, line:840:27> line:839:9 __newlast1
| | | | |-TemplateTypeParmDecl 0x270f5b0 <line:837:16, col:25> col:25 referenced typename _II1
| | | | |-TemplateTypeParmDecl 0x270f618 <col:31, col:40> col:40 referenced typename _II2
| | | | `-CXXMethodDecl 0x270f950 <line:838:9, line:840:27> line:839:9 __newlast1 '_II1 (_II1, _II1, _II2, _II2)' static
| | | | |-ParmVarDecl 0x270f6b8 <col:20> col:24 '_II1'
| | | | |-ParmVarDecl 0x270f728 <col:26, col:31> col:31 referenced __last1 '_II1'
| | | | |-ParmVarDecl 0x270f798 <col:40> col:44 '_II2'
| | | | |-ParmVarDecl 0x270f808 <col:46> col:50 '_II2'
| | | | `-CompoundStmt 0x270fdf8 <line:840:9, col:27>
| | | | `-ReturnStmt 0x270fde0 <col:11, col:18>
| | | | `-DeclRefExpr 0x270fdb8 <col:18> '_II1' lvalue ParmVar 0x270f728 '__last1' '_II1'
| | | `-FunctionTemplateDecl 0x270fd28 <line:842:7, line:845:37> line:844:9 __cnd2
| | | |-TemplateTypeParmDecl 0x270fa68 <line:842:16, col:25> col:25 referenced typename _II
| | | `-CXXMethodDecl 0x270fc80 <line:843:9, line:845:37> line:844:9 __cnd2 '_Bool (_II, _II)' static
| | | |-ParmVarDecl 0x270fb00 <col:16, col:20> col:20 referenced __first '_II'
| | | |-ParmVarDecl 0x270fb70 <col:29, col:33> col:33 referenced __last '_II'
| | | `-CompoundStmt 0x270ff30 <line:845:9, col:37>
| | | `-ReturnStmt 0x270ff18 <col:11, col:29>
| | | `-CXXOperatorCallExpr 0x270fed0 <col:18, col:29> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x270fe68 <col:26> '<overloaded function type>' lvalue (ADL) = 'operator!=' 0x268e1f8 0x26b2418 0x26b6368
| | | |-DeclRefExpr 0x270fe18 <col:18> '_II' lvalue ParmVar 0x270fb00 '__first' '_II'
| | | `-DeclRefExpr 0x270fe40 <col:29> '_II' lvalue ParmVar 0x270fb70 '__last' '_II'
| | `-ClassTemplateSpecialization 0x27107d0 '__lc_rai'
| |-ClassTemplateSpecializationDecl 0x27107d0 <line:848:3, line:867:5> line:849:12 struct __lc_rai definition
| | |-TemplateArgument type 'struct std::random_access_iterator_tag'
| | |-TemplateArgument type 'struct std::random_access_iterator_tag'
| | |-CXXRecordDecl 0x2710a38 <col:5, col:12> col:12 implicit struct __lc_rai
| | |-FunctionTemplateDecl 0x2710f18 <line:851:7, line:861:2> line:853:9 __newlast1
| | | |-TemplateTypeParmDecl 0x2710ad0 <line:851:16, col:25> col:25 referenced typename _RAI1
| | | |-TemplateTypeParmDecl 0x2710b38 <col:32, col:41> col:41 referenced typename _RAI2
| | | `-CXXMethodDecl 0x2710e70 <line:852:9, line:861:2> line:853:9 __newlast1 '_RAI1 (_RAI1, _RAI1, _RAI2, _RAI2)' static
| | | |-ParmVarDecl 0x2710bd8 <col:20, col:26> col:26 referenced __first1 '_RAI1'
| | | |-ParmVarDecl 0x2710c48 <col:36, col:42> col:42 referenced __last1 '_RAI1'
| | | |-ParmVarDecl 0x2710cb8 <line:854:6, col:12> col:12 referenced __first2 '_RAI2'
| | | |-ParmVarDecl 0x2710d28 <col:22, col:28> col:28 referenced __last2 '_RAI2'
| | | `-CompoundStmt 0x27137c0 <line:855:9, line:861:2>
| | | |-DeclStmt 0x27115a8 <line:856:4, line:857:34>
| | | | `-VarDecl 0x2711450 <line:856:4, line:857:26> col:6 referenced __diff1 'const typename iterator_traits<_RAI1>::difference_type' cinit
| | | | `-CXXOperatorCallExpr 0x2711560 <col:16, col:26> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x2711500 <col:24> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8 0x26b8208
| | | | |-DeclRefExpr 0x27114b0 <col:16> '_RAI1' lvalue ParmVar 0x2710c48 '__last1' '_RAI1'
| | | | `-DeclRefExpr 0x27114d8 <col:26> '_RAI1' lvalue ParmVar 0x2710bd8 '__first1' '_RAI1'
| | | |-DeclStmt 0x2713548 <line:858:4, line:859:34>
| | | | `-VarDecl 0x2711760 <line:858:4, line:859:26> col:6 referenced __diff2 'const typename iterator_traits<_RAI2>::difference_type' cinit
| | | | `-CXXOperatorCallExpr 0x2713500 <col:16, col:26> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x27134a0 <col:24> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8 0x26b8208
| | | | |-DeclRefExpr 0x2713450 <col:16> '_RAI2' lvalue ParmVar 0x2710d28 '__last2' '_RAI2'
| | | | `-DeclRefExpr 0x2713478 <col:26> '_RAI2' lvalue ParmVar 0x2710cb8 '__first2' '_RAI2'
| | | `-ReturnStmt 0x27137a8 <line:860:4, col:52>
| | | `-ConditionalOperator 0x2713778 <col:11, col:52> '<dependent type>'
| | | |-CXXOperatorCallExpr 0x2713618 <col:11, col:21> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x27135b0 <col:19> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x268d598 0x26b1ca8 0x26b5b78
| | | | |-DeclRefExpr 0x2713560 <col:11> 'const typename iterator_traits<_RAI2>::difference_type' lvalue Var 0x2711760 '__diff2' 'const typename iterator_traits<_RAI2>::difference_type'
| | | | `-DeclRefExpr 0x2713588 <col:21> 'const typename iterator_traits<_RAI1>::difference_type' lvalue Var 0x2711450 '__diff1' 'const typename iterator_traits<_RAI1>::difference_type'
| | | |-CXXOperatorCallExpr 0x2713708 <col:31, col:42> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x27136b0 <col:40> '<overloaded function type>' lvalue (ADL) = 'operator+' 0x26b4a08
| | | | |-DeclRefExpr 0x2713660 <col:31> '_RAI1' lvalue ParmVar 0x2710bd8 '__first1' '_RAI1'
| | | | `-DeclRefExpr 0x2713688 <col:42> 'const typename iterator_traits<_RAI2>::difference_type' lvalue Var 0x2711760 '__diff2' 'const typename iterator_traits<_RAI2>::difference_type'
| | | `-DeclRefExpr 0x2713750 <col:52> '_RAI1' lvalue ParmVar 0x2710c48 '__last1' '_RAI1'
| | `-FunctionTemplateDecl 0x2711248 <line:863:7, line:866:24> line:865:9 __cnd2
| | |-TemplateTypeParmDecl 0x2710f88 <line:863:16, col:25> col:25 referenced typename _RAI
| | `-CXXMethodDecl 0x27111a0 <line:864:9, line:866:24> line:865:9 __cnd2 '_Bool (_RAI, _RAI)' static
| | |-ParmVarDecl 0x2711020 <col:16> col:20 '_RAI'
| | |-ParmVarDecl 0x2711090 <col:22> col:26 '_RAI'
| | `-CompoundStmt 0x2713820 <line:866:9, col:24>
| | `-ReturnStmt 0x2713808 <col:11, col:18>
| | `-CXXBoolLiteralExpr 0x27137f0 <col:18> '_Bool' true
| |-FunctionTemplateDecl 0x2713d88 <line:869:3, line:889:5> line:871:5 __lexicographical_compare_impl
| | |-TemplateTypeParmDecl 0x2713840 <line:869:12, col:21> col:21 referenced typename _II1
| | |-TemplateTypeParmDecl 0x27138a8 <col:27, col:36> col:36 referenced typename _II2
| | |-TemplateTypeParmDecl 0x2713918 <col:42, col:51> col:51 referenced typename _Compare
| | `-FunctionDecl 0x2713ce0 <line:870:5, line:889:5> line:871:5 __lexicographical_compare_impl '_Bool (_II1, _II1, _II2, _II2, _Compare)'
| | |-ParmVarDecl 0x27139c0 <col:36, col:41> col:41 referenced __first1 '_II1'
| | |-ParmVarDecl 0x2713a30 <col:51, col:56> col:56 referenced __last1 '_II1'
| | |-ParmVarDecl 0x2713aa0 <line:872:8, col:13> col:13 referenced __first2 '_II2'
| | |-ParmVarDecl 0x2713b10 <col:23, col:28> col:28 referenced __last2 '_II2'
| | |-ParmVarDecl 0x2713b80 <line:873:8, col:17> col:17 referenced __comp '_Compare'
| | `-CompoundStmt 0x2715ea8 <line:874:5, line:889:5>
| | |-DeclStmt 0x2713fc0 <line:875:7, col:75>
| | | `-TypedefDecl 0x2713f70 <col:7, col:65> col:65 referenced _Category1 'typename iterator_traits<_II1>::iterator_category'
| | | `-DependentNameType 0x2713f00 'typename iterator_traits<_II1>::iterator_category' dependent
| | |-DeclStmt 0x27141a0 <line:876:7, col:75>
| | | `-TypedefDecl 0x2714150 <col:7, col:65> col:65 referenced _Category2 'typename iterator_traits<_II2>::iterator_category'
| | | `-DependentNameType 0x27140e0 'typename iterator_traits<_II2>::iterator_category' dependent
| | |-DeclStmt 0x27154c0 <line:877:7, col:63>
| | | `-TypedefDecl 0x2715470 <col:7, col:53> col:53 referenced __rai_type 'std::__lc_rai<_Category1, _Category2>':'__lc_rai<_Category1, _Category2>'
| | | `-ElaboratedType 0x2714360 'std::__lc_rai<_Category1, _Category2>' sugar dependent
| | | `-TemplateSpecializationType 0x2714300 '__lc_rai<_Category1, _Category2>' dependent __lc_rai
| | | |-TemplateArgument type '_Category1':'typename iterator_traits<_II1>::iterator_category'
| | | `-TemplateArgument type '_Category2':'typename iterator_traits<_II2>::iterator_category'
| | |-BinaryOperator 0x2715698 <line:879:7, col:76> '<dependent type>' '='
| | | |-DeclRefExpr 0x27154d8 <col:7> '_II1' lvalue ParmVar 0x2713a30 '__last1' '_II1'
| | | `-CallExpr 0x2715650 <col:17, col:76> '<dependent type>'
| | | |-DependentScopeDeclRefExpr 0x2715570 <col:17, col:29> '<dependent type>' lvalue
| | | |-DeclRefExpr 0x27155b0 <col:40> '_II1' lvalue ParmVar 0x27139c0 '__first1' '_II1'
| | | |-DeclRefExpr 0x27155d8 <col:50> '_II1' lvalue ParmVar 0x2713a30 '__last1' '_II1'
| | | |-DeclRefExpr 0x2715600 <col:59> '_II2' lvalue ParmVar 0x2713aa0 '__first2' '_II2'
| | | `-DeclRefExpr 0x2715628 <col:69> '_II2' lvalue ParmVar 0x2713b10 '__last2' '_II2'
| | |-ForStmt 0x2715c30 <line:880:7, line:887:2>
| | | |-<<<NULL>>>
| | | |-<<<NULL>>>
| | | |-BinaryOperator 0x27158c0 <line:880:14, col:73> '<dependent type>' '&&'
| | | | |-CXXOperatorCallExpr 0x2715778 <col:14, col:26> '<dependent type>'
| | | | | |-UnresolvedLookupExpr 0x2715710 <col:23> '<overloaded function type>' lvalue (ADL) = 'operator!=' 0x268e1f8 0x26b2418 0x26b6368
| | | | | |-DeclRefExpr 0x27156c0 <col:14> '_II1' lvalue ParmVar 0x27139c0 '__first1' '_II1'
| | | | | `-DeclRefExpr 0x27156e8 <col:26> '_II1' lvalue ParmVar 0x2713a30 '__last1' '_II1'
| | | | `-CallExpr 0x2715888 <col:37, col:73> '<dependent type>'
| | | | |-DependentScopeDeclRefExpr 0x27157f8 <col:37, col:49> '<dependent type>' lvalue
| | | | |-DeclRefExpr 0x2715838 <col:56> '_II2' lvalue ParmVar 0x2713aa0 '__first2' '_II2'
| | | | `-DeclRefExpr 0x2715860 <col:66> '_II2' lvalue ParmVar 0x2713b10 '__last2' '_II2'
| | | |-BinaryOperator 0x27159b0 <line:881:5, col:25> '<dependent type>' ','
| | | | |-UnaryOperator 0x2715910 <col:5, col:7> '<dependent type>' prefix '++'
| | | | | `-DeclRefExpr 0x27158e8 <col:7> '_II1' lvalue ParmVar 0x27139c0 '__first1' '_II1'
| | | | `-CStyleCastExpr 0x2715988 <col:17, col:25> 'void' <ToVoid>
| | | | `-UnaryOperator 0x2715958 <col:23, col:25> '<dependent type>' prefix '++'
| | | | `-DeclRefExpr 0x2715930 <col:25> '_II2' lvalue ParmVar 0x2713aa0 '__first2' '_II2'
| | | `-CompoundStmt 0x2715c08 <line:882:2, line:887:2>
| | | |-IfStmt 0x2715ab8 <line:883:4, line:884:13>
| | | | |-<<<NULL>>>
| | | | |-<<<NULL>>>
| | | | |-CallExpr 0x2715a50 <line:883:8, col:33> '<dependent type>'
| | | | | |-DeclRefExpr 0x27159d8 <col:8> '_Compare' lvalue ParmVar 0x2713b80 '__comp' '_Compare'
| | | | | |-DeclRefExpr 0x2715a00 <col:15> '_II1' lvalue ParmVar 0x27139c0 '__first1' '_II1'
| | | | | `-DeclRefExpr 0x2715a28 <col:25> '_II2' lvalue ParmVar 0x2713aa0 '__first2' '_II2'
| | | | |-ReturnStmt 0x2715aa0 <line:884:6, col:13>
| | | | | `-CXXBoolLiteralExpr 0x2715a88 <col:13> '_Bool' true
| | | | `-<<<NULL>>>
| | | `-IfStmt 0x2715bd0 <line:885:4, line:886:13>
| | | |-<<<NULL>>>
| | | |-<<<NULL>>>
| | | |-CallExpr 0x2715b68 <line:885:8, col:33> '<dependent type>'
| | | | |-DeclRefExpr 0x2715af0 <col:8> '_Compare' lvalue ParmVar 0x2713b80 '__comp' '_Compare'
| | | | |-DeclRefExpr 0x2715b18 <col:15> '_II2' lvalue ParmVar 0x2713aa0 '__first2' '_II2'
| | | | `-DeclRefExpr 0x2715b40 <col:25> '_II1' lvalue ParmVar 0x27139c0 '__first1' '_II1'
| | | |-ReturnStmt 0x2715bb8 <line:886:6, col:13>
| | | | `-CXXBoolLiteralExpr 0x2715ba0 <col:13> '_Bool' false
| | | `-<<<NULL>>>
| | `-ReturnStmt 0x2715e90 <line:888:7, col:49>
| | `-BinaryOperator 0x2715e68 <col:14, col:49> '<dependent type>' '&&'
| | |-CXXOperatorCallExpr 0x2715d20 <col:14, col:26> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x2715cb8 <col:23> '<overloaded function type>' lvalue (ADL) = 'operator==' 0x268cb48 0x26b0e08 0x26b5368
| | | |-DeclRefExpr 0x2715c68 <col:14> '_II1' lvalue ParmVar 0x27139c0 '__first1' '_II1'
| | | `-DeclRefExpr 0x2715c90 <col:26> '_II1' lvalue ParmVar 0x2713a30 '__last1' '_II1'
| | `-CXXOperatorCallExpr 0x2715e20 <col:37, col:49> '<dependent type>'
| | |-UnresolvedLookupExpr 0x2715db8 <col:46> '<overloaded function type>' lvalue (ADL) = 'operator!=' 0x268e1f8 0x26b2418 0x26b6368
| | |-DeclRefExpr 0x2715d68 <col:37> '_II2' lvalue ParmVar 0x2713aa0 '__first2' '_II2'
| | `-DeclRefExpr 0x2715d90 <col:49> '_II2' lvalue ParmVar 0x2713b10 '__last2' '_II2'
| |-ClassTemplateDecl 0x2716008 <line:891:3, line:896:5> line:892:12 __lexicographical_compare
| | |-NonTypeTemplateParmDecl 0x2715f00 <line:891:12, col:17> col:17 '_Bool' _BoolType
| | |-CXXRecordDecl 0x2715f70 <line:892:5, line:896:5> line:892:12 struct __lexicographical_compare definition
| | | |-CXXRecordDecl 0x27162a8 <col:5, col:12> col:12 implicit struct __lexicographical_compare
| | | `-FunctionTemplateDecl 0x27167b8 <line:894:7, line:895:48> col:21 __lc
| | | |-TemplateTypeParmDecl 0x2716340 <line:894:16, col:25> col:25 referenced typename _II1
| | | |-TemplateTypeParmDecl 0x27163a8 <col:31, col:40> col:40 referenced typename _II2
| | | `-CXXMethodDecl 0x2716710 <line:895:9, col:48> col:21 __lc '_Bool (_II1, _II1, _II2, _II2)' static
| | | |-ParmVarDecl 0x2716480 <col:26> col:30 '_II1'
| | | |-ParmVarDecl 0x27164f0 <col:32> col:36 '_II1'
| | | |-ParmVarDecl 0x2716560 <col:38> col:42 '_II2'
| | | `-ParmVarDecl 0x27165d0 <col:44> col:48 '_II2'
| | `-ClassTemplateSpecialization 0x2717218 '__lexicographical_compare'
| |-FunctionTemplateDecl 0x2716ee0 parent 0x2715f70 prev 0x27167b8 <line:899:5, line:907:7> line:902:7 __lc
| | |-TemplateTypeParmDecl 0x27168a8 <line:899:14, col:23> col:23 referenced typename _II1
| | |-TemplateTypeParmDecl 0x2716918 <col:29, col:38> col:38 referenced typename _II2
| | `-CXXMethodDecl 0x2716e00 parent 0x2715f70 prev 0x2716710 <line:898:3, line:907:7> line:902:7 __lc '_Bool (_II1, _II1, _II2, _II2)'
| | |-ParmVarDecl 0x2716bc0 <col:12, col:17> col:17 referenced __first1 '_II1'
| | |-ParmVarDecl 0x2716c30 <col:27, col:32> col:32 referenced __last1 '_II1'
| | |-ParmVarDecl 0x2716ca0 <col:41, col:46> col:46 referenced __first2 '_II2'
| | |-ParmVarDecl 0x2716d10 <col:56, col:61> col:61 referenced __last2 '_II2'
| | `-CompoundStmt 0x27171d0 <line:903:7, line:907:7>
| | `-ReturnStmt 0x27171b8 <line:904:2, line:906:42>
| | `-CallExpr 0x2717168 <line:904:9, line:906:42> '<dependent type>'
| | |-UnresolvedLookupExpr 0x2716f88 <line:904:9, col:14> '<overloaded function type>' lvalue (no ADL) = '__lexicographical_compare_impl' 0x2713d88
| | |-DeclRefExpr 0x2716fe0 <col:45> '_II1' lvalue ParmVar 0x2716bc0 '__first1' '_II1'
| | |-DeclRefExpr 0x2717008 <col:55> '_II1' lvalue ParmVar 0x2716c30 '__last1' '_II1'
| | |-DeclRefExpr 0x2717030 <line:905:10> '_II2' lvalue ParmVar 0x2716ca0 '__first2' '_II2'
| | |-DeclRefExpr 0x2717058 <col:20> '_II2' lvalue ParmVar 0x2716d10 '__last2' '_II2'
| | `-CallExpr 0x2717140 <line:906:6, col:41> 'struct __gnu_cxx::__ops::_Iter_less_iter'
| | `-ImplicitCastExpr 0x2717128 <col:6, col:24> 'struct __gnu_cxx::__ops::_Iter_less_iter (*)(void)' <FunctionToPointerDecay>
| | `-DeclRefExpr 0x27170c8 <col:6, col:24> 'struct __gnu_cxx::__ops::_Iter_less_iter (void)' lvalue Function 0x26d1a80 '__iter_less_iter' 'struct __gnu_cxx::__ops::_Iter_less_iter (void)'
| |-ClassTemplateSpecializationDecl 0x2717218 <line:909:3, line:924:5> line:910:12 struct __lexicographical_compare definition
| | |-TemplateArgument integral 1
| | |-CXXRecordDecl 0x2717490 <col:5, col:12> col:12 implicit struct __lexicographical_compare
| | `-FunctionTemplateDecl 0x27179d8 <line:912:7, line:923:2> line:914:9 __lc
| | |-TemplateTypeParmDecl 0x2717528 <line:912:16, col:25> col:25 referenced typename _Tp
| | |-TemplateTypeParmDecl 0x2717598 <col:30, col:39> col:39 referenced typename _Up
| | `-CXXMethodDecl 0x2717930 <line:913:9, line:923:2> line:914:9 __lc '_Bool (const _Tp *, const _Tp *, const _Up *, const _Up *)' static
| | |-ParmVarDecl 0x2717668 <col:14, col:25> col:25 referenced __first1 'const _Tp *'
| | |-ParmVarDecl 0x27176d8 <col:35, col:46> col:46 referenced __last1 'const _Tp *'
| | |-ParmVarDecl 0x2717778 <line:915:7, col:18> col:18 referenced __first2 'const _Up *'
| | |-ParmVarDecl 0x27177e8 <col:28, col:39> col:39 referenced __last2 'const _Up *'
| | `-CompoundStmt 0x27187d8 <line:916:2, line:923:2>
| | |-DeclStmt 0x2717be0 <line:917:4, col:44>
| | | `-VarDecl 0x2717a88 <col:4, col:36> col:17 referenced __len1 'const size_t':'const unsigned long' cinit
| | | `-CXXOperatorCallExpr 0x2717b98 <col:26, col:36> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x2717b38 <col:34> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8 0x26b8208
| | | |-DeclRefExpr 0x2717ae8 <col:26> 'const _Tp *' lvalue ParmVar 0x27176d8 '__last1' 'const _Tp *'
| | | `-DeclRefExpr 0x2717b10 <col:36> 'const _Tp *' lvalue ParmVar 0x2717668 '__first1' 'const _Tp *'
| | |-DeclStmt 0x2717d60 <line:918:4, col:44>
| | | `-VarDecl 0x2717c08 <col:4, col:36> col:17 referenced __len2 'const size_t':'const unsigned long' cinit
| | | `-CXXOperatorCallExpr 0x2717d18 <col:26, col:36> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x2717cb8 <col:34> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8 0x26b8208
| | | |-DeclRefExpr 0x2717c68 <col:26> 'const _Up *' lvalue ParmVar 0x27177e8 '__last2' 'const _Up *'
| | | `-DeclRefExpr 0x2717c90 <col:36> 'const _Up *' lvalue ParmVar 0x2717778 '__first2' 'const _Up *'
| | |-IfStmt 0x27186c8 <line:919:4, line:921:26>
| | | |-<<<NULL>>>
| | | |-DeclStmt 0x2718700 <line:919:8, col:52>
| | | | `-VarDecl 0x2717d88 <col:8, col:52> col:21 referenced __len 'const size_t':'const unsigned long' cinit
| | | | `-ImplicitCastExpr 0x2718398 <col:29, col:52> 'unsigned long':'unsigned long' <LValueToRValue>
| | | | `-CallExpr 0x2718360 <col:29, col:52> 'const unsigned long':'const unsigned long' lvalue
| | | | |-ImplicitCastExpr 0x2718348 <col:29, col:34> 'const unsigned long &(*)(const unsigned long &, const unsigned long &)' <FunctionToPointerDecay>
| | | | | `-DeclRefExpr 0x27182b0 <col:29, col:34> 'const unsigned long &(const unsigned long &, const unsigned long &)' lvalue Function 0x27181a0 'min' 'const unsigned long &(const unsigned long &, const unsigned long &)' (FunctionTemplate 0x26f2ca8 'min')
| | | | |-DeclRefExpr 0x2717e68 <col:38> 'const size_t':'const unsigned long' lvalue Var 0x2717a88 '__len1' 'const size_t':'const unsigned long'
| | | | `-DeclRefExpr 0x2717e90 <col:46> 'const size_t':'const unsigned long' lvalue Var 0x2717c08 '__len2' 'const size_t':'const unsigned long'
| | | |-ImplicitCastExpr 0x27183f0 <col:21> '_Bool' <IntegralToBoolean>
| | | | `-ImplicitCastExpr 0x27183d8 <col:21> 'size_t':'unsigned long' <LValueToRValue>
| | | | `-DeclRefExpr 0x27183b0 <col:21> 'const size_t':'const unsigned long' lvalue Var 0x2717d88 '__len' 'const size_t':'const unsigned long'
| | | |-IfStmt 0x2718678 <line:920:6, line:921:26>
| | | | |-<<<NULL>>>
| | | | |-DeclStmt 0x27186b0 <line:920:10, col:67>
| | | | | `-VarDecl 0x2718418 <col:10, col:67> col:14 referenced __result 'int' cinit
| | | | | `-CallExpr 0x2718540 <col:25, col:67> '<dependent type>'
| | | | | |-DeclRefExpr 0x27184a0 <col:25> '<builtin fn type>' Function 0x270cff8 '__builtin_memcmp' 'int (const void *, const void *, unsigned long)'
| | | | | |-DeclRefExpr 0x27184c8 <col:42> 'const _Tp *' lvalue ParmVar 0x2717668 '__first1' 'const _Tp *'
| | | | | |-DeclRefExpr 0x27184f0 <col:52> 'const _Up *' lvalue ParmVar 0x2717778 '__first2' 'const _Up *'
| | | | | `-DeclRefExpr 0x2718518 <col:62> 'const size_t':'const unsigned long' lvalue Var 0x2717d88 '__len' 'const size_t':'const unsigned long'
| | | | |-ImplicitCastExpr 0x27185c0 <col:14> '_Bool' <IntegralToBoolean>
| | | | | `-ImplicitCastExpr 0x27185a8 <col:14> 'int' <LValueToRValue>
| | | | | `-DeclRefExpr 0x2718580 <col:14> 'int' lvalue Var 0x2718418 '__result' 'int'
| | | | |-ReturnStmt 0x2718660 <line:921:8, col:26>
| | | | | `-BinaryOperator 0x2718638 <col:15, col:26> '_Bool' '<'
| | | | | |-ImplicitCastExpr 0x2718620 <col:15> 'int' <LValueToRValue>
| | | | | | `-DeclRefExpr 0x27185d8 <col:15> 'int' lvalue Var 0x2718418 '__result' 'int'
| | | | | `-IntegerLiteral 0x2718600 <col:26> 'int' 0
| | | | `-<<<NULL>>>
| | | `-<<<NULL>>>
| | `-ReturnStmt 0x27187c0 <line:922:4, col:20>
| | `-BinaryOperator 0x2718798 <col:11, col:20> '_Bool' '<'
| | |-ImplicitCastExpr 0x2718768 <col:11> 'size_t':'unsigned long' <LValueToRValue>
| | | `-DeclRefExpr 0x2718718 <col:11> 'const size_t':'const unsigned long' lvalue Var 0x2717a88 '__len1' 'const size_t':'const unsigned long'
| | `-ImplicitCastExpr 0x2718780 <col:20> 'size_t':'unsigned long' <LValueToRValue>
| | `-DeclRefExpr 0x2718740 <col:20> 'const size_t':'const unsigned long' lvalue Var 0x2717c08 '__len2' 'const size_t':'const unsigned long'
| |-FunctionTemplateDecl 0x2718c58 <line:926:3, line:942:5> line:928:5 __lexicographical_compare_aux
| | |-TemplateTypeParmDecl 0x2718810 <line:926:12, col:21> col:21 referenced typename _II1
| | |-TemplateTypeParmDecl 0x2718878 <col:27, col:36> col:36 referenced typename _II2
| | `-FunctionDecl 0x2718bb0 <line:927:5, line:942:5> line:928:5 __lexicographical_compare_aux '_Bool (_II1, _II1, _II2, _II2)' inline
| | |-ParmVarDecl 0x2718918 <col:35, col:40> col:40 referenced __first1 '_II1'
| | |-ParmVarDecl 0x2718988 <col:50, col:55> col:55 referenced __last1 '_II1'
| | |-ParmVarDecl 0x27189f8 <line:929:7, col:12> col:12 referenced __first2 '_II2'
| | |-ParmVarDecl 0x2718a68 <col:22, col:27> col:27 referenced __last2 '_II2'
| | `-CompoundStmt 0x26bc488 <line:930:5, line:942:5>
| | |-DeclStmt 0x2718e90 <line:931:7, col:69>
| | | `-TypedefDecl 0x2718e40 <col:7, col:58> col:58 referenced _ValueType1 'typename iterator_traits<_II1>::value_type'
| | | `-DependentNameType 0x2718dd0 'typename iterator_traits<_II1>::value_type' dependent
| | |-DeclStmt 0x2719070 <line:932:7, col:69>
| | | `-TypedefDecl 0x2719020 <col:7, col:58> col:58 referenced _ValueType2 'typename iterator_traits<_II2>::value_type'
| | | `-DependentNameType 0x2718fb0 'typename iterator_traits<_II2>::value_type' dependent
| | |-DeclStmt 0x26bc170 <line:933:7, line:938:34>
| | | `-VarDecl 0x2719098 <line:933:7, line:938:33> line:933:18 referenced __simple 'const _Bool' cinit
| | | `-ParenExpr 0x26bc150 <line:934:2, line:938:33> '<dependent type>'
| | | `-BinaryOperator 0x26bc128 <line:934:3, line:938:26> '<dependent type>' '&&'
| | | |-BinaryOperator 0x26bbfa8 <line:934:3, line:937:26> '<dependent type>' '&&'
| | | | |-BinaryOperator 0x26bbe28 <line:934:3, line:936:49> '<dependent type>' '&&'
| | | | | |-BinaryOperator 0x26bbc28 <line:934:3, line:935:49> '<dependent type>' '&&'
| | | | | | |-BinaryOperator 0x26bba10 <line:934:3, col:62> '<dependent type>' '&&'
| | | | | | | |-DependentScopeDeclRefExpr 0x27192a0 <col:3, col:27> '<dependent type>' lvalue
| | | | | | | `-DependentScopeDeclRefExpr 0x26bb9d0 <col:38, col:62> '<dependent type>' lvalue
| | | | | | `-UnaryOperator 0x26bbc08 <line:935:6, col:49> '<dependent type>' prefix '!'
| | | | | | `-DependentScopeDeclRefExpr 0x26bbbc8 <col:7, col:49> '<dependent type>' lvalue
| | | | | `-UnaryOperator 0x26bbe08 <line:936:6, col:49> '<dependent type>' prefix '!'
| | | | | `-DependentScopeDeclRefExpr 0x26bbdc8 <col:7, col:49> '<dependent type>' lvalue
| | | | `-DependentScopeDeclRefExpr 0x26bbf68 <line:937:6, col:26> '<dependent type>' lvalue
| | | `-DependentScopeDeclRefExpr 0x26bc0e8 <line:938:6, col:26> '<dependent type>' lvalue
| | `-ReturnStmt 0x26bc470 <line:940:7, line:941:29>
| | `-CallExpr 0x26bc428 <line:940:14, line:941:29> '<dependent type>'
| | |-DependentScopeDeclRefExpr 0x26bc348 <line:940:14, col:56> '<dependent type>' lvalue
| | |-DeclRefExpr 0x26bc388 <col:61> '_II1' lvalue ParmVar 0x2718918 '__first1' '_II1'
| | |-DeclRefExpr 0x26bc3b0 <col:71> '_II1' lvalue ParmVar 0x2718988 '__last1' '_II1'
| | |-DeclRefExpr 0x26bc3d8 <line:941:12> '_II2' lvalue ParmVar 0x27189f8 '__first2' '_II2'
| | `-DeclRefExpr 0x26bc400 <col:22> '_II2' lvalue ParmVar 0x2718a68 '__last2' '_II2'
| |-FunctionTemplateDecl 0x26bc9e0 <line:944:3, line:969:5> line:946:5 __lower_bound
| | |-TemplateTypeParmDecl 0x26bc4c0 <line:944:12, col:21> col:21 referenced typename _ForwardIterator
| | |-TemplateTypeParmDecl 0x26bc528 <col:39, col:48> col:48 referenced typename _Tp
| | |-TemplateTypeParmDecl 0x26bc598 <col:53, col:62> col:62 referenced typename _Compare
| | `-FunctionDecl 0x26bc900 <line:945:5, line:969:5> line:946:5 __lower_bound '_ForwardIterator (_ForwardIterator, _ForwardIterator, const _Tp &, _Compare)'
| | |-ParmVarDecl 0x26bc640 <col:19, col:36> col:36 referenced __first '_ForwardIterator'
| | |-ParmVarDecl 0x26bc6b0 <col:45, col:62> col:62 referenced __last '_ForwardIterator'
| | |-ParmVarDecl 0x26bc748 <line:947:5, col:16> col:16 referenced __val 'const _Tp &'
| | |-ParmVarDecl 0x26bc7b8 <col:23, col:32> col:32 referenced __comp '_Compare'
| | `-CompoundStmt 0x26bd670 <line:948:5, line:969:5>
| | |-DeclStmt 0x26bcc10 <line:949:7, line:950:15>
| | | `-TypedefDecl 0x26bcbc0 <line:949:7, line:950:2> col:2 referenced _DistanceType 'typename iterator_traits<_ForwardIterator>::difference_type'
| | | `-DependentNameType 0x26bcb50 'typename iterator_traits<_ForwardIterator>::difference_type' dependent
| | |-DeclStmt 0x26bcdc0 <line:952:7, col:59>
| | | `-VarDecl 0x26bcc60 <col:7, col:58> col:21 referenced __len '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type' cinit
| | | `-CallExpr 0x26bcd88 <col:29, col:58> '<dependent type>'
| | | |-UnresolvedLookupExpr 0x26bcce0 <col:29, col:34> '<overloaded function type>' lvalue (no ADL) = 'distance' 0x2603218
| | | |-DeclRefExpr 0x26bcd38 <col:43> '_ForwardIterator' lvalue ParmVar 0x26bc640 '__first' '_ForwardIterator'
| | | `-DeclRefExpr 0x26bcd60 <col:52> '_ForwardIterator' lvalue ParmVar 0x26bc6b0 '__last' '_ForwardIterator'
| | |-WhileStmt 0x26bd610 <line:954:7, line:967:2>
| | | |-<<<NULL>>>
| | | |-CXXOperatorCallExpr 0x26bce88 <line:954:14, col:22> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x26bce20 <col:20> '<overloaded function type>' lvalue (ADL) = 'operator>' 0x268ea08 0x26b2af8 0x26b6af8
| | | | |-DeclRefExpr 0x26bcdd8 <col:14> '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type' lvalue Var 0x26bcc60 '__len' '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type'
| | | | `-IntegerLiteral 0x26bce00 <col:22> 'int' 0
| | | `-CompoundStmt 0x26bd5d8 <line:955:2, line:967:2>
| | | |-DeclStmt 0x26bcfb0 <line:956:4, col:37>
| | | | `-VarDecl 0x26bcee0 <col:4, col:36> col:18 referenced __half '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type' cinit
| | | | `-BinaryOperator 0x26bcf88 <col:27, col:36> '<dependent type>' '>>'
| | | | |-DeclRefExpr 0x26bcf40 <col:27> '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type' lvalue Var 0x26bcc60 '__len' '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type'
| | | | `-IntegerLiteral 0x26bcf68 <col:36> 'int' 1
| | | |-DeclStmt 0x26bd060 <line:957:4, col:39>
| | | | `-VarDecl 0x26bcfd8 <col:4, col:32> col:21 referenced __middle '_ForwardIterator' cinit
| | | | `-DeclRefExpr 0x26bd038 <col:32> '_ForwardIterator' lvalue ParmVar 0x26bc640 '__first' '_ForwardIterator'
| | | |-CallExpr 0x26bd140 <line:958:4, col:33> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x26bd098 <col:4, col:9> '<overloaded function type>' lvalue (no ADL) = 'advance' 0x26a5c38
| | | | |-DeclRefExpr 0x26bd0f0 <col:17> '_ForwardIterator' lvalue Var 0x26bcfd8 '__middle' '_ForwardIterator'
| | | | `-DeclRefExpr 0x26bd118 <col:27> '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type' lvalue Var 0x26bcee0 '__half' '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type'
| | | `-IfStmt 0x26bd5a0 <line:959:4, line:966:14>
| | | |-<<<NULL>>>
| | | |-<<<NULL>>>
| | | |-CallExpr 0x26bd1f0 <line:959:8, col:30> '<dependent type>'
| | | | |-DeclRefExpr 0x26bd178 <col:8> '_Compare' lvalue ParmVar 0x26bc7b8 '__comp' '_Compare'
| | | | |-DeclRefExpr 0x26bd1a0 <col:15> '_ForwardIterator' lvalue Var 0x26bcfd8 '__middle' '_ForwardIterator'
| | | | `-DeclRefExpr 0x26bd1c8 <col:25> 'const _Tp' lvalue ParmVar 0x26bc748 '__val' 'const _Tp &'
| | | |-CompoundStmt 0x26bd4f8 <line:960:6, line:964:6>
| | | | |-BinaryOperator 0x26bd278 <line:961:8, col:18> '<dependent type>' '='
| | | | | |-DeclRefExpr 0x26bd228 <col:8> '_ForwardIterator' lvalue ParmVar 0x26bc640 '__first' '_ForwardIterator'
| | | | | `-DeclRefExpr 0x26bd250 <col:18> '_ForwardIterator' lvalue Var 0x26bcfd8 '__middle' '_ForwardIterator'
| | | | |-UnaryOperator 0x26bd2c8 <line:962:8, col:10> '<dependent type>' prefix '++'
| | | | | `-DeclRefExpr 0x26bd2a0 <col:10> '_ForwardIterator' lvalue ParmVar 0x26bc640 '__first' '_ForwardIterator'
| | | | `-BinaryOperator 0x26bd4d0 <line:963:8, col:33> '<dependent type>' '='
| | | | |-DeclRefExpr 0x26bd2e8 <col:8> '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type' lvalue Var 0x26bcc60 '__len' '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type'
| | | | `-CXXOperatorCallExpr 0x26bd488 <col:16, col:33> '<dependent type>'
| | | | |-UnresolvedLookupExpr 0x26bd428 <col:31> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8 0x26b8208
| | | | |-CXXOperatorCallExpr 0x26bd3c0 <col:16, col:24> '<dependent type>'
| | | | | |-UnresolvedLookupExpr 0x26bd360 <col:22> '<overloaded function type>' lvalue (ADL) = 'operator-' 0x26b40c8 0x26b8208
| | | | | |-DeclRefExpr 0x26bd310 <col:16> '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type' lvalue Var 0x26bcc60 '__len' '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type'
| | | | | `-DeclRefExpr 0x26bd338 <col:24> '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type' lvalue Var 0x26bcee0 '__half' '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type'
| | | | `-IntegerLiteral 0x26bd408 <col:33> 'int' 1
| | | `-BinaryOperator 0x26bd578 <line:966:6, col:14> '<dependent type>' '='
| | | |-DeclRefExpr 0x26bd528 <col:6> '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type' lvalue Var 0x26bcc60 '__len' '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type'
| | | `-DeclRefExpr 0x26bd550 <col:14> '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type' lvalue Var 0x26bcee0 '__half' '_DistanceType':'typename iterator_traits<_ForwardIterator>::difference_type'
| | `-ReturnStmt 0x26bd658 <line:968:7, col:14>
| | `-DeclRefExpr 0x26bd630 <col:14> '_ForwardIterator' lvalue ParmVar 0x26bc640 '__first' '_ForwardIterator'
| |-FunctionTemplateDecl 0x26bdaa8 <line:982:3, line:995:5> line:984:5 lower_bound
| | |-TemplateTypeParmDecl 0x26bd6a8 <line:982:12, col:21> col:21 referenced typename _ForwardIterator
| | |-TemplateTypeParmDecl 0x26bd718 <col:39, col:48> col:48 referenced typename _Tp
| | `-FunctionDecl 0x26bda00 <line:983:5, line:995:5> line:984:5 lower_bound '_ForwardIterator (_ForwardIterator, _ForwardIterator, const _Tp &)' inline
| | |-ParmVarDecl 0x26bd7b8 <col:17, col:34> col:34 referenced __first '_ForwardIterator'
| | |-ParmVarDecl 0x26bd828 <col:43, col:60> col:60 referenced __last '_ForwardIterator'
| | |-ParmVarDecl 0x26bd8c8 <line:985:3, col:14> col:14 referenced __val 'const _Tp &'
| | `-CompoundStmt 0x26bdd48 <line:986:5, line:995:5>
| | |-NullStmt 0x26bdb10 <line:991:67>
| | `-ReturnStmt 0x26bdd30 <line:993:7, line:994:40>
| | `-CallExpr 0x26bdce8 <line:993:14, line:994:40> '<dependent type>'
| | |-UnresolvedLookupExpr 0x26bdb40 <line:993:14, col:19> '<overloaded function type>' lvalue (no ADL) = '__lower_bound' 0x26bc9e0
| | |-DeclRefExpr 0x26bdb98 <col:33> '_ForwardIterator' lvalue ParmVar 0x26bd7b8 '__first' '_ForwardIterator'
| | |-DeclRefExpr 0x26bdbc0 <col:42> '_ForwardIterator' lvalue ParmVar 0x26bd828 '__last' '_ForwardIterator'
| | |-DeclRefExpr 0x26bdbe8 <col:50> 'const _Tp' lvalue ParmVar 0x26bd8c8 '__val' 'const _Tp &'
| | `-CallExpr 0x26bdcc0 <line:994:5, col:39> 'struct __gnu_cxx::__ops::_Iter_less_val'
| | `-ImplicitCastExpr 0x26bdca8 <col:5, col:23> 'struct __gnu_cxx::__ops::_Iter_less_val (*)(void)' <FunctionToPointerDecay>
| | `-DeclRefExpr 0x26bdc40 <col:5, col:23> 'struct __gnu_cxx::__ops::_Iter_less_val (void)' lvalue Function 0x26d8f50 '__iter_less_val' 'struct __gnu_cxx::__ops::_Iter_less_val (void)'
| |-FunctionDecl 0x26bde40 <line:999:3, line:1001:66> line:1000:3 __lg 'int (int)' inline
| | |-ParmVarDecl 0x26bdd80 <col:8, col:12> col:12 used __n 'int'
| | `-CompoundStmt 0x26be320 <line:1001:3, col:66>
| | `-ReturnStmt 0x26be308 <col:5, col:63>
| | `-ImplicitCastExpr 0x26be2f0 <col:12, col:63> 'int' <IntegralCast>
| | `-BinaryOperator 0x26be2c8 <col:12, col:63> 'unsigned long' '-'
| | |-BinaryOperator 0x26bdfb8 <col:12, col:42> 'unsigned long' '-'
| | | |-BinaryOperator 0x26bdf58 <col:12, <built-in>:35:22> 'unsigned long' '*'
| | | | |-UnaryExprOrTypeTraitExpr 0x26bdf00 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:1001:12, col:22> 'unsigned long' sizeof 'int'
| | | | `-ImplicitCastExpr 0x26bdf40 <<built-in>:35:22> 'unsigned long' <IntegralCast>
| | | | `-IntegerLiteral 0x26bdf20 <col:22> 'int' 8
| | | `-ImplicitCastExpr 0x26bdfa0 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:1001:42> 'unsigned long' <IntegralCast>
| | | `-IntegerLiteral 0x26bdf80 <col:42> 'int' 1
| | `-ImplicitCastExpr 0x26be2b0 <col:46, col:63> 'unsigned long' <IntegralCast>
| | `-CallExpr 0x26be250 <col:46, col:63> 'int'
| | |-ImplicitCastExpr 0x26be238 <col:46> 'int (*)(unsigned int)' <BuiltinFnToFnPtr>
| | | `-DeclRefExpr 0x26be1c0 <col:46> '<builtin fn type>' Function 0x26be068 '__builtin_clz' 'int (unsigned int)'
| | `-ImplicitCastExpr 0x26be298 <col:60> 'unsigned int' <IntegralCast>
| | `-ImplicitCastExpr 0x26be280 <col:60> 'int' <LValueToRValue>
| | `-DeclRefExpr 0x26be1e8 <col:60> 'int' lvalue ParmVar 0x26bdd80 '__n' 'int'
| |-FunctionDecl 0x26be410 <line:1003:3, line:1005:66> line:1004:3 __lg 'unsigned int (unsigned int)' inline
| | |-ParmVarDecl 0x26be350 <col:8, col:17> col:17 used __n 'unsigned int'
| | `-CompoundStmt 0x26be6d0 <line:1005:3, col:66>
| | `-ReturnStmt 0x26be6b8 <col:5, col:63>
| | `-ImplicitCastExpr 0x26be6a0 <col:12, col:63> 'unsigned int' <IntegralCast>
| | `-BinaryOperator 0x26be678 <col:12, col:63> 'unsigned long' '-'
| | |-BinaryOperator 0x26be588 <col:12, col:42> 'unsigned long' '-'
| | | |-BinaryOperator 0x26be528 <col:12, <built-in>:35:22> 'unsigned long' '*'
| | | | |-UnaryExprOrTypeTraitExpr 0x26be4d0 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:1005:12, col:22> 'unsigned long' sizeof 'int'
| | | | `-ImplicitCastExpr 0x26be510 <<built-in>:35:22> 'unsigned long' <IntegralCast>
| | | | `-IntegerLiteral 0x26be4f0 <col:22> 'int' 8
| | | `-ImplicitCastExpr 0x26be570 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:1005:42> 'unsigned long' <IntegralCast>
| | | `-IntegerLiteral 0x26be550 <col:42> 'int' 1
| | `-ImplicitCastExpr 0x26be660 <col:46, col:63> 'unsigned long' <IntegralCast>
| | `-CallExpr 0x26be618 <col:46, col:63> 'int'
| | |-ImplicitCastExpr 0x26be600 <col:46> 'int (*)(unsigned int)' <BuiltinFnToFnPtr>
| | | `-DeclRefExpr 0x26be5b0 <col:46> '<builtin fn type>' Function 0x26be068 '__builtin_clz' 'int (unsigned int)'
| | `-ImplicitCastExpr 0x26be648 <col:60> 'unsigned int' <LValueToRValue>
| | `-DeclRefExpr 0x26be5d8 <col:60> 'unsigned int' lvalue ParmVar 0x26be350 '__n' 'unsigned int'
| |-FunctionDecl 0x26be7c0 <line:1007:3, line:1009:67> line:1008:3 __lg 'long (long)' inline
| | |-ParmVarDecl 0x26be700 <col:8, col:13> col:13 used __n 'long'
| | `-CompoundStmt 0x27217c0 <line:1009:3, col:67>
| | `-ReturnStmt 0x27217a8 <col:5, col:64>
| | `-ImplicitCastExpr 0x2721790 <col:12, col:64> 'long' <IntegralCast>
| | `-BinaryOperator 0x2721768 <col:12, col:64> 'unsigned long' '-'
| | |-BinaryOperator 0x26be938 <col:12, col:42> 'unsigned long' '-'
| | | |-BinaryOperator 0x26be8d8 <col:12, <built-in>:35:22> 'unsigned long' '*'
| | | | |-UnaryExprOrTypeTraitExpr 0x26be880 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:1009:12, col:23> 'unsigned long' sizeof 'long'
| | | | `-ImplicitCastExpr 0x26be8c0 <<built-in>:35:22> 'unsigned long' <IntegralCast>
| | | | `-IntegerLiteral 0x26be8a0 <col:22> 'int' 8
| | | `-ImplicitCastExpr 0x26be920 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:1009:42> 'unsigned long' <IntegralCast>
| | | `-IntegerLiteral 0x26be900 <col:42> 'int' 1
| | `-ImplicitCastExpr 0x2721750 <col:46, col:64> 'unsigned long' <IntegralCast>
| | `-CallExpr 0x27216f0 <col:46, col:64> 'int'
| | |-ImplicitCastExpr 0x27216d8 <col:46> 'int (*)(unsigned long)' <BuiltinFnToFnPtr>
| | | `-DeclRefExpr 0x2721658 <col:46> '<builtin fn type>' Function 0x2721500 '__builtin_clzl' 'int (unsigned long)'
| | `-ImplicitCastExpr 0x2721738 <col:61> 'unsigned long' <IntegralCast>
| | `-ImplicitCastExpr 0x2721720 <col:61> 'long' <LValueToRValue>
| | `-DeclRefExpr 0x2721680 <col:61> 'long' lvalue ParmVar 0x26be700 '__n' 'long'
| |-FunctionDecl 0x27218b0 <line:1011:3, line:1013:67> line:1012:3 __lg 'unsigned long (unsigned long)' inline
| | |-ParmVarDecl 0x27217f0 <col:8, col:22> col:22 used __n 'unsigned long'
| | `-CompoundStmt 0x2721b58 <line:1013:3, col:67>
| | `-ReturnStmt 0x2721b40 <col:5, col:64>
| | `-BinaryOperator 0x2721b18 <col:12, col:64> 'unsigned long' '-'
| | |-BinaryOperator 0x2721a28 <col:12, col:42> 'unsigned long' '-'
| | | |-BinaryOperator 0x27219c8 <col:12, <built-in>:35:22> 'unsigned long' '*'
| | | | |-UnaryExprOrTypeTraitExpr 0x2721970 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:1013:12, col:23> 'unsigned long' sizeof 'long'
| | | | `-ImplicitCastExpr 0x27219b0 <<built-in>:35:22> 'unsigned long' <IntegralCast>
| | | | `-IntegerLiteral 0x2721990 <col:22> 'int' 8
| | | `-ImplicitCastExpr 0x2721a10 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:1013:42> 'unsigned long' <IntegralCast>
| | | `-IntegerLiteral 0x27219f0 <col:42> 'int' 1
| | `-ImplicitCastExpr 0x2721b00 <col:46, col:64> 'unsigned long' <IntegralCast>
| | `-CallExpr 0x2721ab8 <col:46, col:64> 'int'
| | |-ImplicitCastExpr 0x2721aa0 <col:46> 'int (*)(unsigned long)' <BuiltinFnToFnPtr>
| | | `-DeclRefExpr 0x2721a50 <col:46> '<builtin fn type>' Function 0x2721500 '__builtin_clzl' 'int (unsigned long)'
| | `-ImplicitCastExpr 0x2721ae8 <col:61> 'unsigned long' <LValueToRValue>
| | `-DeclRefExpr 0x2721a78 <col:61> 'unsigned long' lvalue ParmVar 0x27217f0 '__n' 'unsigned long'
| |-FunctionDecl 0x2721c50 <line:1015:3, line:1017:73> line:1016:3 __lg 'long long (long long)' inline
| | |-ParmVarDecl 0x2721b88 <col:8, col:18> col:18 used __n 'long long'
| | `-CompoundStmt 0x2722130 <line:1017:3, col:73>
| | `-ReturnStmt 0x2722118 <col:5, col:70>
| | `-ImplicitCastExpr 0x2722100 <col:12, col:70> 'long long' <IntegralCast>
| | `-BinaryOperator 0x27220d8 <col:12, col:70> 'unsigned long' '-'
| | |-BinaryOperator 0x2721dc8 <col:12, col:47> 'unsigned long' '-'
| | | |-BinaryOperator 0x2721d68 <col:12, <built-in>:35:22> 'unsigned long' '*'
| | | | |-UnaryExprOrTypeTraitExpr 0x2721d10 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:1017:12, col:28> 'unsigned long' sizeof 'long long'
| | | | `-ImplicitCastExpr 0x2721d50 <<built-in>:35:22> 'unsigned long' <IntegralCast>
| | | | `-IntegerLiteral 0x2721d30 <col:22> 'int' 8
| | | `-ImplicitCastExpr 0x2721db0 </usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../include/c++/6.2.1/bits/stl_algobase.h:1017:47> 'unsigned long' <IntegralCast>
| | | `-IntegerLiteral 0x2721d90 <col:47> 'int' 1
| | `-ImplicitCastExpr 0x27220c0 <col:51, col:70> 'unsigned long' <IntegralCast>
| | `-CallExpr 0x2722060 <col:51, col:70> 'int'
| | |-ImplicitCastExpr 0x2722048 <col:51> 'int (*)(unsigned long long)' <BuiltinFnToFnPtr>
| | | `-DeclRefExpr 0x2721fd0 <col:51> '<builtin fn type>' Function 0x2721e78 '__builtin_clzll' 'int (unsigned long long)'
| | `-ImplicitCastExpr 0x27220a8 <col:67> 'unsigned long long' <IntegralCast>
| | `-ImplicitCastExpr 0x2722090 <col:67> 'long long' <LValueToRValue>
| | `-DeclRefExpr 0x2721ff8 <col:67> 'long long' lvalue ParmVar 0x2721b88 '__n' 'long long'
| |-FunctionDecl 0x2722220 <line:1019:3, line:1021:73> line:1020:3 __lg 'unsigned long long (unsigned long long)' inline
| | |-ParmVarDecl 0x2722160 <col:8, col:27> col:27 used __n 'unsigned long long'
| | `-CompoundStmt 0x27224e0 <line:1021:3, col:73>
| | `-ReturnStmt 0x27224c8 <col:5, col:70>
| | `-ImplicitCastExpr 0x27224b0 <col:12, col:70> 'unsigned long long' <IntegralCast>
| | `-BinaryOperator 0x2722488 <col:12, col:70> 'unsigned long' '-'
| | |-BinaryOperator 0x2722398 <col:12, col:47> 'unsigned long' '-'
| | | |-BinaryOperator 0x2722338 <col:12, <built-in>:35:22> 'unsigned long'[0;36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment