Formatter -> BasicFormatter
Add support for noexcept
Implement compatibility with compilers other than clang