buenas:
estamos haciendo una interfaz para poder cambiar en un proyecto entre std::map o std::vector.
Para ello estamos haciendo un objeto que contendra a uno de estos, y dispondrá de todos los metodos del mapa, para que, una vez implementado , podamos alterar solo el interfaz sin que el proyecto sea afectado.
Esto va bien:
template <class Key, class T, class Compare = less<Key>, class Allocator = allocator<pair<const Key,T> > >
class CMAP
{
public:
map<Key,T,Compare,Allocator > Internal;
unsigned int size() const
{
return Internal.size();
};
T& operator[](const Key& k)
{
return Internal[k];
}
void clear()
{
Internal.clear();
}
};
Por ahora va bien, pero me esta dando un problema al intentar devolver un iterador.
map<Key,T,Compare,Allocator >::iterator begin()
{
return Internal.begin();
}
el compilador me devuelve:
Error[Pe757]: nontype "map<_Kty, _Ty, _Pr, _Alloc>::iterator [with _Kty=Key, _Ty=T, _Pr=Compare, _Alloc=Allocator]" is not a type name
como puedo hacer para devolver iteradores con los tipos correctos?
gracias!!!