summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorRoland Reichwein <mail@reichwein.it>2022-01-06 15:30:02 +0100
committerRoland Reichwein <mail@reichwein.it>2022-01-06 15:30:02 +0100
commit69e14c9f3a9fe35a80a22f121969cef914ede063 (patch)
treeeb6f78e0e28119ff8d757b794344bc55a01bb1c1 /src
parentfceee089c114e8510fd1e7f06f258b5d67cf23bf (diff)
Adjustments for msbuild
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>