boost::type_erasure中is_subconcept测试程序的实现
boost::type_erasure提供了一个is_subconcept模板类,用于检查概念是否满足子概念的要求。is_subconcept将返回一个std::true_type或std::false_type,具体取决于给定两个概念之间的关系。这个测试程序将演示如何使用is_subconcept来确定一个概念是否是另一个概念的子概念。
代码如下:
#include <boost/type_erasure/is_subconcept.hpp>
#include <boost/mpl/vector.hpp>
#include <iostream>
template<class Concept1, class Concept2>
void test_is_subconcept()
{
using namespace boost::type_erasure;
using namespace boost::mpl;
std::cout << typeid(Concept1).name() << " is a subconcept of "
<< typeid(Concept2).name() << "? ";
typedef vector<Concept1> c1;
typedef vector<Concept2> c2;
std::cout <<