Fw: Is there interest for iterator based conversion library? attempt #2

19 Jul
2006
19 Jul
'06
1:30 p.m.
No comments during about 2 weeks. what's wrong? > Hi boost community! > > I would like to propose my iterator based conversion library. > It allows declaring and using transformations by following way: > > std::wstring utf16string(L”some sequence to convert”); > > typedef cvt::encoder<wchar_t, char> coder_t; > coder_t coder = cvt::utf16() >> cvt::utf8(); > > That piece of code declares converter from wchar_t to char sequences and > then instantiate such converter by utf16 to utf8 transformation. > > Then that converter instance can be used by following way: > typedef cvt::convert_input_iterator<coder_t, std::wstring::const_iterator > > it_t; > - declaration of input iterator > > std::string result; > std::copy( > it_t(coder, utf16string.begin(), utf16string.end()), > it_t(coder, utf16string.end(), utf16string.end()), > std::back_inserter(result) > ); > Now we have utf8 encoded string in result container. That’s all. > > Library contains implementation for following transformations/algorithms: > utf7, utf8, utf16(be/le), utf32(be, le), Unicode simple folding, base64, > rc5(cipher/decipher). > Library allows creating pipeline converters, e.g.: > > typedef cvt::encoder<char, char> coder_t; // char to char sequence > transformation > coder_t coder = cvt::utf7() >> cvt::utf16() >> cvt::utf8() / cvt::int8() > >> cvt::rc5<32,12,8>(key) / cvt::int8() >> cvt::base64(); > > That expression defines pipeline transformation. Utf7 encoded sequence > transforms to utf16 encoded sequence, then to utf8 encoded, then performs > rc5 cipher with specified key, then performs base64 encoding. > > Library can be found at http://sourceforge.net/projects/trotter-cvt/ > > > Alexander Potocki

20 Jul
20 Jul
10:24 a.m.
New subject: Fw: Is there interest for iterator based conversion library? attempt #2
Alexander A Potocki wrote: > No comments during about 2 weeks. > what's wrong? > >> Hi boost community! >> >> I would like to propose my iterator based conversion library. >> It allows declaring and using transformations by following way: >> >> std::wstring utf16string(L”some sequence to convert”); >> >> typedef cvt::encoder<wchar_t, char> coder_t; >> coder_t coder = cvt::utf16() >> cvt::utf8(); >> >> That piece of code declares converter from wchar_t to char sequences and >> then instantiate such converter by utf16 to utf8 transformation. >> >> Then that converter instance can be used by following way: >> typedef cvt::convert_input_iterator<coder_t, std::wstring::const_iterator >> > it_t; >> - declaration of input iterator >> >> std::string result; >> std::copy( >> it_t(coder, utf16string.begin(), utf16string.end()), >> it_t(coder, utf16string.end(), utf16string.end()), >> std::back_inserter(result) >> ); >> Now we have utf8 encoded string in result container. That’s all. >> >> Library contains implementation for following transformations/algorithms: >> utf7, utf8, utf16(be/le), utf32(be, le), Unicode simple folding, base64, >> rc5(cipher/decipher). >> Library allows creating pipeline converters, e.g.: >> >> typedef cvt::encoder<char, char> coder_t; // char to char sequence >> transformation >> coder_t coder = cvt::utf7() >> cvt::utf16() >> cvt::utf8() / cvt::int8() >> >> cvt::rc5<32,12,8>(key) / cvt::int8() >> cvt::base64(); >> >> That expression defines pipeline transformation. Utf7 encoded sequence >> transforms to utf16 encoded sequence, then to utf8 encoded, then performs >> rc5 cipher with specified key, then performs base64 encoding. >> >> Library can be found at http://sourceforge.net/projects/trotter-cvt/ That definitely seems great. Your code looks similar to Boost.Serialization Data Flow. http://www.boost.org/libs/serialization/doc/dataflow.html But, we have now Boost.Range. Assume 'range_copy(rng,it)' just calls 'std::copy(boost::begin(rng),boost::end(rng),it)'. range_copy(make_u32_to_u8_iterator_range(src), it); There is no typedef's. You can look into <boost/regex/pending/unicode_iterator.hpp>, which shows such implementations. -- Shunsuke Sogame
6904
Age (days ago)
6905
Last active (days ago)
1 comments
2 participants
participants (2)
-
Alexander A Potocki
-
Shunsuke Sogame