summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/test-helper.cpp25
-rw-r--r--src/test-helper.h6
2 files changed, 31 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 {
diff --git a/src/test-helper.h b/src/test-helper.h
index c3e2900..676af73 100644
--- a/src/test-helper.h
+++ b/src/test-helper.h
@@ -14,6 +14,12 @@ namespace std {
std::ostream& operator<<(std::ostream& os, std::basic_string<char16_t> const& s);
std::ostream& operator<<(std::ostream& os, std::basic_string<char32_t> const& s);
+#ifdef __cpp_char8_t
+ std::ostream& operator<<(std::ostream& os, utf8_t const& c);
+#endif
+ std::ostream& operator<<(std::ostream& os, char16_t const& c);
+ std::ostream& operator<<(std::ostream& os, char32_t const& c);
+
} // namespace std
template<typename From, typename To>