#include <iostream>
#include <tuple>
struct A {
int x;
int y;
};
std::tuple<A, int, double> doSomeThing() {
A a;
a.x = 1;
a.y = 2;
int b = 1;
double c = 0.8;
return {a, b, c};
}
int main() {
std::tuple<A, int, double> ret = doSomeThing();
std::cout << std::get<0>(ret).x << std::endl;
std::cout << std::get<0>(ret).y << std::endl;
std::cout << std::get<1>(ret) << std::endl;
std::cout << std::get<2>(ret) << std::endl;
return 0;
}
#include <iostream>
#include <tuple>
struct A {
int x;
int y;
};
std::tuple<A, int, double> doSomeThing() {
A a;
a.x = 1;
a.y = 2;
int b = 1;
double c = 0.8;
return {a, b, c};
}
int main() {
A a;
int b;
double c;
std::tie(a, b, c) = doSomeThing();
std::cout << a.x << std::endl;
std::cout << a.y << std::endl;
std::cout << b << std::endl;
std::cout << c << std::endl;
return 0;
}
std::tie(std::ignore, b, c) = doSomeThing();
#include <iostream>
#include <tuple>
struct A {
int a;
char b;
double c;
bool operator < (const A& x) {
return std::tie(a, b, c) < std::tie(x.a, x.b, x.c);
}
};
int main() {
A a1 = {3, 'C', 0.3};
A a2 = {2, 'B', 0.2};
std::cout << (a1 < a2) << std::endl;
return 0;
}