В С++ 0x вы можете использовать ключевое слово using для наследования конструкторов, например:
class B { B(int) {} };
class A : public B { using B::B; };
который неявно объявит конструктор A(int). Это работает с шаблонами?
class B { B(int) {} };
template<class T> class A : public T { using T::T; };
Внутри T::T я ожидаю, что компилятор вычислит левую руку T, так как использование оператора области действия в аргументах шаблона является нормальным, но выяснение того, что правая сторона T является конструктором, является частным случаем. На самом деле возникает двусмысленность: что делать, если у меня есть метод под названием T в B, который я пытаюсь добавить в A перегрузки (что как компилятор интерпретирует такое использование объявления pre-C + + 0x)?