Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
UNICODE::ICONVERT::S(3)      Courier Unicode Library	 UNICODE::ICONVERT::S(3)

NAME
     unicode::string_converter,        unicode::tou_string_converter,	    uni-
     code::fromu_string_converter - Converting output iterators

SYNOPSIS
     #include <courier-unicode.h>

     std::vector<std::string> strings;

     unicode::string_converter converter{
	  std::back_inserter(strings),
	  unicode::iso_8859_1,
	  unicode::utf_8
     };

     std::vector<std::u32string> ustrings;

     auto ustring_iter=std::back_inserter(ustrings);

     unicode::tou_string_converter touconverter{
	  ustring_iter,
	  unicode::utf_8
     };

     unicode::fromu_string_converter fromuconverter{
	  std::back_inserter(strings);
	  unicode::utf_8
     };

     *converter++ = "Hello world!\n";

     *touconvert++ = "Hello world!\n";

     *fromuconverter++ = U"Hello world!\n";

     if (converter.errflag)
     {
	  //
     }

     auto final_value=fromuconverter.iter();

DESCRIPTION
     These string_converter template classes implement output iterators that it-
     erate over entire string objects. In most cases the template parameters are
     specified by the defined deduction guides for the templates' constructors.

     The first parameter to each template's constructor is another output itera-
     tor. Iterating the template instance over each string results in converting
     the string, and then using the output iterator that was passed to the  con-
     structor iterating over the results of the conversion.

   Template functionality
     unicode template	    Iterates over    Parameter	 iterates
					     over
     string_converter	    std::string      std::string
     fromu_string_con-	    std::u32string   std::string
     verter
     tou_string_converter   std::string      std::u32string

   Additional constructor parameters
     unicode template	    Additional	template
			    parameters
     string_converter	    "from"    and   "to"
			    character sets
     fromu_string_con-	    "to" character set
     verter
     tou_string_converter   "from" character set

     unicode::string_converter is an output iterator over  std::string	strings.
     It  takes	the std::string strings it iterates over, converts them from one
     character set to another one, and the output iterator that gets  passed  to
     its constructor iterates over each converted std::string.

     unicode::fromu_string_converter  is  an output iterator over std::u32string
     strings. It takes the std::u32string strings it iterates, converts them  to
     string  in  the  soecufued character set, and the output iterator that gets
     passed to its constructor iterates over rach converted std::string.

     unicode::tou_string_converter  is	an  output  iterator  over   std::string
     strings.  It  takes  the  std::string strings it iterates, converts them to
     Unicode, using the specified character set, and the  output  iterator  that
     gets   passed   to   its	constructor   iterates	 over	each   converted
     std::u32strings.

   Template parameters
     These string_converter templates have one template parameter. In most cases
     it's sufficient to have it deduced from the constructor. The template para-
     meter is deduced from the first constructor parameter, an	output	iterator
     "T" as follows:

     T is passed by reference
	 The template parameter is "<T &>"

     T is passed by value
	 The template parameter is "<T>"

     If  the output iterator gets passed by reference, continuing to iterate the
     string_converter after the passed in constructor gets destroyed results  in
     undefined	behavior.  The	output	iterator  must	exist  as  long  as  the
     string_converter iterates.

     Passing the output iterator by value moves it, and the moved iterator  will
     exist until the string_converter is destroyed.

   Template members
     The  iter() method returns the reference to the current value of the itera-
     tor that was passed to the constructor. It is typically used to obtain  the
     output  iterator that was passed by value to the constructor, after finish-
     ing iterating over the converted strings.

     The errflag bool indicates whether a conversion error occured during itera-
     tion (an iterated-over string could not be converted).

SEE ALSO
     courier-unicode(7),

AUTHOR
     Sam Varshavchik
	 Author

Courier Unicode Library 	   04/12/2026		 UNICODE::ICONVERT::S(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=unicode::tou_string_converter&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help