Fixed namespace versioning to not rely on C++20 Instead of kblib::inline V000400_111::x the namespace is now KBV000400_111::x with an alias to kblib::. Symbols are also now (if my math is right) 8 characters longer instead of 15, which is a bit of an improvement. Unfortunately the preprocessor can't do actual math in #defines so I can't do much better than that without more work than it's worth. KBLIB_NS has also been added to PREDEFINED in Doxyfile which fixes the generated documentation, so KBLIB_NS no longer appears. I added the other feature guard macros while I was at it.