http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57728
--- Comment #2 from Bruce Merry <bmerry at gmail dot com> --- (In reply to Jonathan Wakely from comment #1) > The explicit instantiation declaration suppresses the definition of > A<int>::A() in defaulted.o, but the explicit instantiation definition > doesn't cause that symbol to be emitted in impl.o, so when that constructor > is not inlined there is no definition. That's more or less what I figured was happening. Can you clarify whether you think this a GCC bug or just me misunderstanding the language? Thanks.