classi base virtuali vengono inizializzati nella classe più derivata, quindi la mia ipotesi è che ereditare il costruttore della classe di base dovrebbe funzionare così:Ereditare costruttori di classi base virtuali
struct base {
base(int) {}
};
struct derived: virtual base {
using base::base;
};
derived d(0);
Tuttavia, questo non riesce a compilare con GCC 5.2.0, che cerca di trovare base::base()
, ma funziona bene con Clang 3.6.2. È un bug in GCC?
rilevanti: http://stackoverflow.com/questions/2126522/c-virtual-inheritance – SingerOfTheFall