In this tutorial we learn how combinations of RVecs can be built.
Author: Stefan Wunsch
This notebook tutorial was automatically generated with ROOTBOOK-izer from the macro found in the ROOT repository on Tuesday, March 28, 2023 at 10:03 AM.
The starting point are two collections and we want to calculate the result of combinations of the elements.
ROOT::RVecD v1{1., 2., 3.};
ROOT::RVecD v2{-4., -5.};
To get the indices, which result in all combinations, you can call the following helper. Note that you can also pass the size of the vectors directly.
auto idx = Combinations(v1, v2);
input_line_52:2:2: error: Syntax error auto idx = Combinations(v1, v2); ^ FunctionDecl 0x7f90b68a6d18 <input_line_52:1:1, line:4:1> line:1:6 __cling_Un1Qu320 'void (void *)' |-ParmVarDecl 0x7f90b68a6c60 <col:23, col:29> col:29 vpClingValue 'void *' |-CompoundStmt 0x7f90b68a7120 <col:43, line:4:1> | |-DeclStmt 0x7f90b68a7100 <line:2:2, col:33> | | `-VarDecl 0x7f90b68a6e20 <col:2, col:32> col:7 idx 'auto' cinit | | `-CallExpr 0x7f90b68a70d0 <col:13, col:32> '<dependent type>' | | |-DeclRefExpr 0x7f90b68a7050 <col:13> '<dependent type>' lvalue Var 0x7f90b68a6f88 'Combinations' '<dependent type>' | | |-DeclRefExpr 0x7f90b68a7090 <col:26> 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' lvalue Var 0xaba2d10 'v1' 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' | | `-DeclRefExpr 0x7f90b68a70b0 <col:30> 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' lvalue Var 0xabaeff8 'v2' 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' | `-NullStmt 0x7f90b68a7118 <line:3:1> |-AnnotateAttr 0x7f90b68a6ef8 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" `-AnnotateAttr 0x7f90b68a6ff0 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" <<<NULL>>>
Next, the respective elements can be taken via the computed indices.
auto c1 = Take(v1, idx[0]);
auto c2 = Take(v2, idx[1]);
input_line_53:2:2: error: Syntax error auto c1 = Take(v1, idx[0]); ^ FunctionDecl 0x7f90b7540510 <input_line_53:1:1, line:5:1> line:1:6 __cling_Un1Qu321 'void (void *)' |-ParmVarDecl 0x7f90b7540458 <col:23, col:29> col:29 vpClingValue 'void *' |-CompoundStmt 0x7f90b7540e90 <col:43, line:5:1> | |-DeclStmt 0x7f90b7540a30 <line:2:2, col:28> | | `-VarDecl 0x7f90b7540618 <col:2, col:27> col:7 c1 'auto' cinit | | `-CallExpr 0x7f90b7540a00 <col:12, col:27> '<dependent type>' | | |-DeclRefExpr 0x7f90b7540850 <col:12> '<dependent type>' lvalue Var 0x7f90b7540788 'Take' '<dependent type>' | | |-DeclRefExpr 0x7f90b7540890 <col:17> 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' lvalue Var 0xaba2d10 'v1' 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' | | `-ArraySubscriptExpr 0x7f90b75409e0 <col:21, col:26> '<dependent type>' lvalue | | |-DeclRefExpr 0x7f90b7540980 <col:21> '<dependent type>' lvalue Var 0x7f90b75408b8 'idx' '<dependent type>' | | `-IntegerLiteral 0x7f90b75409c0 <col:25> 'int' 0 | |-DeclStmt 0x7f90b7540e70 <line:3:1, col:27> | | `-VarDecl 0x7f90b7540a88 <col:1, col:26> col:6 c2 'auto' cinit | | `-CallExpr 0x7f90b7540e40 <col:11, col:26> '<dependent type>' | | |-DeclRefExpr 0x7f90b7540c90 <col:11> '<dependent type>' lvalue Var 0x7f90b7540bc8 'Take' '<dependent type>' | | |-DeclRefExpr 0x7f90b7540cd0 <col:16> 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' lvalue Var 0xabaeff8 'v2' 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' | | `-ArraySubscriptExpr 0x7f90b7540e20 <col:20, col:25> '<dependent type>' lvalue | | |-DeclRefExpr 0x7f90b7540dc0 <col:20> '<dependent type>' lvalue Var 0x7f90b7540cf8 'idx' '<dependent type>' | | `-IntegerLiteral 0x7f90b7540e00 <col:24> 'int' 1 | `-NullStmt 0x7f90b7540e88 <line:4:1> |-AnnotateAttr 0x7f90b75406f0 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b75407f0 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7540920 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7540b60 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7540c30 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" `-AnnotateAttr 0x7f90b7540d60 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" <<<NULL>>>
Finally, you can perform any set of operations conveniently.
auto v3 = c1 * c2;
std::cout << "Combinations of " << v1 << " and " << v2 << ":" << std::endl;
for(size_t i=0; i<v3.size(); i++) {
std::cout << c1[i] << " * " << c2[i] << " = " << v3[i] << std::endl;
}
std::cout << std::endl;
input_line_54:2:2: error: Syntax error auto v3 = c1 * c2; ^ FunctionDecl 0x7f90b7541000 <input_line_54:1:1, line:10:1> line:1:6 __cling_Un1Qu322 'void (void *)' |-ParmVarDecl 0x7f90b7540f48 <col:23, col:29> col:29 vpClingValue 'void *' |-CompoundStmt 0x7f90b7a0da50 <col:43, line:10:1> | |-DeclStmt 0x7f90b7541610 <line:2:2, col:19> | | `-VarDecl 0x7f90b7541108 <col:2, col:17> col:7 used v3 'auto' cinit | | `-CXXOperatorCallExpr 0x7f90b75415d8 <col:12, col:17> '<dependent type>' '*' | | |-UnresolvedLookupExpr 0x7f90b75413c0 <col:15> '<overloaded function type>' lvalue (ADL) = 'operator*' 0x3224a60 0x4ada328 0x4ada7c0 0x4adac60 0x4adb198 0x4adb6d8 0x4adbc18 0x44d8c90 0x44d9130 0x44e4e20 0x44e5358 0x44e5898 0x44e5dd8 0x44e6280 0x4adc198 0x4adc6b8 0x4adcc38 0x4add1b8 0x4add738 0x4addc20 0x453a458 0x453a8f0 0x453b580 0x453bf48 0x453c3e0 0x453d070 0x453da48 0x453dee0 0x453eb70 0x453f350 0x453f7f0 0x4540480 0x4540c60 0x4541100 0x4541d90 0x455d850 0x455dc50 0x455e050 0x4529cb0 0x45294d0 0x45298c0 0x452cf08 0x452d180 0x452d3f0 0x452d660 0x47454d8 0x4751d78 0x47535a8 0x3ac7540 0x3ac7a68 0x3ac7f40 0x3f70340 0x3f70ee0 0x3f718a0 0x3f72260 0x3f72c80 0x4020638 0x4020fd8 0x4021948 | | |-DeclRefExpr 0x7f90b7541270 <col:12> '<dependent type>' lvalue Var 0x7f90b7541178 'c1' '<dependent type>' | | `-DeclRefExpr 0x7f90b7541380 <col:17> '<dependent type>' lvalue Var 0x7f90b75412b8 'c2' '<dependent type>' | |-CXXOperatorCallExpr 0x7f90b79ed810 <line:4:1, col:71> 'std::basic_ostream<char, std::char_traits<char> >::__ostream_type':'std::basic_ostream<char>' lvalue '<<' | | |-ImplicitCastExpr 0x7f90b79ed7f8 <col:63> 'std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(*)(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(*)(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &))' <FunctionToPointerDecay> | | | `-DeclRefExpr 0x7f90b79ed6d0 <col:63> 'std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(*)(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &))' lvalue CXXMethod 0xa787c28 'operator<<' 'std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(*)(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &))' | | |-CXXOperatorCallExpr 0x7f90b79e5620 <col:1, col:59> 'basic_ostream<char, std::char_traits<char> >':'std::basic_ostream<char>' lvalue '<<' | | | |-ImplicitCastExpr 0x7f90b79e5608 <col:56> 'basic_ostream<char, std::char_traits<char> > &(*)(basic_ostream<char, std::char_traits<char> > &, const char *)' <FunctionToPointerDecay> | | | | `-DeclRefExpr 0x7f90b79e55e8 <col:56> 'basic_ostream<char, std::char_traits<char> > &(basic_ostream<char, std::char_traits<char> > &, const char *)' lvalue Function 0x7f90b7573450 'operator<<' 'basic_ostream<char, std::char_traits<char> > &(basic_ostream<char, std::char_traits<char> > &, const char *)' | | | |-CXXOperatorCallExpr 0x7f90b79e3c58 <col:1, col:53> 'std::ostream':'std::basic_ostream<char>' lvalue '<<' adl | | | | |-ImplicitCastExpr 0x7f90b79e3c40 <col:50> 'std::ostream &(*)(std::ostream &, const RVec<double> &)' <FunctionToPointerDecay> | | | | | `-DeclRefExpr 0x7f90b79e3c20 <col:50> 'std::ostream &(std::ostream &, const RVec<double> &)' lvalue Function 0x7f90b79df8c8 'operator<<' 'std::ostream &(std::ostream &, const RVec<double> &)' | | | | |-CXXOperatorCallExpr 0x7f90b79e1460 <col:1, col:42> 'basic_ostream<char, std::char_traits<char> >':'std::basic_ostream<char>' lvalue '<<' | | | | | |-ImplicitCastExpr 0x7f90b79e1448 <col:39> 'basic_ostream<char, std::char_traits<char> > &(*)(basic_ostream<char, std::char_traits<char> > &, const char *)' <FunctionToPointerDecay> | | | | | | `-DeclRefExpr 0x7f90b79e1428 <col:39> 'basic_ostream<char, std::char_traits<char> > &(basic_ostream<char, std::char_traits<char> > &, const char *)' lvalue Function 0x7f90b7573450 'operator<<' 'basic_ostream<char, std::char_traits<char> > &(basic_ostream<char, std::char_traits<char> > &, const char *)' | | | | | |-CXXOperatorCallExpr 0x7f90b79dfaa0 <col:1, col:36> 'std::ostream':'std::basic_ostream<char>' lvalue '<<' adl | | | | | | |-ImplicitCastExpr 0x7f90b79dfa88 <col:33> 'std::ostream &(*)(std::ostream &, const RVec<double> &)' <FunctionToPointerDecay> | | | | | | | `-DeclRefExpr 0x7f90b79df9e8 <col:33> 'std::ostream &(std::ostream &, const RVec<double> &)' lvalue Function 0x7f90b79df8c8 'operator<<' 'std::ostream &(std::ostream &, const RVec<double> &)' | | | | | | |-CXXOperatorCallExpr 0x7f90b7578ce0 <col:1, col:14> 'basic_ostream<char, std::char_traits<char> >':'std::basic_ostream<char>' lvalue '<<' | | | | | | | |-ImplicitCastExpr 0x7f90b7578cc8 <col:11> 'basic_ostream<char, std::char_traits<char> > &(*)(basic_ostream<char, std::char_traits<char> > &, const char *)' <FunctionToPointerDecay> | | | | | | | | `-DeclRefExpr 0x7f90b7578180 <col:11> 'basic_ostream<char, std::char_traits<char> > &(basic_ostream<char, std::char_traits<char> > &, const char *)' lvalue Function 0x7f90b7573450 'operator<<' 'basic_ostream<char, std::char_traits<char> > &(basic_ostream<char, std::char_traits<char> > &, const char *)' | | | | | | | |-DeclRefExpr 0x7f90b7541678 <col:1, col:6> 'std::ostream':'std::basic_ostream<char>' lvalue Var 0x3cd8690 'cout' 'std::ostream':'std::basic_ostream<char>' | | | | | | | `-ImplicitCastExpr 0x7f90b7578168 <col:14> 'const char *' <ArrayToPointerDecay> | | | | | | | `-StringLiteral 0x7f90b75416a8 <col:14> 'const char [17]' lvalue "Combinations of " | | | | | | `-ImplicitCastExpr 0x7f90b79df9d0 <col:36> 'const RVec<double>':'const ROOT::VecOps::RVec<double>' lvalue <NoOp> | | | | | | `-DeclRefExpr 0x7f90b7578d18 <col:36> 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' lvalue Var 0xaba2d10 'v1' 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' | | | | | `-ImplicitCastExpr 0x7f90b79e1410 <col:42> 'const char *' <ArrayToPointerDecay> | | | | | `-StringLiteral 0x7f90b79dfad8 <col:42> 'const char [6]' lvalue " and " | | | | `-ImplicitCastExpr 0x7f90b79e3c08 <col:53> 'const RVec<double>':'const ROOT::VecOps::RVec<double>' lvalue <NoOp> | | | | `-DeclRefExpr 0x7f90b79e1498 <col:53> 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' lvalue Var 0xabaeff8 'v2' 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' | | | `-ImplicitCastExpr 0x7f90b79e55d0 <col:59> 'const char *' <ArrayToPointerDecay> | | | `-StringLiteral 0x7f90b79e3c90 <col:59> 'const char [2]' lvalue ":" | | `-ImplicitCastExpr 0x7f90b79ed6b8 <col:66, col:71> 'basic_ostream<char, std::char_traits<char> > &(*)(basic_ostream<char, std::char_traits<char> > &)' <FunctionToPointerDecay> | | `-DeclRefExpr 0x7f90b79ed008 <col:66, col:71> 'basic_ostream<char, std::char_traits<char> > &(basic_ostream<char, std::char_traits<char> > &)' lvalue Function 0x7f90b79ec7b8 'endl' 'basic_ostream<char, std::char_traits<char> > &(basic_ostream<char, std::char_traits<char> > &)' (FunctionTemplate 0x3a86148 'endl') | |-ForStmt 0x7f90b7a0c080 <line:5:1, line:7:1> | | |-DeclStmt 0x7f90b79ed950 <line:5:5, col:15> | | | `-VarDecl 0x7f90b79ed890 <col:5, col:14> col:12 used i 'size_t':'unsigned long' cinit | | | `-ImplicitCastExpr 0x7f90b79ed918 <col:14> 'size_t':'unsigned long' <IntegralCast> | | | `-IntegerLiteral 0x7f90b79ed8f8 <col:14> 'int' 0 | | |-<<<NULL>>> | | |-CXXOperatorCallExpr 0x7f90b7a0a6d8 <col:17, col:27> '<dependent type>' '<' | | | |-UnresolvedLookupExpr 0x7f90b7a0a470 <col:18> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x31d1b18 0x31d22b8 0x31d2ab8 0x32010c0 0x3225220 0x322d2d0 0x4ad1a70 0x4ad1f98 0x4ad24d8 0x44dafe8 0x31136b8 0x31bbf60 0x31bd2d8 0x2a99458 0x2a999c0 0x355bfa0 0x355c508 0x355cc10 0x356f2f0 0x356f9a0 0x356ff80 0x35bc050 0x3668c40 0x3777170 0x377f198 0x377f998 0x37837f8 0x3784d18 0x338c138 0x3a32f80 0x3a33a80 0x3b39800 0x3b3a420 0x3b3ae60 0x3b803f8 0x3b80aa0 0x3b80fc8 0x3bc5790 0x3bc5d58 0x3bc61f8 0x3bdfc28 0x3be02e0 0x3c01528 0x3c21b08 0x3c6d328 0x3cdaa80 0x37776c8 0x3d53390 0x3d82100 0x37785b0 0x415f308 0x4160648 0x4176dd8 0x4178b58 0x417a0d8 0x417b658 0x417cbd8 0x3e76728 0x3e88548 0x3f97a00 0x3f985a0 0x3f98f60 0x3f99920 0x3f9a340 0x4032278 0x4032bb8 0x4033528 0x4050268 0x4050778 | | | |-DeclRefExpr 0x7f90b79ed968 <col:17> 'size_t':'unsigned long' lvalue Var 0x7f90b79ed890 'i' 'size_t':'unsigned long' | | | `-CallExpr 0x7f90b79eda10 <col:19, col:27> '<dependent type>' | | | `-CXXDependentScopeMemberExpr 0x7f90b79ed9c8 <col:19, col:22> '<dependent type>' lvalue .size | | | `-DeclRefExpr 0x7f90b79ed988 <col:19> 'auto' lvalue Var 0x7f90b7541108 'v3' 'auto' | | |-UnaryOperator 0x7f90b7a0a730 <col:30, col:31> 'size_t':'unsigned long' postfix '++' | | | `-DeclRefExpr 0x7f90b7a0a710 <col:30> 'size_t':'unsigned long' lvalue Var 0x7f90b79ed890 'i' 'size_t':'unsigned long' | | `-CompoundStmt 0x7f90b7a0c068 <col:35, line:7:1> | | `-CXXOperatorCallExpr 0x7f90b7a0c030 <line:6:5, col:68> '<dependent type>' '<<' | | |-UnresolvedLookupExpr 0x7f90b7a0bce8 <col:60> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | |-CXXOperatorCallExpr 0x7f90b7a0bc48 <col:5, col:58> '<dependent type>' '<<' | | | |-UnresolvedLookupExpr 0x7f90b7a0b900 <col:51> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | | |-CXXOperatorCallExpr 0x7f90b7a0b868 <col:5, col:45> '<dependent type>' '<<' | | | | |-UnresolvedLookupExpr 0x7f90b7a0b520 <col:42> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | | | |-CXXOperatorCallExpr 0x7f90b7a0b4c8 <col:5, col:40> '<dependent type>' '<<' | | | | | |-UnresolvedLookupExpr 0x7f90b7a0b180 <col:33> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | | | | |-CXXOperatorCallExpr 0x7f90b7a0aff8 <col:5, col:27> '<dependent type>' '<<' | | | | | | |-UnresolvedLookupExpr 0x7f90b7a0acb0 <col:24> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | | | | | |-CXXOperatorCallExpr 0x7f90b7a0ac58 <col:5, col:22> '<dependent type>' '<<' | | | | | | | |-UnresolvedLookupExpr 0x7f90b7a0a910 <col:15> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | | | | | | |-DeclRefExpr 0x7f90b7a0a798 <col:5, col:10> 'std::ostream':'std::basic_ostream<char>' lvalue Var 0x3cd8690 'cout' 'std::ostream':'std::basic_ostream<char>' | | | | | | | `-ArraySubscriptExpr 0x7f90b7a0a8f0 <col:18, col:22> '<dependent type>' lvalue | | | | | | | |-DeclRefExpr 0x7f90b7a0a890 <col:18> '<dependent type>' lvalue Var 0x7f90b7a0a7d0 'c1' '<dependent type>' | | | | | | | `-DeclRefExpr 0x7f90b7a0a8d0 <col:21> 'size_t':'unsigned long' lvalue Var 0x7f90b79ed890 'i' 'size_t':'unsigned long' | | | | | | `-StringLiteral 0x7f90b7a0ac90 <col:27> 'const char [4]' lvalue " * " | | | | | `-ArraySubscriptExpr 0x7f90b7a0b160 <col:36, col:40> '<dependent type>' lvalue | | | | | |-DeclRefExpr 0x7f90b7a0b100 <col:36> '<dependent type>' lvalue Var 0x7f90b7a0b038 'c2' '<dependent type>' | | | | | `-DeclRefExpr 0x7f90b7a0b140 <col:39> 'size_t':'unsigned long' lvalue Var 0x7f90b79ed890 'i' 'size_t':'unsigned long' | | | | `-StringLiteral 0x7f90b7a0b500 <col:45> 'const char [4]' lvalue " = " | | | `-ArraySubscriptExpr 0x7f90b7a0b8e0 <col:54, col:58> '<dependent type>' lvalue | | | |-DeclRefExpr 0x7f90b7a0b8a0 <col:54> 'auto' lvalue Var 0x7f90b7541108 'v3' 'auto' | | | `-DeclRefExpr 0x7f90b7a0b8c0 <col:57> 'size_t':'unsigned long' lvalue Var 0x7f90b79ed890 'i' 'size_t':'unsigned long' | | `-UnresolvedLookupExpr 0x7f90b7a0bca0 <col:63, col:68> '<overloaded function type>' lvalue (no ADL) = 'endl' 0x3a86148 | |-CXXOperatorCallExpr 0x7f90b7a0d9e0 <line:8:1, col:19> 'std::basic_ostream<char, std::char_traits<char> >::__ostream_type':'std::basic_ostream<char>' lvalue '<<' | | |-ImplicitCastExpr 0x7f90b7a0d9c8 <col:11> 'std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(*)(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(*)(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &))' <FunctionToPointerDecay> | | | `-DeclRefExpr 0x7f90b7a0d9a8 <col:11> 'std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(*)(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &))' lvalue CXXMethod 0xa787c28 'operator<<' 'std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(*)(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &))' | | |-DeclRefExpr 0x7f90b7a0c108 <col:1, col:6> 'std::ostream':'std::basic_ostream<char>' lvalue Var 0x3cd8690 'cout' 'std::ostream':'std::basic_ostream<char>' | | `-ImplicitCastExpr 0x7f90b7a0d990 <col:14, col:19> 'basic_ostream<char, std::char_traits<char> > &(*)(basic_ostream<char, std::char_traits<char> > &)' <FunctionToPointerDecay> | | `-DeclRefExpr 0x7f90b7a0d958 <col:14, col:19> 'basic_ostream<char, std::char_traits<char> > &(basic_ostream<char, std::char_traits<char> > &)' lvalue Function 0x7f90b79ec7b8 'endl' 'basic_ostream<char, std::char_traits<char> > &(basic_ostream<char, std::char_traits<char> > &)' (FunctionTemplate 0x3a86148 'endl') | `-NullStmt 0x7f90b7a0da48 <line:9:1> |-AnnotateAttr 0x7f90b75411e0 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7541320 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7a0a838 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" `-AnnotateAttr 0x7f90b7a0b0a0 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" <<<NULL>>>
However, if you want to compute operations on unique combinations of a single RVec, you can perform this as follows.
Get the indices of unique triples for the given vector.
ROOT::RVecD v4{1., 2., 3., 4.};
auto idx2 = Combinations(v4, 3);
input_line_55:3:1: error: Syntax error auto idx2 = Combinations(v4, 3); ^ FunctionDecl 0x7f90b7a1d5b0 <input_line_55:1:1, line:5:1> line:1:6 __cling_Un1Qu323 'void (void *)' |-ParmVarDecl 0x7f90b7a1d4f8 <col:23, col:29> col:29 vpClingValue 'void *' |-CompoundStmt 0x7f90b7a1dce0 <col:43, line:5:1> | |-DeclStmt 0x7f90b7a1d980 <line:2:2, col:32> | | `-VarDecl 0x7f90b7a1d6c8 <col:2, col:31> col:14 used v4 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' listinit destroyed | | `-ExprWithCleanups 0x7f90b7a1d948 <col:14, col:31> 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' | | `-CXXConstructExpr 0x7f90b7a1d918 <col:14, col:31> 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' 'void (std::initializer_list<double>)' list std::initializer_list | | `-CXXStdInitializerListExpr 0x7f90b7a1d900 <col:16, col:31> 'std::initializer_list<double>':'std::initializer_list<double>' | | `-MaterializeTemporaryExpr 0x7f90b7a1d8e8 <col:16, col:31> 'const double [4]' xvalue | | `-InitListExpr 0x7f90b7a1d888 <col:16, col:31> 'const double [4]' | | |-FloatingLiteral 0x7f90b7a1d730 <col:17> 'double' 1.000000e+00 | | |-FloatingLiteral 0x7f90b7a1d750 <col:21> 'double' 2.000000e+00 | | |-FloatingLiteral 0x7f90b7a1d770 <col:25> 'double' 3.000000e+00 | | `-FloatingLiteral 0x7f90b7a1d790 <col:29> 'double' 4.000000e+00 | |-DeclStmt 0x7f90b7a1dcc0 <line:3:1, col:32> | | `-VarDecl 0x7f90b7a1d9d8 <col:1, col:31> col:6 idx2 'auto' cinit | | `-CallExpr 0x7f90b7a1dc90 <col:13, col:31> '<dependent type>' | | |-DeclRefExpr 0x7f90b7a1dc10 <col:13> '<dependent type>' lvalue Var 0x7f90b7a1db48 'Combinations' '<dependent type>' | | |-DeclRefExpr 0x7f90b7a1dc50 <col:26> 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' lvalue Var 0x7f90b7a1d6c8 'v4' 'ROOT::RVecD':'ROOT::VecOps::RVec<double>' | | `-IntegerLiteral 0x7f90b7a1dc70 <col:30> 'int' 3 | `-NullStmt 0x7f90b7a1dcd8 <line:4:1> |-AnnotateAttr 0x7f90b7a1dab0 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" `-AnnotateAttr 0x7f90b7a1dbb0 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" <<<NULL>>>
Take the elements and compute any operation on the returned collections.
auto c3 = Take(v4, idx2[0]);
auto c4 = Take(v4, idx2[1]);
auto c5 = Take(v4, idx2[2]);
auto v5 = c3 * c4 * c5;
std::cout << "Unique triples of " << v4 << ":" << std::endl;
for(size_t i=0; i<v4.size(); i++) {
std::cout << c3[i] << " * " << c4[i] << " * " << c5[i] << " = " << v5[i] << std::endl;
}
std::cout << std::endl;
input_line_56:2:2: error: Syntax error auto c3 = Take(v4, idx2[0]); ^ FunctionDecl 0x7f90b7a1de30 <input_line_56:1:1, line:14:1> line:1:6 __cling_Un1Qu324 'void (void *)' |-ParmVarDecl 0x7f90b7a1dd78 <col:23, col:29> col:29 vpClingValue 'void *' |-CompoundStmt 0x7f90b7a25970 <col:43, line:14:1> | |-DeclStmt 0x7f90b7a1e440 <line:2:2, col:29> | | `-VarDecl 0x7f90b7a1df38 <col:2, col:28> col:7 used c3 'auto' cinit | | `-CallExpr 0x7f90b7a1e410 <col:12, col:28> '<dependent type>' | | |-DeclRefExpr 0x7f90b7a1e170 <col:12> '<dependent type>' lvalue Var 0x7f90b7a1e0a8 'Take' '<dependent type>' | | |-DeclRefExpr 0x7f90b7a1e280 <col:17> '<dependent type>' lvalue Var 0x7f90b7a1e1b8 'v4' '<dependent type>' | | `-ArraySubscriptExpr 0x7f90b7a1e3f0 <col:21, col:27> '<dependent type>' lvalue | | |-DeclRefExpr 0x7f90b7a1e390 <col:21> '<dependent type>' lvalue Var 0x7f90b7a1e2c8 'idx2' '<dependent type>' | | `-IntegerLiteral 0x7f90b7a1e3d0 <col:26> 'int' 0 | |-DeclStmt 0x7f90b7a1e970 <line:3:1, col:28> | | `-VarDecl 0x7f90b7a1e498 <col:1, col:27> col:6 used c4 'auto' cinit | | `-CallExpr 0x7f90b7a1e940 <col:11, col:27> '<dependent type>' | | |-DeclRefExpr 0x7f90b7a1e6a0 <col:11> '<dependent type>' lvalue Var 0x7f90b7a1e5d8 'Take' '<dependent type>' | | |-DeclRefExpr 0x7f90b7a1e7b0 <col:16> '<dependent type>' lvalue Var 0x7f90b7a1e6e8 'v4' '<dependent type>' | | `-ArraySubscriptExpr 0x7f90b7a1e920 <col:20, col:26> '<dependent type>' lvalue | | |-DeclRefExpr 0x7f90b7a1e8c0 <col:20> '<dependent type>' lvalue Var 0x7f90b7a1e7f8 'idx2' '<dependent type>' | | `-IntegerLiteral 0x7f90b7a1e900 <col:25> 'int' 1 | |-DeclStmt 0x7f90b7a1eea0 <line:4:1, col:28> | | `-VarDecl 0x7f90b7a1e9c8 <col:1, col:27> col:6 used c5 'auto' cinit | | `-CallExpr 0x7f90b7a1ee70 <col:11, col:27> '<dependent type>' | | |-DeclRefExpr 0x7f90b7a1ebd0 <col:11> '<dependent type>' lvalue Var 0x7f90b7a1eb08 'Take' '<dependent type>' | | |-DeclRefExpr 0x7f90b7a1ece0 <col:16> '<dependent type>' lvalue Var 0x7f90b7a1ec18 'v4' '<dependent type>' | | `-ArraySubscriptExpr 0x7f90b7a1ee50 <col:20, col:26> '<dependent type>' lvalue | | |-DeclRefExpr 0x7f90b7a1edf0 <col:20> '<dependent type>' lvalue Var 0x7f90b7a1ed28 'idx2' '<dependent type>' | | `-IntegerLiteral 0x7f90b7a1ee30 <col:25> 'int' 2 | |-DeclStmt 0x7f90b7a1f4c0 <line:6:1, col:23> | | `-VarDecl 0x7f90b7a1eef8 <col:1, col:21> col:6 used v5 'auto' cinit | | `-CXXOperatorCallExpr 0x7f90b7a1f488 <col:11, col:21> '<dependent type>' '*' | | |-UnresolvedLookupExpr 0x7f90b7a1f270 <col:19> '<overloaded function type>' lvalue (ADL) = 'operator*' 0x3224a60 0x4ada328 0x4ada7c0 0x4adac60 0x4adb198 0x4adb6d8 0x4adbc18 0x44d8c90 0x44d9130 0x44e4e20 0x44e5358 0x44e5898 0x44e5dd8 0x44e6280 0x4adc198 0x4adc6b8 0x4adcc38 0x4add1b8 0x4add738 0x4addc20 0x453a458 0x453a8f0 0x453b580 0x453bf48 0x453c3e0 0x453d070 0x453da48 0x453dee0 0x453eb70 0x453f350 0x453f7f0 0x4540480 0x4540c60 0x4541100 0x4541d90 0x455d850 0x455dc50 0x455e050 0x4529cb0 0x45294d0 0x45298c0 0x452cf08 0x452d180 0x452d3f0 0x452d660 0x47454d8 0x4751d78 0x47535a8 0x3ac7540 0x3ac7a68 0x3ac7f40 0x3f70340 0x3f70ee0 0x3f718a0 0x3f72260 0x3f72c80 0x4020638 0x4020fd8 0x4021948 | | |-CXXOperatorCallExpr 0x7f90b7a1f1f8 <col:11, col:16> '<dependent type>' '*' | | | |-UnresolvedLookupExpr 0x7f90b7a1efe0 <col:14> '<overloaded function type>' lvalue (ADL) = 'operator*' 0x3224a60 0x4ada328 0x4ada7c0 0x4adac60 0x4adb198 0x4adb6d8 0x4adbc18 0x44d8c90 0x44d9130 0x44e4e20 0x44e5358 0x44e5898 0x44e5dd8 0x44e6280 0x4adc198 0x4adc6b8 0x4adcc38 0x4add1b8 0x4add738 0x4addc20 0x453a458 0x453a8f0 0x453b580 0x453bf48 0x453c3e0 0x453d070 0x453da48 0x453dee0 0x453eb70 0x453f350 0x453f7f0 0x4540480 0x4540c60 0x4541100 0x4541d90 0x455d850 0x455dc50 0x455e050 0x4529cb0 0x45294d0 0x45298c0 0x452cf08 0x452d180 0x452d3f0 0x452d660 0x47454d8 0x4751d78 0x47535a8 0x3ac7540 0x3ac7a68 0x3ac7f40 0x3f70340 0x3f70ee0 0x3f718a0 0x3f72260 0x3f72c80 0x4020638 0x4020fd8 0x4021948 | | | |-DeclRefExpr 0x7f90b7a1ef60 <col:11> 'auto' lvalue Var 0x7f90b7a1df38 'c3' 'auto' | | | `-DeclRefExpr 0x7f90b7a1efa0 <col:16> 'auto' lvalue Var 0x7f90b7a1e498 'c4' 'auto' | | `-DeclRefExpr 0x7f90b7a1f230 <col:21> 'auto' lvalue Var 0x7f90b7a1e9c8 'c5' 'auto' | |-CXXOperatorCallExpr 0x7f90b7a21b40 <line:8:1, col:56> '<dependent type>' '<<' | | |-UnresolvedLookupExpr 0x7f90b7a217f8 <col:48> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | |-CXXOperatorCallExpr 0x7f90b7a21758 <col:1, col:44> '<dependent type>' '<<' | | | |-UnresolvedLookupExpr 0x7f90b7a21410 <col:41> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | | |-CXXOperatorCallExpr 0x7f90b7a213b8 <col:1, col:38> '<dependent type>' '<<' | | | | |-UnresolvedLookupExpr 0x7f90b7a21070 <col:35> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | | | |-CXXOperatorCallExpr 0x7f90b7a20f30 <col:1, col:14> 'basic_ostream<char, std::char_traits<char> >':'std::basic_ostream<char>' lvalue '<<' | | | | | |-ImplicitCastExpr 0x7f90b7a20f18 <col:11> 'basic_ostream<char, std::char_traits<char> > &(*)(basic_ostream<char, std::char_traits<char> > &, const char *)' <FunctionToPointerDecay> | | | | | | `-DeclRefExpr 0x7f90b7a20ef8 <col:11> 'basic_ostream<char, std::char_traits<char> > &(basic_ostream<char, std::char_traits<char> > &, const char *)' lvalue Function 0x7f90b7573450 'operator<<' 'basic_ostream<char, std::char_traits<char> > &(basic_ostream<char, std::char_traits<char> > &, const char *)' | | | | | |-DeclRefExpr 0x7f90b7a1f528 <col:1, col:6> 'std::ostream':'std::basic_ostream<char>' lvalue Var 0x3cd8690 'cout' 'std::ostream':'std::basic_ostream<char>' | | | | | `-ImplicitCastExpr 0x7f90b7a20ee0 <col:14> 'const char *' <ArrayToPointerDecay> | | | | | `-StringLiteral 0x7f90b7a1f598 <col:14> 'const char [19]' lvalue "Unique triples of " | | | | `-DeclRefExpr 0x7f90b7a21030 <col:38> '<dependent type>' lvalue Var 0x7f90b7a20f70 'v4' '<dependent type>' | | | `-StringLiteral 0x7f90b7a213f0 <col:44> 'const char [2]' lvalue ":" | | `-UnresolvedLookupExpr 0x7f90b7a217b0 <col:51, col:56> '<overloaded function type>' lvalue (no ADL) = 'endl' 0x3a86148 | |-ForStmt 0x7f90b7a23fd0 <line:9:1, line:11:1> | | |-DeclStmt 0x7f90b7a21c50 <line:9:5, col:15> | | | `-VarDecl 0x7f90b7a21b90 <col:5, col:14> col:12 used i 'size_t':'unsigned long' cinit | | | `-ImplicitCastExpr 0x7f90b7a21c18 <col:14> 'size_t':'unsigned long' <IntegralCast> | | | `-IntegerLiteral 0x7f90b7a21bf8 <col:14> 'int' 0 | | |-<<<NULL>>> | | |-CXXOperatorCallExpr 0x7f90b7a22060 <col:17, col:27> '<dependent type>' '<' | | | |-UnresolvedLookupExpr 0x7f90b7a21df8 <col:18> '<overloaded function type>' lvalue (ADL) = 'operator<' 0x31d1b18 0x31d22b8 0x31d2ab8 0x32010c0 0x3225220 0x322d2d0 0x4ad1a70 0x4ad1f98 0x4ad24d8 0x44dafe8 0x31136b8 0x31bbf60 0x31bd2d8 0x2a99458 0x2a999c0 0x355bfa0 0x355c508 0x355cc10 0x356f2f0 0x356f9a0 0x356ff80 0x35bc050 0x3668c40 0x3777170 0x377f198 0x377f998 0x37837f8 0x3784d18 0x338c138 0x3a32f80 0x3a33a80 0x3b39800 0x3b3a420 0x3b3ae60 0x3b803f8 0x3b80aa0 0x3b80fc8 0x3bc5790 0x3bc5d58 0x3bc61f8 0x3bdfc28 0x3be02e0 0x3c01528 0x3c21b08 0x3c6d328 0x3cdaa80 0x37776c8 0x3d53390 0x3d82100 0x37785b0 0x415f308 0x4160648 0x4176dd8 0x4178b58 0x417a0d8 0x417b658 0x417cbd8 0x3e76728 0x3e88548 0x3f97a00 0x3f985a0 0x3f98f60 0x3f99920 0x3f9a340 0x4032278 0x4032bb8 0x4033528 0x4050268 0x4050778 | | | |-DeclRefExpr 0x7f90b7a21c68 <col:17> 'size_t':'unsigned long' lvalue Var 0x7f90b7a21b90 'i' 'size_t':'unsigned long' | | | `-CallExpr 0x7f90b7a21dd8 <col:19, col:27> '<dependent type>' | | | `-CXXDependentScopeMemberExpr 0x7f90b7a21d90 <col:19, col:22> '<dependent type>' lvalue .size | | | `-DeclRefExpr 0x7f90b7a21d50 <col:19> '<dependent type>' lvalue Var 0x7f90b7a21c90 'v4' '<dependent type>' | | |-UnaryOperator 0x7f90b7a220b8 <col:30, col:31> 'size_t':'unsigned long' postfix '++' | | | `-DeclRefExpr 0x7f90b7a22098 <col:30> 'size_t':'unsigned long' lvalue Var 0x7f90b7a21b90 'i' 'size_t':'unsigned long' | | `-CompoundStmt 0x7f90b7a23fb8 <col:35, line:11:1> | | `-CXXOperatorCallExpr 0x7f90b7a23f80 <line:10:5, col:86> '<dependent type>' '<<' | | |-UnresolvedLookupExpr 0x7f90b7a23c38 <col:78> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | |-CXXOperatorCallExpr 0x7f90b7a23b98 <col:5, col:76> '<dependent type>' '<<' | | | |-UnresolvedLookupExpr 0x7f90b7a23850 <col:69> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | | |-CXXOperatorCallExpr 0x7f90b7a23798 <col:5, col:63> '<dependent type>' '<<' | | | | |-UnresolvedLookupExpr 0x7f90b7a23450 <col:60> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | | | |-CXXOperatorCallExpr 0x7f90b7a233f8 <col:5, col:58> '<dependent type>' '<<' | | | | | |-UnresolvedLookupExpr 0x7f90b7a230b0 <col:51> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | | | | |-CXXOperatorCallExpr 0x7f90b7a23018 <col:5, col:45> '<dependent type>' '<<' | | | | | | |-UnresolvedLookupExpr 0x7f90b7a22cd0 <col:42> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | | | | | |-CXXOperatorCallExpr 0x7f90b7a22c78 <col:5, col:40> '<dependent type>' '<<' | | | | | | | |-UnresolvedLookupExpr 0x7f90b7a22930 <col:33> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | | | | | | |-CXXOperatorCallExpr 0x7f90b7a22898 <col:5, col:27> '<dependent type>' '<<' | | | | | | | | |-UnresolvedLookupExpr 0x7f90b7a22550 <col:24> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | | | | | | | |-CXXOperatorCallExpr 0x7f90b7a224f8 <col:5, col:22> '<dependent type>' '<<' | | | | | | | | | |-UnresolvedLookupExpr 0x7f90b7a221b0 <col:15> '<overloaded function type>' lvalue (ADL) = 'operator<<' 0x31ff2b0 0x42e0ab8 0x42e04e0 0x31fcaa0 0x31fcd10 0x31fcf80 0x31fd1f0 0x31fd460 0x31fd6d0 0x31fd940 0x31fdbb0 0x31fde20 0x31fe090 0x31fe300 0x31fe570 0x31fe7e0 0x31fea50 0x31fecf0 0x32024e0 0x3204960 0x320b828 0x320c558 0x322c2d0 0x322c5e0 0x3235dd8 0x3236d38 0x3237ec8 0x32390e8 0x323a278 0x323b408 0x323d2d0 0x456ff78 0x4572d88 0x2c8acd0 0x2c8b1d8 0x3560d60 0x357e760 0x3997a00 0x3a33180 0x3a82518 0x3a82b58 0x3a83198 0x3a837d0 0x3a83d78 0x3a84328 0x3a8b050 0x3a84fe0 0x3a85588 0x3a85b68 0x3a89d20 0x3aca348 0x3bc1770 0x3bd46d8 0x3c6e2a8 0x3cc6a28 0x3ccb5d8 0x3ccc528 0x3ccd958 0x3cce908 0x3ccf858 0x3cd15f8 0x3cd25c8 0x3da0648 0x3dd1608 0x3dac7f8 0x3dad6f0 0x3dae5f0 0x3db0b40 0x3df9440 0x3db1220 0x3e0ec90 0x3db2120 0x3db3020 0x3db3f20 0x3dbab00 0x3ddc018 0x3dde5d0 0x3de0bd8 0x3defd40 0x3df28c0 0x3df5f50 0x3e02db0 0x3e05870 0x3e099e0 0x3e0c2d0 0x3e1bcc0 0x3e20880 0x3e25370 0x417e158 0x3f8aca0 0x3f8b840 0x3f8c200 0x3f8cbc0 0x3f8d5e0 0x402b138 0x402bad8 0x402c448 | | | | | | | | | |-DeclRefExpr 0x7f90b7a22120 <col:5, col:10> 'std::ostream':'std::basic_ostream<char>' lvalue Var 0x3cd8690 'cout' 'std::ostream':'std::basic_ostream<char>' | | | | | | | | | `-ArraySubscriptExpr 0x7f90b7a22190 <col:18, col:22> '<dependent type>' lvalue | | | | | | | | | |-DeclRefExpr 0x7f90b7a22150 <col:18> 'auto' lvalue Var 0x7f90b7a1df38 'c3' 'auto' | | | | | | | | | `-DeclRefExpr 0x7f90b7a22170 <col:21> 'size_t':'unsigned long' lvalue Var 0x7f90b7a21b90 'i' 'size_t':'unsigned long' | | | | | | | | `-StringLiteral 0x7f90b7a22530 <col:27> 'const char [4]' lvalue " * " | | | | | | | `-ArraySubscriptExpr 0x7f90b7a22910 <col:36, col:40> '<dependent type>' lvalue | | | | | | | |-DeclRefExpr 0x7f90b7a228d0 <col:36> 'auto' lvalue Var 0x7f90b7a1e498 'c4' 'auto' | | | | | | | `-DeclRefExpr 0x7f90b7a228f0 <col:39> 'size_t':'unsigned long' lvalue Var 0x7f90b7a21b90 'i' 'size_t':'unsigned long' | | | | | | `-StringLiteral 0x7f90b7a22cb0 <col:45> 'const char [4]' lvalue " * " | | | | | `-ArraySubscriptExpr 0x7f90b7a23090 <col:54, col:58> '<dependent type>' lvalue | | | | | |-DeclRefExpr 0x7f90b7a23050 <col:54> 'auto' lvalue Var 0x7f90b7a1e9c8 'c5' 'auto' | | | | | `-DeclRefExpr 0x7f90b7a23070 <col:57> 'size_t':'unsigned long' lvalue Var 0x7f90b7a21b90 'i' 'size_t':'unsigned long' | | | | `-StringLiteral 0x7f90b7a23430 <col:63> 'const char [4]' lvalue " = " | | | `-ArraySubscriptExpr 0x7f90b7a23830 <col:72, col:76> '<dependent type>' lvalue | | | |-DeclRefExpr 0x7f90b7a237d0 <col:72> 'auto' lvalue Var 0x7f90b7a1eef8 'v5' 'auto' | | | `-DeclRefExpr 0x7f90b7a23810 <col:75> 'size_t':'unsigned long' lvalue Var 0x7f90b7a21b90 'i' 'size_t':'unsigned long' | | `-UnresolvedLookupExpr 0x7f90b7a23bf0 <col:81, col:86> '<overloaded function type>' lvalue (no ADL) = 'endl' 0x3a86148 | |-CXXOperatorCallExpr 0x7f90b7a25930 <line:12:1, col:19> 'std::basic_ostream<char, std::char_traits<char> >::__ostream_type':'std::basic_ostream<char>' lvalue '<<' | | |-ImplicitCastExpr 0x7f90b7a25918 <col:11> 'std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(*)(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(*)(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &))' <FunctionToPointerDecay> | | | `-DeclRefExpr 0x7f90b7a258f8 <col:11> 'std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(*)(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &))' lvalue CXXMethod 0xa787c28 'operator<<' 'std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &(*)(std::basic_ostream<char, std::char_traits<char> >::__ostream_type &))' | | |-DeclRefExpr 0x7f90b7a24058 <col:1, col:6> 'std::ostream':'std::basic_ostream<char>' lvalue Var 0x3cd8690 'cout' 'std::ostream':'std::basic_ostream<char>' | | `-ImplicitCastExpr 0x7f90b7a258e0 <col:14, col:19> 'basic_ostream<char, std::char_traits<char> > &(*)(basic_ostream<char, std::char_traits<char> > &)' <FunctionToPointerDecay> | | `-DeclRefExpr 0x7f90b7a258a8 <col:14, col:19> 'basic_ostream<char, std::char_traits<char> > &(basic_ostream<char, std::char_traits<char> > &)' lvalue Function 0x7f90b79ec7b8 'endl' 'basic_ostream<char, std::char_traits<char> > &(basic_ostream<char, std::char_traits<char> > &)' (FunctionTemplate 0x3a86148 'endl') | `-NullStmt 0x7f90b7a25968 <line:13:1> |-AnnotateAttr 0x7f90b7a1e010 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7a1e110 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7a1e220 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7a1e330 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7a1e570 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7a1e640 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7a1e750 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7a1e860 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7a1eaa0 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7a1eb70 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7a1ec80 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7a1ed90 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" |-AnnotateAttr 0x7f90b7a20fd8 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" `-AnnotateAttr 0x7f90b7a21cf8 <<invalid sloc>> Implicit R"ATTRDUMP(__ResolveAtRuntime)ATTRDUMP" <<<NULL>>>