In our project, NAMEOF_TYPE and NAMEOF almost do not add time relative to the entire project.
But NAMEOF_ENUM can add a couple of seconds to large enums.
It probably uses stringification under the hood, but then relies on constexpr to "canonicalize" the name (removing everything before the dot, template parameters etc).
From cursory reading, it seems it doesn’t, at all. It uses compiler-specific predefined values __PRETTY_FUNCTION__ (gcc, clang) or __FUNCSIG__ (MS Visual C++), and doesn’t work on other compilers.
It also has to do work to extract the function name from the char arrays/C strings that those macros expand to.
Actually, __FUNCTION__ won't work as it only expands to the name of the function, not any templates or arguments.
It's actually a pretty clever way to automagically deduce not only names of variables but also of enums :). Too bad it's most likely not maintainable in the long run as compilers probably change what their __PRETTY_FUNCTION__ (or equivalent) macros expand to in new versions.
I do wonder how much this would impact compile-times if used moderately in a large code-base.