Остается вопрос: кто прав? GCC прямо здесь. Неквалифицированный поиск имени не ищет зависимые базовые классы, следовательно, не найдет Base
в области действия Base<T>
. Вы также можете изменить свой код на следующий стандартный вариант
Derived():Derived::Base(T()) {}
Если я правильно помню, это поддерживается только GCC4.5. Более ранние версии не реализовывали корректный поиск имени класса.