extern template stops N translation units instantiating the same template; the thin-template idiom (type-erased core + small typed shell) keeps generic APIs from exploding binaries — chronic concerns on embedded targets.
// lib.hexterntemplateclassParser<Utf8>; // declared: don't instantiate here// lib.cpptemplateclassParser<Utf8>; // the one instantiation
Concepts move overload resolution to constraints (fewer instantiation attempts); modules cut parse cost, not object size — the erased-core idiom still earns its keep.