The question remains: who is right? GCC is right here. An unqualified name lookup does not consider dependent base classes, so it won’t be Basein Base<T>. You can also change your code to the next standard match option.
Derived():Derived::Base(T()) {}
If I remember correctly, this is only supported by GCC4.5. Earlier versions did not implement a correctly entered class name lookup.
source
share