Is this a bug or am I expecting it to do something that it shouldn't?
Does anyone know a workaround for this (at least temporarily)?
Compiler: VC 7.1
boost: 1.33.0
Description:
The "base" function for reverse iterators in the pointer container classes
do not return the underlying iterator type as expected. It appears that
"base" returns a reverse iterator instead. This is not specific with
ptr_vector. All the pointer containers seem to have this problem.
#include
void sample()
{
// the type of the vector does not matter for this
typedef boost::ptr_vector<DWORD> boostvector;
boostvector boostvec;
boostvector::reverse_iterator rboostIt = boostvec.rbegin();
// The following line does NOT compile.
boostvector::iterator boostIt = rboostIt.base();
// For comparison of code that DOES compile
typedef std::vector<DWORD> stdvector;
stdvector stdvec;
stdvector::reverse_iterator rstdIt = stdvec.rbegin();
// The following line DOES compile.
stdvector::iterator stdIt = rstdIt.base();
}