【发布时间】:2020-07-23 20:09:35
【问题描述】:
我有一个包含一些元素的元组,我想将元组的一些元素分配给变量,并忽略其中一些。
auto tuple1 = std::make_tuple(1,2,3,4);
// variable a should be placeholder 1 in tuple and variable b should be place holder 3;
int a,b ;
【问题讨论】:
我有一个包含一些元素的元组,我想将元组的一些元素分配给变量,并忽略其中一些。
auto tuple1 = std::make_tuple(1,2,3,4);
// variable a should be placeholder 1 in tuple and variable b should be place holder 3;
int a,b ;
【问题讨论】:
您可以在元组中使用 from std::tie 和 std::ignore ,例如:
int a, b;
tie(std::ignore, a, std::ignore, b)= tuple1;
【讨论】:
如果您使用支持 C++20 的 strutural binding along,您可以编写
#include <tuple>
auto tuple1 = std::make_tuple(1, 2, 3, 4);
[[maybe_unused]] auto [dummy1, a, dummy2, b] = tuple1;
仅使用 a 和 b。 [[maybe_unused]] 部分是为了抑制由于-Wunused-variable 引起的警告。
这实际上是从答案中得到启发的:structured binding with [[maybe_unused]]
【讨论】: