Skip to content

Latest commit

 

History

History
27 lines (21 loc) · 663 Bytes

File metadata and controls

27 lines (21 loc) · 663 Bytes

boost::concept_check

concept_check是boost的概念检查库,在使用模板错的时候编译器给出的信息一般都看不懂,使用concept_check能使编译器给出的信息易懂一些。

concept的使用很简单,用在一个模板函数里的时候用function_requires:

template <class T>
void generic_library_function(T x)
{
    function_requires< EqualityComparableConcept<T> >();
    // ...
};

在一个模板类里的时候用BOOST_CLASS_REQUIRES:

template <class T>
struct generic_library_class
{
    BOOST_CLASS_REQUIRES(T, EqualityComparableConcept);
    // ...
};