Ist die folgende Verwendung von innerhalb main
sicher? Ich glaube, die Bindung von mk_pair
hat seine Lebensdauer auf die von verlängert, aber wie wäre es mit den temporären Objekten von Wrap{1}
und Wrap{2}
erstellt?Lebensdauer eines temporären mit temporären Teilausdrücken, gebunden an eine Referenz
struct Wrap { int &&x; };
struct Pair { Wrap &&w1, &&w2; };
Pair mk_pair(Wrap &&w1, Wrap &&w2) { return Pair{std::move(w1),std::move(w2)}; }
int main(int argc, char *argv[])
{
Pair &&p = mk_pair(Wrap{1},Wrap{2});
std::cout << p.w1.x << ' ' << p.w2.x << '\n';
return 0;
}