Boost logo

Boost :

From: Aristid Breitkreuz (aribrei_at_[hidden])
Date: 2006-09-19 10:45:33


Am Montag, den 18.09.2006, 16:25 +0200 schrieb Nils Springob:
> What would you think of an iterator based approach with the following
> interface:

Iterators are good.

>
> // Bideirectional iterator for UTF8 / UTF16 coded data
> // I: Raw data iterator
> // C: Unicode character type
> template <class I, typename C> class unicode_iterator;

Fair enough.

>
> // I: Unicode character iterator
> template <typename I> class unicode_string;

Judging from the code below, this would mean that the iterator
implicitly specifies the internal string type? Something like

        typename iterator_traits<I>::container_type cont;

?

>
> // some standard types:
> typedef unicode_iterator<std::string::iterator, wchar_t> utf8_iterator;

You can't assume wchar_t is UTF-32. You can't even assume it's 32 bits.

> typedef unicode_iterator<std::basic_string<short>::iterator, wchar_t>
> utf16_iterator;

You can't assume short is 16-bits (but that's more or less academic).

> typedef std::wstring::iterator utf32_iterator;

Same.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk