[class.inhctor.init]
Изменение: при
наследовании конструктора конструктор больше не внедряется в производный класс.
Обоснование:
лучшее взаимодействие с другими языковыми функциями.
Влияние на исходную функцию:
действительный код C ++ 2014, в котором используются наследующие конструкторы, может быть недействительным или иметь другую семантику. A, using-declaration
который называет конструктор, теперь делает соответствующие конструкторы базового класса видимыми для инициализации производного класса, а не объявляет дополнительные конструкторы производного класса.
struct A { template<typename T> A(T, typename T::type = 0); A(int); }; struct B : A { using A::A; B(int); }; B b(42L); // now calls B(int), used to call B<long>(long), // which called A(int) due to substitution failure // in A<long>(long).