unused template compiler warnings
Try to make the linkage internal to force the symbol to not be compiled unless used.
Anonymous namespace apparently can be external linkage but with conflict safe symbol naming.
So the anonymous namespace makes the symbol impossible to access outside the current trnalsation unit but does not actually cause it to be internal linkage.
I really have only a 12% clue what all this means so this topic may not work.