aboutsummaryrefslogtreecommitdiff
path: root/src/codepoint_iterator.h
diff options
context:
space:
mode:
authorAdrian Kummerländer2014-04-16 19:53:00 +0200
committerAdrian Kummerländer2014-04-16 19:53:00 +0200
commitc87d8ec91f0e191dba6b744788167bb8d41d339e (patch)
tree5428a69adf1e035e0fe89a164445e0bc1c8e663e /src/codepoint_iterator.h
parent097c27f4106c0f5cae0fe284e1d322ed728b6d96 (diff)
downloadCodepointIterator-c87d8ec91f0e191dba6b744788167bb8d41d339e.tar
CodepointIterator-c87d8ec91f0e191dba6b744788167bb8d41d339e.tar.gz
CodepointIterator-c87d8ec91f0e191dba6b744788167bb8d41d339e.tar.bz2
CodepointIterator-c87d8ec91f0e191dba6b744788167bb8d41d339e.tar.lz
CodepointIterator-c87d8ec91f0e191dba6b744788167bb8d41d339e.tar.xz
CodepointIterator-c87d8ec91f0e191dba6b744788167bb8d41d339e.tar.zst
CodepointIterator-c87d8ec91f0e191dba6b744788167bb8d41d339e.zip
Added static assert of std::string::value_type size
* CodepointIterator only supports UTF-8 encoded single-byte input strings ** this should prevent CodepointIterator from compiling on systems with larger char sizes while providing a helpful error message * improved const-correctness by marking currByte (iterator dereferencing cache) and helper method arguments as const
Diffstat (limited to 'src/codepoint_iterator.h')
-rw-r--r--src/codepoint_iterator.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/codepoint_iterator.h b/src/codepoint_iterator.h
index d1806e5..77600b7 100644
--- a/src/codepoint_iterator.h
+++ b/src/codepoint_iterator.h
@@ -10,6 +10,11 @@ namespace UTF8 {
class CodepointIterator : public std::iterator<std::bidirectional_iterator_tag,
char32_t,
std::string::difference_type> {
+ static_assert(
+ sizeof(std::string::value_type) == 1,
+ "CodepointIterator only supports single-byte UTF-8 encoded input"
+ );
+
public:
CodepointIterator(std::string::const_iterator);
CodepointIterator(const CodepointIterator&);