Есть ряд структур — реализаций некоторого интерфейса.
Используются они только в одном месте каждая. Хочется как-то воспользоваться новыми возможностями языка, чтобы упростить себе написание конструкторов для этих структур (избежать copy/paste всех членов структуры в конструкторе).
struct IInterface
{
IInterface() {}
virtual ~IInterface() {}
virtual int foo () =0;
//...
};
struct Implementation : IInterface
{
int a;
double b;
int foo () { return a; }
// ...
};
Implementation a { 1, 3.14 }; // при наличии наследование - не работает.
Пока небыло наследования, я использовал С-ю инициализацию структур. Все работало. Нельзя ли как-то исхитриться применить тоже прием к реализации интерфейса?