Thorsten Ottosen wrote:
Victor A. Wagner Jr. wrote:
Seems to me that sub_range is a convenience class to describe iterator ranges from ranges or containers that model ForwardRange, from which you can propagate constness.
yup, that's what I thought also
It seems that the problem was caused by the fact that the vc71 generates default operators a bit wierd. The copy-constructor is default generated and so does simply copy the iterators. It seems that the default generated constructor/ assignment for sub_range calls a templated version of iterator_range's construcgtor/ assignment operator
I think this might be a bug in the compiler.
I thought it was intentional. See: void test() { std::string str; // hey, const sub_range. const boost::sub_rangestd::string rng1(str); // whether or not to allow...? boost::sub_rangestd::string rng2 = rng1; } I don't know the answer for sure. Regards, MB http://p-stade.sourceforge.net/