Add formatter for std::exception (#3062)

Co-authored-by: fekir <federico.kircheis@gmail.com>
Co-authored-by: Alexey Ochapov <alexez@alexez.com>
Co-authored-by: Vladislav Shchapov <vladislav@shchapov.ru>

Co-authored-by: fekir <federico.kircheis@gmail.com>
Co-authored-by: Alexey Ochapov <alexez@alexez.com>
Co-authored-by: Vladislav Shchapov <vladislav@shchapov.ru>
This commit is contained in:
Zach Toogood
2022-09-02 08:33:37 -07:00
committed by GitHub
co-authored by fekir Alexey Ochapov Vladislav Shchapov
parent 75383a87f9
commit 4191477b98
2 changed files with 36 additions and 2 deletions
+16 -1
View File
@@ -8,6 +8,7 @@
#ifndef FMT_STD_H_
#define FMT_STD_H_
#include <exception>
#include <thread>
#include <type_traits>
#include <utility>
@@ -166,6 +167,20 @@ struct formatter<
}
};
FMT_END_NAMESPACE
#endif
#endif // __cpp_lib_variant
FMT_BEGIN_NAMESPACE
template <typename T, typename Char>
struct formatter<
T, Char,
typename std::enable_if<std::is_base_of<std::exception, T>::value>::type>
: formatter<string_view> {
template <typename FormatContext>
auto format(const std::exception& ex, FormatContext& ctx) const ->
typename FormatContext::iterator {
return fmt::formatter<string_view>::format(ex.what(), ctx);
}
};
FMT_END_NAMESPACE
#endif // FMT_STD_H_