...one of the most highly
regarded and expertly designed C++ library projects in the
world. — Herb Sutter and Andrei
The Ring Concept describes the requirements for a ring type. All algorithms in Boost.Geometry will check any geometry arguments against the concept requirements.
Also called linear ring, but we explicitly refer to a filled feature here
The Ring Concept is defined as following:
range_value<...>::typemust fulfill the Point Concept
traits::point_orderdefining the order or orientation of its points,
traits::closuredefining the closure,
Besides the Concepts, which are checks on compile-time, there are rules that valid rings must fulfill. See the Polygon Concept for more information on the rules a polygon (and also a ring) must fulfill.
See also the sample in the Boost.Range documentation showing how a type can be adapted to a Boost.Range to fulfill the concept of a Ring