From 3d7a431811748c5aa1f49c35436696fc3f05de5d Mon Sep 17 00:00:00 2001 From: Roland Reichwein Date: Fri, 5 Feb 2021 14:10:53 +0100 Subject: Documentation, support validation via Traits --- include/unicode.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'include/unicode.h') diff --git a/include/unicode.h b/include/unicode.h index df61ac3..2424fb1 100644 --- a/include/unicode.h +++ b/include/unicode.h @@ -562,6 +562,7 @@ namespace unicode { return result; } + // basic type version template bool is_valid_utf(const std::basic_string& s) { @@ -573,5 +574,17 @@ namespace unicode { return true; } + // Facet version + template + bool is_valid_utf(const std::basic_string& s) + { + try { + std::for_each(Facet::begin(s), Facet::end(s), [](const char32_t& c){}); + } catch (const std::invalid_argument&) { + return false; + } + return true; + } + } // namespace unicode -- cgit v1.2.3