Насколько полезным было бы наследование конструкторов в 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) Есть ли какие-нибудь из них. технические причины, о которых вы можете подумать, которые помешали бы "идеальным конструкторам пересылки" быть адекватной альтернативой?

Спасибо!

31
задан curiousguy 23 December 2011 в 04:44
поделиться