summaryrefslogtreecommitdiffhomepage
path: root/src/test-helper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/test-helper.cpp')
-rw-r--r--src/test-helper.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test-helper.cpp b/src/test-helper.cpp
index d441895..d591916 100644
--- a/src/test-helper.cpp
+++ b/src/test-helper.cpp
@@ -5,6 +5,8 @@
#include <codecvt>
#include <deque>
#include <exception>
+#include <iostream>
+#include <iomanip>
#include <limits>
#include <list>
#include <locale>
@@ -50,6 +52,29 @@ namespace std {
return os;
}
+#ifdef __cpp_char8_t
+ std::ostream& operator<<(std::ostream& os, utf8_t const& c)
+ {
+ os << "\\x" << std::setfill('0') << std::setw(2) << std::right << std::hex << static_cast<uint8_t>(c);
+
+ return os;
+ }
+#endif
+
+ std::ostream& operator<<(std::ostream& os, char16_t const& c)
+ {
+ os << "\\u" << std::setfill('0') << std::setw(4) << std::right << std::hex << static_cast<uint16_t>(c);
+
+ return os;
+ }
+
+ std::ostream& operator<<(std::ostream& os, char32_t const& c)
+ {
+ os << "\\U" << std::setfill('0') << std::setw(8) << std::right << std::hex << static_cast<uint32_t>(c);
+
+ return os;
+ }
+
} // namespace std
namespace {