|  | Home | Libraries | People | FAQ | More | 
The Linestring Concept describes the requirements for a linestring type. All algorithms in Boost.Geometry will check any geometry arguments against the concept requirements.
A linestring is a Curve with linear interpolation between Points. (OGC Simple Feature Specification).
The Linestring Concept is defined as following:
traits::tag
              defining linestring_tag
              as type
            range_value<...>::type
              must fulfill the Point
              Concept
            Besides the Concepts, which are checks on compile-time, there are rules that valid linestrings must fulfill. Most algorithms work on any linestring, so either self-crossing or not. However, for correct results using the overlay algorithms (intersection and difference algorithms in combination with a polygon) self-intersections can disturb the process and result in incorrect results.
| ![[Note]](../../../../../../../doc/src/images/note.png) | Note | 
|---|---|
| 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 Linestring |