https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60796
--- Comment #4 from Daniel Vollmer <zerolo at gmail dot com> --- The relevant clang issue seems to be https://llvm.org/bugs/show_bug.cgi?id=22763 In my case, I have the "extern template" declaration in the header for the corresponding template, thus preventing any implicit instantiations and then leading to the linker errors with the missing "= default;" methods because the explicit instantiation doesn't generate them.