Each of the range concepts has a corresponding concept checking class in
the file <boost/range/concepts.hpp>.
These classes may be used in conjunction with the Boost
Concept Check library to ensure that the type of a template parameter
is compatible with a range concept. If not, a meaningful compile time error
is generated. Checks are provided for the range concepts related to iterator
traversal categories. For example, the following line checks that the type
T models the Forward
Range concept.

BOOST_CONCEPT_ASSERT((ForwardRangeConcept<T>));

An additional concept check is required for the value access property of
the range based on the range's iterator type. For example to check for a
ForwardReadableRange, the following code is required.