boostorg/geometry — pull request #171 by mkaravel (2014-10-29 11:52:04+00:00)
Title: Fix/strong type checking for cs template parameter

Implement a strict type checking mechanism for the template parameter of the non-Cartesian coordinate systems. The goal is to allow the instantiation of `bg::cs::spherical`, `bg::cs::geographic`, etc., only when `T` is either `bg::degree` or `bg::radian`.

Note that, even with the stronger type checking mechanism mentioned above, since the coordinate system is never really created when a `bg::model::point<>` is created, it is possible to write something like:
```
bg::model::point > p;
```
By making `bg::model::point<>` derive privately from the coordinate system, the above syntax is no longer accepted (see second commit).