What you want cannot work in any form or form, because you can legally do
extern const char foo[];
template <const char* err> class broken {};
broken<foo> tisbroken;
and foodo not have to be defined in the current TU (or anywhere else in this case) for compilation.
ODR err foo , foo - undefined, .
, , , .