Forward declara o typedef público de uma classe em c ++
Estou tentando simplificar um monte de arquivos de cabeçalho "inclua espaguete" usando declarações de encaminhamento e movendo #includes para o arquivo de implementação. No entanto, continuo abordando o seguinte cenário:
//Foo.h
#include "Bar.h"
class Foo
{
public:
void someMethod(Bar::someType_t &val);
};
//Bar.h
.
.
.
class Bar
{
public:
typedef std::vector<SomeClass> someType_t;
};
Quero remover #include "Bar.h" no maior número possível de casos. Também vejo a situação em que o typedef em Bar.h está listado fora da classe Bar. Suponho que ambas as situações possam ser tratadas da mesma maneir
Alguma ideia