Open anancds opened 3 years ago
std::make_tuple() 以及 std::tie() 均可以构造一个 tuple,两者的区别在于前者构造复制,后者创建引用,更准确的说法是后者创建一个左值引用;
std::get() 会解包出来固定位置的值,其返回值是元组内部值的引用;
std::tie() 会解包出来该元组的所有值,不需要的位置可以用占位符 std::ignore 代替,解包数据的数据类型是基本类型而非引用类型;
C++17 引入的 structured binding 方法 auto [_1, _2, _3, ...] 在解包时的表现与 std::tie() 类似。
std::make_tuple() 以及 std::tie() 均可以构造一个 tuple,两者的区别在于前者构造复制,后者创建引用,更准确的说法是后者创建一个左值引用;