Con el proposito de aprender estructura de datos estoy haciendo una clase para tener una especie de lista enlazadas , estoy usando template y como todos sabemos los templates se deben definir dentro del mismo header(c++98) entonces le cuento tengo una estructura llamado nodo que esta basada en plantilla y tiene de variables , un puntero al nodo siguiente y el dato a almacenar en esa instancia, luego tengo la clase lista que tiene el nodo a la cabeza de node y tengo una funcion que me devuelve un nodo
el problema me lo da al compilar
es el siguiente :
../src/LinkList.h:66:50: error: invalid cast from type ‘Object’ to type ‘void*’
head_traits = (T) createNode((void *)data);
me gustaira saber si hay perdidas de datos cuando forzo a compilar con static_cast<void *> , el codigo solo compilar si uso eso si no es otra cosa. dejare el codigo...
Código
#define DEBUG 1 Node_traits<void*>* createNode(void *cr_dat) { #ifdef DEBUG clog << "__FUNCTION__"<<__FUNCTION__<<endl; #endif Node_traits<void*> *ret = new Node_traits<void*>(); memcpy(ret->data, cr_dat, sizeof(cr_dat)); ret->next_ptr_traits = NULL; return ret; } template<class T> struct Link_List { int cnt; Node_traits<T> *head_traits; void CreateList(T data) { head_traits = (T) createNode((void *)data); } };
gracias de antemano.!!