Commit 8c822b1eb4d4fa9121048f79922dc23a8336c22b
1 parent
28f14253
Added two examples of dealing with tuples
Showing
1 changed file
with
17 additions
and
6 deletions
examples11/06-template_metaprogramming/testvector.cpp
| ... | ... | @@ -14,13 +14,24 @@ int main() { |
| 14 | 14 | a.push_back("5"); |
| 15 | 15 | a.push_back("6"); |
| 16 | 16 | a.push_back("7"); |
| 17 | - a.reserve(11); // to avoid reallocation and reference invalidation | |
| 18 | - auto [x, y, z] = a.push_back("8", "9", "10"); | |
| 17 | + a.reserve(10); // to avoid reallocation and reference invalidation | |
| 18 | + | |
| 19 | + std::tuple<string&, string&, string&> c = a.push_back("8", "9", "10"); | |
| 20 | + | |
| 19 | 21 | printvector(a); |
| 20 | - x = "108"; | |
| 21 | - y = "109"; | |
| 22 | - z = "110"; | |
| 23 | - string arg = "11"; | |
| 22 | + | |
| 23 | + get<0>(c) = "108"; | |
| 24 | + get<1>(c) = "109"; | |
| 25 | + get<2>(c) = "110"; | |
| 26 | + | |
| 27 | + printvector(a); | |
| 28 | + | |
| 29 | + a.reserve(12); | |
| 30 | + auto [x, y] = a.push_back("11", "12"); | |
| 31 | + x = "111"; | |
| 32 | + y = "112"; | |
| 33 | + | |
| 34 | + string arg = "13"; | |
| 24 | 35 | a.push_back(arg); |
| 25 | 36 | b = a; |
| 26 | 37 | printvector(b); | ... | ... |