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