MB wrote:
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.
Can you assing a const vector<T> to a mutable vector<T>? -Thorsten