Prelude:std :: ignore z powiązaniami strukturalnymi?
std::tuple<int, int, int> f();
std::tuple<int, int, float, int> g();
C++ 1z wprowadzi składni powiązań strukturalnych, które umożliwi napisać zamiast
int a, b, c;
std::tie(a, b, c) = f();
coś podobnego
auto [a, b, c] = f();
jednak std::tie
także można podać std::ignore
, aby zignorować niektóre komponenty, np .:
std::tie(a, b, std::ignore, c) = g();
będzie to możliwe, aby zrobić coś podobnego przy użyciu nowej składni powiązań strukturyzowane? Jak by to działało?
Po prostu umieść tam dowolną nazwę. –
@ n.m. czy dowolna nazwa nie utworzy kopii? –
@Piotr Nie więcej kopii niż z 'std :: ignore', myślę.Ponieważ mamy gwarancję kopiowania, inicjowana jest zmienna obojętna; z 'std :: tie', inicjowany jest tymczasowy, który znajduje się w rhs przypisania do' std :: ignore'. – j6t