Declarações de encaminhamento e shared_ptr
Estou tentando refatorar meu código para usar declarações antecipadas em vez de incluir muitos cabeçalhos. Eu sou novo nisso e tenho uma pergunta sobre boost :: shared_ptr.
Digamos que eu tenha a seguinte interface:
#ifndef I_STARTER_H_
#define I_STARTER_H_
#include <boost/shared_ptr.hpp>
class IStarter
{
public:
virtual ~IStarter() {};
virtual operator()() = 0;
};
typedef boost::shared_ptr<IStarter> IStarterPtr;
#endif
Eu então tenho uma função em outra classe que usa um objeto IStarterPtr como argumento, digamos:
virtual void addStarter(IStarterPtr starter)
{
_starter = starter;
}
...
IStarterPtr _starter;
Como faço para encaminhar declarar IStarterPtr sem incluir IStarter.h?
Estou usando o C ++ 98 se isso for relevante.