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,13 +14,24 @@ int main() { | ||
| 14 | a.push_back("5"); | 14 | a.push_back("5"); |
| 15 | a.push_back("6"); | 15 | a.push_back("6"); |
| 16 | a.push_back("7"); | 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 | printvector(a); | 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 | a.push_back(arg); | 35 | a.push_back(arg); |
| 25 | b = a; | 36 | b = a; |
| 26 | printvector(b); | 37 | printvector(b); |