//Purpose: // Test rebind_any // #include #include #include #include #include #include #include #include #include //#define USE_DEMANGLED #ifdef USE_DEMANGLED #include #else #include #endif namespace mpl = boost::mpl; using namespace boost::type_erasure; template struct value { }; int main() { typedef mpl::vector< copy_constructible<_a>, copy_constructible<_b> > ConceptAB; std::cout<<"ConceptAB=" #ifdef USE_DEMANGLED <() #else < >, mpl::pair<_b, value<_b> > > bindings_map_t; static_binding bindings_made=make_binding(); typedef any< ConceptAB, _b > AnyB; std::cout<<"creating b_any\n"; value<_b> b_valu; AnyB b_any(b_valu,bindings_made); typedef binding ab_binding_t; ab_binding_t const& b_binding=binding_of(b_any); std::cout<<"b_binding=" #ifdef USE_DEMANGLED < AnyA; #define CREATE_A #ifdef CREATE_A std::cout<<"creating a_any\n"; value<_a> a_valu; AnyA a_any(b_binding,a_valu); ab_binding_t const&a_binding=binding_of(a_any); std::cout<<"a_binding=" #ifdef USE_DEMANGLED <