struct T {
	int x, y;
};

T operator + ( T a, T b ) {
	return {a.x + b.x, a.y}; // list initialization
}

/** Два operator + (T, T) одновременно нельзя
int operator + ( T a, T b ) {
	return a.x + b.x;
}
*/

bool operator < ( T a, T b ) {
	return a.y < b.y;
}