#include "boost/concept/requires.hpp" #include "boost/concept_check.hpp" #include <iterator> template <typename T> BOOST_CONCEPT_REQUIRES(( ((boost::ForwardIterator<T>)) ((boost::LessThanComparable< typename std::iterator_traits<T>::value_type >)) ), (void) ) bubble_sort(T begin, T end); if I compile this with gcc 4.5.3 I get some error messages which I don't expect to see: z:\BoostRelease\libs\serialization\test\test_zmisc.cpp:13:1: error: * cannot appear in a constant-expression z:\BoostRelease\libs\serialization\test\test_zmisc.cpp:13:1: error: a call to a constructor cannot appear in a constant-expression z:\BoostRelease\libs\serialization\test\test_zmisc.cpp:13:1: error: template argument 1 is invalid z:\BoostRelease\libs\serialization\test\test_zmisc.cpp:13:1: error: template argument 1 is invalid z:\BoostRelease\libs\serialization\test\test_zmisc.cpp:14:28: error: invalid type in declaration before ; token Note this occurs even before the template declaration is invoked. Any insight would be appreciated. Robert Ramey