Я нахожусь в реальной ситуации ... Мне нужно портировать код, который имеет много взаимозависимых классов и использует пространства имен, чтобы избежать включений. Это работает в MSVC , но я не могу найти способ справиться с этой ситуацией в GCC : (
Содержимое файла myString.h :
#include "baseBuffer.h"
//I can't forward declare a base class, so I have to include its header
namespace test
{
class MY_ALLOCATOR
{
static const unsigned int LIMIT = 4096;
class myBuffer : public BaseBuffer<LIMIT>
{
//...
}
};
template <class T, typename ALLOC = MY_ALLOCATOR> class myContainer
{
//...
}
typedef myContainer<char> myString;
}
Содержимое файла baseBuffer.h :
#include "myObject.h"
//#include "myString.h"
//I can't include **myString.h**, because it includes this header file and I can't seem to find a way to use forward declaration of **myString** class...
namespace test
{
template <uint limit> class BaseBuffer : public MyObject
{
public:
myString sData;
//...
}
}
Пожалуйста, помогите!