How to do this is explained in Creating Concept Checking Classes . An example of a concept checking class from the BCCL is the EqualityComparableConcept class. T will the type to be checked. That is, the purpose of EqualityComparableConcept is to make sure that the template argument given for T models the EqualityComparable concept. This means that the instantiated concept checking class must be given as an explicit template argument, as shown below.
Some concepts deal with more than one type.
In this case the corresponding concept checking class will have multiple template parameters. One requirement that is placed on the element type is that it must be Assignable . Although the concept checks are designed for use by generic library implementors, they can also be useful to end users. Sometimes one may not be sure whether some type models a particular concept.