
AMDG I've just committed an updated version of my type_erasure library to the sandbox at http://svn.boost.org/svn/boost/sandbox/type_erasure. Highlights of this version: * Simplified primitive concept definitions. Now, all it takes is: template<class T = _self> struct incrementable { static void apply(T& t) { ++t; } }; * Support for associated types and same_type. This allows defining iterator concepts in a uniform way: typedef mpl::vector< forward_iterator<>, same_type<forward_iterator<>::value_type, _a>, copy_constructible<_a>, typeid_<_a>
concept;
std::vector<int> vec(10); for(any<concept> first(vec.begin()), last(vec.end()); first != last; ++first) { std::cout << any_cast<int&>(*first) << std::endl; } Now, _a automatically binds to int. The core library is now feature complete. Once I finish updating the iterator concepts, I think this should be ready for a formal review. Any thoughts, comments, or criticism is greatly appreciated. In Christ, Steven Watanabe