Estoy haciendo un contenedor un poco especial basado en varios std::vector y estoy haciendo también una clase auxiliar Iterator para el mismo, similar a los iteradores de STL.
El problema es que tengo lo siguiente:
template <class T> class DataGrid;
template <class T>
class Iterator
{
private:
vector<T*>::iterator mIter;
DataGrid<T>& mGrid;
int mCurrentCol;
};
y me da los siguientes errores en la línea de mIter:
error C2146: syntax error : missing ';' before identifier 'mIter'
error C2501: 'Sexy::Iterator::mIter' : missing storage-class or type specifiers
Si cambio el parámetro de vector de T* a int compila sin problemas. Sabéis qué puede estar pasando?
¿Y si pones...
typedef T* Iptr;
typedef std::vector<Iptr> Ivec;
Ivec::iterator mIter;
...en qué punto te da el error?
PD: Comprueba los includes y los usings. Parece que el compilador desconoce algún símbolo.
Nah, al final he puesto el tipo que necesitaba y ya está, porque ha acabado siendo algo demasiado específico para molestarse en templatizarlo.
Jejeje... la solución más rápida :rolleyes:
The KISS rule ;)