#include <iostream>
#include <vector>
#include <iterator>
template < typename _Tp, typename _Alloc = std:: allocator < _Tp> >
class PtrVector
{
private :
typedef std:: vector < _Tp, _Alloc> VectrorT;
typedef typename std:: vector < _Tp, _Alloc> VT;
public :
typename std:: vector < _Tp, _Alloc> :: const_iterator test( ) { }
VT:: const_iterator test2( ) { } // why there is error here?
} ;
int main( ) {
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGl0ZXJhdG9yPgoKCnRlbXBsYXRlPHR5cGVuYW1lIF9UcCwgdHlwZW5hbWUgX0FsbG9jID0gc3RkOjphbGxvY2F0b3I8X1RwPiA+CmNsYXNzIFB0clZlY3Rvcgp7CnByaXZhdGU6CiAgICB0eXBlZGVmIHN0ZDo6dmVjdG9yPF9UcCwgX0FsbG9jPiBWZWN0cm9yVDsKICAgIHR5cGVkZWYgdHlwZW5hbWUgc3RkOjp2ZWN0b3I8X1RwLCBfQWxsb2M+IFZUOwoKcHVibGljOgoKICAgIHR5cGVuYW1lIHN0ZDo6dmVjdG9yPF9UcCwgX0FsbG9jPjo6Y29uc3RfaXRlcmF0b3IgdGVzdCgpe30KICAgIFZUOjpjb25zdF9pdGVyYXRvciB0ZXN0Migpe30JLy8gd2h5IHRoZXJlIGlzIGVycm9yIGhlcmU/Cgp9OwoKCmludCBtYWluKCkgewoJcmV0dXJuIDA7Cn0=
compilation info
prog.cpp:17:5: error: need ‘typename’ before ‘PtrVector<_Tp, _Alloc>::VT::const_iterator’ because ‘PtrVector<_Tp, _Alloc>::VT’ is a dependent scope
VT::const_iterator test2(){} // why there is error here?
^
stdout