I found this question How do boost operators work? , but I still don't understand how this is works.
If I has Point class:
class Point : public boost::operators<Point> {
private:
int x;
int y;
};
operator+ should know everything about Point fields but in what way boost::operators generate operator+(where it adds x and y) if we doesn't have reflection in C++.