MCPcopy Create free account
hub / github.com/changkun/modern-cpp-tutorial / main

Function main

code/4/4.3.cpp:45–77  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

43}
44
45int main()
46{
47 auto student = get_student(0);
48 std::cout << "ID: 0, "
49 << "GPA: " << std::get<0>(student) << ", "
50 << "成绩: " << std::get<1>(student) << ", "
51 << "姓名: " << std::get<2>(student) << '\n';
52
53 double gpa;
54 char grade;
55 std::string name;
56
57 // 元组进行拆包
58 std::tie(gpa, grade, name) = get_student(1);
59 std::cout << "ID: 1, "
60 << "GPA: " << gpa << ", "
61 << "成绩: " << grade << ", "
62 << "姓名: " << name << '\n';
63
64
65 std::tuple<std::string, double, double, int> t("123", 4.5, 6.7, 8);
66 std::cout << std::get<std::string>(t) << std::endl;
67 // std::cout << std::get<double>(t) << std::endl; // 非法, 引发编译期错误
68 std::cout << std::get<3>(t) << std::endl;
69
70 // 拼接元组
71 auto new_tuple = std::tuple_cat(get_student(1), std::move(t));
72
73 // 迭代
74 for(int i = 0; i != tuple_len(new_tuple); ++i)
75 // 运行期索引
76 std::cout << tuple_index(i, new_tuple) << std::endl;
77}

Callers

nothing calls this directly

Calls 3

get_studentFunction · 0.85
tuple_lenFunction · 0.85
tuple_indexFunction · 0.85

Tested by

no test coverage detected