#ifndef __TEST__
#define __TEST__
namespace std
{
template<typename T>
class list;
}
template<typename T>
void Pop(std::list<T> * l)
{
while(!l->empty())
l->pop();
}
#endif
y usé esa función en mi principal. Obtengo errores Por supuesto, sé que hay más parámetros de plantilla para std::list
(asignador creo). Pero eso no viene al caso. ¿Tengo que saber la declaración de plantilla completa de una clase de plantilla para poder reenviarla?¿Cómo reenviar declarar una clase de plantilla en el espacio de nombres std?
EDITAR: No estaba usando un puntero antes, era una referencia. Lo probaré con el puntero.
Y en el caso de la lista, el segundo parámetro es un parámetro predeterminado que es 'std :: allocator' –
nakiya
. Se puede considerar como un descuido que el STL no contiene encabezados de declaración directa. Por otro lado, sus archivos se incluyen tan a menudo que probablemente no produzca ningún beneficio en el tiempo de compilación ... –
'__TEST__' es un identificador reservado, [no lo use] (http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-ac-identifier). – GManNickG