Есть структура:
struct Foo
{
int a;
uint b;
};
Она передается какому-нибудь внешнему модулю с помощью функции
void boo(Foo* foo, uint foo_size);
В зависимости от версии интерфейса структура должна меняться, например
// Ver = 0
struct Foo_v0
{
int a;
uint b;
};
// Ver = 1
struct Foo_v1
{
int a;
uint b;
uint c;
};
Перегружать функцию нельзя. Сделал так:
class Foo {};
class Foo_v0 : public Foo
{
public:
int a;
uint b;
};
class Foo_v1 : public Foo
{
public:
int a;
uint b;
uint c;
};
Собственно работает, но хочется узнать побольше вариантов для решения подобного.