I've been trying for quite a long time to pass a private struct, defined inside another struct, as a parameter to a function, but I always get the same error:
`cmt.h:17:85: error: expected identifier before ‘struct’
template<typename C, typename D, typename T> bool existeClaveI(typename CMT<C,D,T>::struct Nodo *nodo, const C& clave);
cmt.h:17:85: error: expected ‘(’ before ‘struct’
cmt.h:17:104: error: expected primary-expression before ‘const’
template<typename C, typename D, typename T> bool existeClaveI(typename CMT<C,D,T>::struct Nodo *nodo, const C& clave);´
My main struct is defined this way:
template<typename C, typename D, typename T> struct CMT{
//friends...
friend bool existeClave<C,D,T> (CMT<C,D,T>& cmt, const C& clave);
friend bool existeClaveI<C,D,T> (typename CMT<C,D,T>::struct Nodo *nodo, const C& clave);
private:
struct Nodo{
C clave;
D dato;
T tiempo;
bool tieneTiempo;
struct Nodo *izquierda;
struct Nodo *derecha;
};
int numNodos;
struct Nodo *raiz;
Pila<struct Nodo*> iterador;
};
This is the function existeClaveI itself:
template<typename C, typename D, typename T>
bool existeClaveI(typename CMT<C,D,T>::struct Nodo *nodo, const C& clave){
...
}
How's the write way of specifying the parameters? Thanks a lot!!