Hi, Here's some code for the validator class, in iterator_adaptors.hpp:
// line 741 // This is really a partial concept check for iterators. Should it // be moved or done differently? template <class Category, class Value, class Difference, class Pointer, class Reference> struct validator { BOOST_STATIC_CONSTANT( bool, is_input_or_output_iter = (boost::is_convertible<Category*,std::input_iterator_tag*>::value | boost::is_convertible<Category*,std::output_iterator_tag*>::value)); // Iterators should satisfy one of the known categories BOOST_STATIC_ASSERT(is_input_or_output_iter); // Iterators >= ForwardIterator must produce real references // as required by the C++ standard requirements in Table 74. BOOST_STATIC_CONSTANT( bool, forward_iter_with_real_reference = ((!boost::is_convertible<Category*,std::forward_iterator_tag*>::value) | boost::is_same<Reference,Value&>::value | boost::is_same<Reference,typename add_const<Value>::type&>::value)); BOOST_STATIC_ASSERT(forward_iter_with_real_reference); }; When creating the STATIC_CONSTANTs, was "|" what was meant, or was "||" meant to be there, like this: BOOST_STATIC_CONSTANT( bool, is_input_or_output_iter = (boost::is_convertible<Category*,std::input_iterator_tag*>::value || boost::is_convertible<Category*,std::output_iterator_tag*>::value)); ...etc. Best, John -- John Torjo -- "Practical C++" column writer for builder.com.com Freelancer, C++ consultant mailto:[EMAIL PROTECTED] _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost