If you make one small change to this file you can cause clang and gcc to both prevent this from compiling if you are using warnings.
namespace {
void NeverCalled() { Do = EraseAll; }
}
or marking NeverCalled as static itself.Results in warning: unused function NeverCalled.
In general this is best practice for functions defined and used in a single translation unit.