Пока я сижу на заседаниях комитета по стандартам C ++, они обсуждают плюсы и минусы отказа от Наследующих конструкторов , поскольку ни один поставщик компиляторов еще не реализовал его (смысл в том, что пользователи не спрашивали для этого).
Позвольте мне быстро напомнить всем, что такое наследующие конструкторы:
struct B
{
B(int);
};
struct D : B
{
using B::B;
};
Некоторые поставщики предлагают, чтобы с помощью ссылок на r-значения и вариативных шаблонов (идеальных конструкторов пересылки) было бы тривиально предоставить конструктор пересылки в наследующем классе, который бы избежать наследования конструкторов.
Например:
struct D : B
{
template<class ... Args>
D(Args&& ... args) : B(args...) { }
};
У меня два вопроса:
1) Можете ли вы предоставить реальные (не надуманные) примеры из вашего опыта программирования, которые значительно выиграют от наследования конструкторов?
2) Есть ли какие-нибудь из них. технические причины, о которых вы можете подумать, которые помешали бы "идеальным конструкторам пересылки" быть адекватной альтернативой?
Спасибо!