
Hi,
I think these macros are unnecessary.
You can do without if you don't like them. Besides that, Boost has many macro's. Personally I also don't like them too much, but for registration purposes they make sense.
Exactly. Macros must be avoided in many cases, but registration is one of the widely accepted use cases. See Boost.Math default policy declarations as one of the many examples. So if the whole point of making a facade that hides the many traits is just to avoid macros for the principle they're bad, I'm afraid I just don't feel the need to do that.
they do not hide implementation details, or simplify type registration beyond what would be possible without macros.
GEOMETRY_REGISTER_POINT_2D(my_point, double, cs::cartesian, x(), y()) Just to be sure, what does it give with your approach? Regards Bruno