2012-05-09 12 views
6

En la siguiente líneaerror de tipo incompleta sobre el uso de impulso :: enable_shared_from_this

class Symbol : public boost::enable_shared_from_this<Symbol> {

me sale el error:

error: Uso no válido de tipo incompleto struct boost::enable_shared_from_this<Symbol> /usr/include/impulso/smart_ptr/shared_ptr.hpp: 63: error: declaración de struct boost::enable_shared_from_this<Symbol>

Alguna idea de por qué estoy recibiendo este error. El símbolo es una clase abstracta (si eso importa)

+0

Quiero pasar un shared_ptr a 'this' a funciones que toman impulso :: shared_ptr . Utilicé la idea de http://stackoverflow.com/questions/712279/what-is-the-usefulness-of-enable-shared-from-this –

+1

@JerryCoffin: Er, está * específicamente * diseñado para ser una clase base . –

+1

@CatPlusPlus: Vaya, está bien. Creo que debería haberlo mirado antes de saltar ... –

Respuesta

10

Opps. El error fue porque no incluí el encabezado que define enable_shared_from_this (que es boost/enable_shared_from_this.hpp).

Sólo se declaró en /usr/include/boost/smart_ptr/shared_ptr.hpp

Cuestiones relacionadas