Для форвард-декларации как struct Context;
Основное правило заключается в том, что вы можете использовать его только в тех случаях, когда макет памяти (и, следовательно, функции-члены и члены-данные) не требуется знать в файле, который вы предварительно объявляете.
Возможное исправление:
platform.h
#define WIN32 //For testing reasons
#ifdef WIN32
#include "platform_win32.h"
#endif
#ifdef LINUX
#include "platform_linux.h"
#endif
platform_win32.h
struct Context
{
// win32 specific implementation..
bool win;
}
platform_linux.h
struct Context
{
//Linux specific implementation..
bool lin;
}
main.cc
#include "platform.h"
int main()
{
Context *context = new Context;
context->win=true;
return 0;
}