#pragma once
template <class Type = double>
class TPoint : private std::pair<Type, Type> {
public:
Type x = &first;
Type y = &second;
TPoint(Type x, Type y) : first(x), second(y) { };
Type& x() { return first; };
Type& y() { return second; };
};
typedef TPoint<> Point;