Currently BOOST_TEST_EQ(std::u16string{}, std::u16string{}) fails to compile. Similar for wstring, u32string and u8string.
Additionally support for char8_t comparison is missing.
While implementing this I'd suggest to try printing the ASCII subset of those directly similar to the char handling. The current differences in output are a bit confusing:
: test 's[0] == s2[1]' ('1' == '2') failed in function 'void test(const Ch *) [Ch = char]'
: test 's[0] == s2[1]' ('49' == '50') failed in function 'void test(const Ch *) [Ch = wchar_t]'
: test 's[0] == s2[1]' ('49' == '50') failed in function 'void test(const Ch *) [Ch = char16_t]'
: test 's[0] == s2[1]' ('49' == '50') failed in function 'void test(const Ch *) [Ch = char32_t]'
Currently
BOOST_TEST_EQ(std::u16string{}, std::u16string{})fails to compile. Similar forwstring,u32stringandu8string.Additionally support for
char8_tcomparison is missing.While implementing this I'd suggest to try printing the ASCII subset of those directly similar to the
charhandling. The current differences in output are a bit confusing: