GCC issue: using a member of a base class that depends on a template argument

David Joyner had the history, here is the reason. The problem when compiling B<T> is that its base class A<T> is unknown from the compiler, being a template class, so no way for the compiler to know any members from the base class. Earlier versions did some inference by actually parsing the base template class, … Read more

C++11 allows in-class initialization of non-static and non-const members. What changed?

The short answer is that they kept the linker about the same, at the expense of making the compiler still more complicated than previously. I.e., instead of this resulting in multiple definitions for the linker to sort out, it still only results in one definition, and the compiler has to sort it out. It also … Read more