https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67054
--- Comment #2 from Martin Hierholzer <martin.hierholzer at desy dot de> --- I stumbled across this bug, too (and asked about it on stackoverflow, since I wasn't sure if it's valid C++11, see http://stackoverflow.com/questions/40932844/constructor-inheritance-and-direct-member-initialisation). This problem is still there in gcc 6.2.0. The code compiles, if one adds a default constructor to NonDefault, despite that default constructor never gets called in the end. (This can be used as a work-around).