I found an answer for a forward declaration of a typedef in C++ (https://stackoverflow.com/a/2095798). But my situation looks like this:
// a.h
typedef struct{
unsigned char bah0 : 1;
unsigned char bah1 : 1;
unsigned char bah2 : 1;
unsigned char bah3 : 1;
unsigned char bah4 : 1;
unsigned char bah5 : 1;
unsigned char bah6 : 1;
unsigned char bah7 : 1;
} bah;
// b.h
typedef struct bah; // Error: using typedef-name 'bah' after struct
class foo {
foo(bah b);
bah mBah;
};
// b.cpp
#include "b.h"
#include "a.h"
foo::foo(bah b)
{
mBah = b;
}
and I am not allowd to change anything in a.h
and I want to avoid including a.h
in b.h
. How can I avoid this error or what is the right way to forward declarte bah in this situation?
Thany you! Zlatan