Listing 3
class B
{
BEGIN_REFLECTION(B)
END_REFLECTION
};
class X : virtual public B
{
BEGIN_REFLECTION(X)
DEF_REFLECTED_VIRTUAL_BASECLASS(B)
END_REFLECTION
};
class Y : virtual public B
{
BEGIN_REFLECTION(Y)
DEF_REFLECTED_VIRTUAL_BASECLASS(B)
END_REFLECTION
};
class Z : public B
{
BEGIN_REFLECTION(Z)
DEF_REFLECTED_BASECLASS(B)
END_REFLECTION
};
class AA : public X, public Y, public Z
{
BEGIN_REFLECTION(AA)
DEF_REFLECTED_BASECLASS(X)
DEF_REFLECTED_BASECLASS(Y)
DEF_REFLECTED_BASECLASS(Z)
END_REFLECTION
};
std::cout << getRecordDesc(AA());