Насколько полезным было бы наследование конструкторов в C ++?
Пока я сижу на заседаниях комитета по стандартам 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) Существуют ли какие-либо технические причины, по которым вы могли бы помешать «идеальным конструкторам пересылки» стать адекватной альтернативой?
Спасибо!