[C con Clase] Plantillas en C++

Salvador Pozo salvador en conclase.net
Mie Mayo 16 17:30:22 CEST 2007


El pasado 2007-05-16 13:53:10, lsri8088 escribió:
 
l> Hola, a ver si podeis ayudarme... ya no se que hacer... soy lago
l> novato en C++ :-(
l> ...
l> template <class T, bool(*FunMenor)(const T&, const T&)> class AVL;
l> ...
l>     friend class AVL<T,FunMenor)>;  //linea 29
l> ...
l> Y me da estos errores:
l> [C++ Error] UAVL.h(29): E2451 Undefined symbol 'FunMenor'
l> [C++ Error] UAVL.h(29): E2401 Invalid template argument list
l> [C++ Error] UAVL.h(29): E2061 Friends must be functions or classes

Hola:

Entiendo, por la declaración de la plantilla de AVL, que FunMenor es una plantilla de función. No incluyes el prototipo de esta plantilla, y ese es el primer error, el tercero, y sospecho que también el segundo, que marca el compilador.

El prototipo para esa plantilla es:

template<class T> bool FunMenor(const T&, const T&);

Hay otro error, pero supungo que es de transcripción: sobra un ')' en la declaración "friend", debería ser:

    friend class AVL< T,FunMenor >;

O también:

    friend class AVL< T,FunMenor<> >;

Hasta pronto.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


Más información sobre la lista de distribución Cconclase