<feed xmlns='http://www.w3.org/2005/Atom'>
<title>CodepointIterator/src, branch master</title>
<subtitle>UTF-8 codepoint iterator class</subtitle>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/CodepointIterator/'/>
<entry>
<title>Redefined CodePoint utility masks as C++14 binary literals</title>
<updated>2014-09-16T18:09:14+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2014-09-16T18:09:14+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/CodepointIterator/commit/?id=31f8cbdd0b038c7196f630febd2bbe2f9183cde0'/>
<id>31f8cbdd0b038c7196f630febd2bbe2f9183cde0</id>
<content type='text'>
* they are more expressive as the shift-syntax in my opinion
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* they are more expressive as the shift-syntax in my opinion
</pre>
</div>
</content>
</entry>
<entry>
<title>Added static assert of std::string::value_type size</title>
<updated>2014-04-16T17:53:00+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-04-16T17:53:00+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/CodepointIterator/commit/?id=c87d8ec91f0e191dba6b744788167bb8d41d339e'/>
<id>c87d8ec91f0e191dba6b744788167bb8d41d339e</id>
<content type='text'>
* 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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
</pre>
</div>
</content>
</entry>
<entry>
<title>Simplified bitmask utility functions</title>
<updated>2014-04-11T18:48:11+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-04-11T18:48:11+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/CodepointIterator/commit/?id=98aade06e8960a4cd11e937089d64b42df982826'/>
<id>98aade06e8960a4cd11e937089d64b42df982826</id>
<content type='text'>
* they were relocated into a separate compilation unit by 79a65ce
** but I want them to be inlined which is hindered by exactly that
** i.e. the implementations are now moved to the utility header file and marked as inline
* removed unnecessary declaration of arguments as reference
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* they were relocated into a separate compilation unit by 79a65ce
** but I want them to be inlined which is hindered by exactly that
** i.e. the implementations are now moved to the utility header file and marked as inline
* removed unnecessary declaration of arguments as reference
</pre>
</div>
</content>
</entry>
<entry>
<title>Added operator- member implementation and improved test cases</title>
<updated>2014-04-10T18:26:20+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-04-10T18:26:20+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/CodepointIterator/commit/?id=c61de194f49c47880f8a886c88dcf044f893861a'/>
<id>c61de194f49c47880f8a886c88dcf044f893861a</id>
<content type='text'>
* operator- takes a reference to a const std::string::const_iterator and as such enables determining the actual position of a codepoint within a string
* ranged for loops in test cases now take the iterator value by rvalue reference instead of by value
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* operator- takes a reference to a const std::string::const_iterator and as such enables determining the actual position of a codepoint within a string
* ranged for loops in test cases now take the iterator value by rvalue reference instead of by value
</pre>
</div>
</content>
</entry>
<entry>
<title>Switched to standard integer types</title>
<updated>2014-04-09T16:31:44+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-04-09T16:31:44+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/CodepointIterator/commit/?id=572af7499d088a239d37e9dc09e5e7ac45c13d29'/>
<id>572af7499d088a239d37e9dc09e5e7ac45c13d29</id>
<content type='text'>
* i.e. replaced uint8_t with std::uint8_t contained within the standard namespace
** as this version of the types is defined by the standard this should offer better compiler independence and standard compliance
* removed unnecessary pointer and reference type arguments in the std::iterator template specializations the CodepointIterator class is derived from
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* i.e. replaced uint8_t with std::uint8_t contained within the standard namespace
** as this version of the types is defined by the standard this should offer better compiler independence and standard compliance
* removed unnecessary pointer and reference type arguments in the std::iterator template specializations the CodepointIterator class is derived from
</pre>
</div>
</content>
</entry>
<entry>
<title>Removed internal codepoint caching</title>
<updated>2014-02-15T11:57:50+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-02-15T11:57:50+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/CodepointIterator/commit/?id=d9dc09933635a62e188600c419fe42bcd03a3820'/>
<id>d9dc09933635a62e188600c419fe42bcd03a3820</id>
<content type='text'>
* it is not the responsibility of a codepoint iterator to cache the resolved codepoint for reuse
** if this is required by the user of this class can iterate it better in the context it is required
** e.g. implement a "CachedIterator" template
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* it is not the responsibility of a codepoint iterator to cache the resolved codepoint for reuse
** if this is required by the user of this class can iterate it better in the context it is required
** e.g. implement a "CachedIterator" template
</pre>
</div>
</content>
</entry>
<entry>
<title>Extracted helper functions and bitmasks into separate compilation unit</title>
<updated>2014-02-15T11:48:35+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2014-02-15T11:48:35+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/CodepointIterator/commit/?id=79a65ce58ad8f3b2b1c9eeaba4b0b4710dc09e2c'/>
<id>79a65ce58ad8f3b2b1c9eeaba4b0b4710dc09e2c</id>
<content type='text'>
* utility.h and utility.cc now contain the UTF8-codepoint and unit bitmasks and read / write functions
* Modified users of these functions and unions accordingly
* Added the new compilation unit to the Makefile
* Changed bitmask specification from plain integer literals to shift expressions for better readability
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* utility.h and utility.cc now contain the UTF8-codepoint and unit bitmasks and read / write functions
* Modified users of these functions and unions accordingly
* Added the new compilation unit to the Makefile
* Changed bitmask specification from plain integer literals to shift expressions for better readability
</pre>
</div>
</content>
</entry>
<entry>
<title>Initial commit</title>
<updated>2013-10-05T10:41:07+00:00</updated>
<author>
<name>Adrian Kummerländer</name>
</author>
<published>2013-10-05T10:41:07+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/CodepointIterator/commit/?id=4d1b9a918f8a189ba1e9887c6a9da04e7392db90'/>
<id>4d1b9a918f8a189ba1e9887c6a9da04e7392db90</id>
<content type='text'>
* CodepointIterator is a simple C++ iterator class which iterates through unicode codepoints in a UTF8-encoded string
* It is derived from std::iterator and implements the std::bidirectional_iterator_tag
* Dereferencing an instance of the class provides the codepoint as char32_t
* Tests require Google Test and use UTF8-samples from http://www.columbia.edu/~fdc/utf8/
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* CodepointIterator is a simple C++ iterator class which iterates through unicode codepoints in a UTF8-encoded string
* It is derived from std::iterator and implements the std::bidirectional_iterator_tag
* Dereferencing an instance of the class provides the codepoint as char32_t
* Tests require Google Test and use UTF8-samples from http://www.columbia.edu/~fdc/utf8/
</pre>
</div>
</content>
</entry>
</feed>
