Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r73017 - in trunk: boost boost/locale boost/locale/boundary libs/locale libs/locale/build libs/locale/doc libs/locale/doc/html libs/locale/doc/style libs/locale/examples libs/locale/performance libs/locale/src libs/locale/src/encoding libs/locale/src/icu libs/locale/src/posix libs/locale/src/shared libs/locale/src/std libs/locale/src/util libs/locale/src/win32 libs/locale/test libs/locale/test/he libs/locale/test/he/LC_MESSAGES libs/locale/test/he_IL libs/locale/test/he_IL/LC_MESSAGES libs/locale/tools
From: artyomtnk_at_[hidden]
Date: 2011-07-12 09:58:26


Author: artyom
Date: 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
New Revision: 73017
URL: http://svn.boost.org/trac/boost/changeset/73017

Log:
First Version of Boost.Locale integrated into SVN trunk

Added:
   trunk/boost/locale/
   trunk/boost/locale.hpp (contents, props changed)
   trunk/boost/locale/boundary/
   trunk/boost/locale/boundary.hpp (contents, props changed)
   trunk/boost/locale/boundary/boundary_point.hpp (contents, props changed)
   trunk/boost/locale/boundary/facets.hpp (contents, props changed)
   trunk/boost/locale/boundary/index.hpp (contents, props changed)
   trunk/boost/locale/boundary/segment.hpp (contents, props changed)
   trunk/boost/locale/boundary/types.hpp (contents, props changed)
   trunk/boost/locale/collator.hpp (contents, props changed)
   trunk/boost/locale/config.hpp (contents, props changed)
   trunk/boost/locale/conversion.hpp (contents, props changed)
   trunk/boost/locale/date_time.hpp (contents, props changed)
   trunk/boost/locale/date_time_facet.hpp (contents, props changed)
   trunk/boost/locale/encoding.hpp (contents, props changed)
   trunk/boost/locale/format.hpp (contents, props changed)
   trunk/boost/locale/formatting.hpp (contents, props changed)
   trunk/boost/locale/generator.hpp (contents, props changed)
   trunk/boost/locale/gnu_gettext.hpp (contents, props changed)
   trunk/boost/locale/hold_ptr.hpp (contents, props changed)
   trunk/boost/locale/info.hpp (contents, props changed)
   trunk/boost/locale/localization_backend.hpp (contents, props changed)
   trunk/boost/locale/message.hpp (contents, props changed)
   trunk/boost/locale/time_zone.hpp (contents, props changed)
   trunk/boost/locale/util.hpp (contents, props changed)
   trunk/libs/locale/
   trunk/libs/locale/build/
   trunk/libs/locale/build/Jamfile.v2 (contents, props changed)
   trunk/libs/locale/build/has_iconv.cpp (contents, props changed)
   trunk/libs/locale/build/has_icu_test.cpp (contents, props changed)
   trunk/libs/locale/doc/
   trunk/libs/locale/doc/Doxyfile (contents, props changed)
   trunk/libs/locale/doc/appendix.txt (contents, props changed)
   trunk/libs/locale/doc/boundary_analysys.txt (contents, props changed)
   trunk/libs/locale/doc/building_boost_locale.txt (contents, props changed)
   trunk/libs/locale/doc/charset_handling.txt (contents, props changed)
   trunk/libs/locale/doc/collation.txt (contents, props changed)
   trunk/libs/locale/doc/conversions.txt (contents, props changed)
   trunk/libs/locale/doc/dates_times_timezones.txt (contents, props changed)
   trunk/libs/locale/doc/default_encoding_under_windows.txt (contents, props changed)
   trunk/libs/locale/doc/faq.txt (contents, props changed)
   trunk/libs/locale/doc/footer.html (contents, props changed)
   trunk/libs/locale/doc/formatting_and_parsing.txt (contents, props changed)
   trunk/libs/locale/doc/gendoc.sh (contents, props changed)
   trunk/libs/locale/doc/gettext_for_windows.txt (contents, props changed)
   trunk/libs/locale/doc/glossary.txt (contents, props changed)
   trunk/libs/locale/doc/header.html (contents, props changed)
   trunk/libs/locale/doc/html/
   trunk/libs/locale/doc/html/annotated.html (contents, props changed)
   trunk/libs/locale/doc/html/appendix.html (contents, props changed)
   trunk/libs/locale/doc/html/bc_s.png (contents, props changed)
   trunk/libs/locale/doc/html/boundary_8cpp-example.html (contents, props changed)
   trunk/libs/locale/doc/html/boundary_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/boundary__point_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/boundary_analysys.html (contents, props changed)
   trunk/libs/locale/doc/html/building_boost_locale.html (contents, props changed)
   trunk/libs/locale/doc/html/calendar_8cpp-example.html (contents, props changed)
   trunk/libs/locale/doc/html/charset_handling.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1abstract__calendar-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1abstract__calendar.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1basic__format-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1basic__format.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1basic__message-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1basic__message.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__indexing-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__indexing.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__point-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__point.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__point__index-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__point__index.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1segment-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1segment.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1segment__index-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1segment__index.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1calendar-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1calendar.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1calendar__facet-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1calendar__facet.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator.png (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator__base-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator__base.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator__base.png (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1conv_1_1conversion__error-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1conv_1_1conversion__error.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1conv_1_1invalid__charset__error-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1conv_1_1invalid__charset__error.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter.png (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter__base-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter__base.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter__base.png (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__duration-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__duration.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__error-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__error.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__period__set-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__period__set.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1generator-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1generator.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1hold__ptr-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1hold__ptr.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1info-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1info.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1ios__info-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1ios__info.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1localization__backend-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1localization__backend.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1localization__backend__manager-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1localization__backend__manager.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1message__format-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1message__format.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1period_1_1period__type-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1period_1_1period__type.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1util_1_1base__converter-members.html (contents, props changed)
   trunk/libs/locale/doc/html/classboost_1_1locale_1_1util_1_1base__converter.html (contents, props changed)
   trunk/libs/locale/doc/html/classes.html (contents, props changed)
   trunk/libs/locale/doc/html/closed.png (contents, props changed)
   trunk/libs/locale/doc/html/collate_8cpp-example.html (contents, props changed)
   trunk/libs/locale/doc/html/collation.html (contents, props changed)
   trunk/libs/locale/doc/html/collator_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/config_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/conversion_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/conversions.html (contents, props changed)
   trunk/libs/locale/doc/html/conversions_8cpp-example.html (contents, props changed)
   trunk/libs/locale/doc/html/date__time_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/date__time__facet_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/dates_times_timezones.html (contents, props changed)
   trunk/libs/locale/doc/html/default_encoding_under_windows.html (contents, props changed)
   trunk/libs/locale/doc/html/doxygen.css (contents, props changed)
   trunk/libs/locale/doc/html/doxygen.png (contents, props changed)
   trunk/libs/locale/doc/html/encoding_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/examples.html (contents, props changed)
   trunk/libs/locale/doc/html/facets_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/faq.html (contents, props changed)
   trunk/libs/locale/doc/html/files.html (contents, props changed)
   trunk/libs/locale/doc/html/format_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/formatting_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/formatting_and_parsing.html (contents, props changed)
   trunk/libs/locale/doc/html/ftv2blank.png (contents, props changed)
   trunk/libs/locale/doc/html/ftv2doc.png (contents, props changed)
   trunk/libs/locale/doc/html/ftv2folderclosed.png (contents, props changed)
   trunk/libs/locale/doc/html/ftv2folderopen.png (contents, props changed)
   trunk/libs/locale/doc/html/ftv2lastnode.png (contents, props changed)
   trunk/libs/locale/doc/html/ftv2link.png (contents, props changed)
   trunk/libs/locale/doc/html/ftv2mlastnode.png (contents, props changed)
   trunk/libs/locale/doc/html/ftv2mnode.png (contents, props changed)
   trunk/libs/locale/doc/html/ftv2node.png (contents, props changed)
   trunk/libs/locale/doc/html/ftv2plastnode.png (contents, props changed)
   trunk/libs/locale/doc/html/ftv2pnode.png (contents, props changed)
   trunk/libs/locale/doc/html/ftv2vertline.png (contents, props changed)
   trunk/libs/locale/doc/html/functions.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x62.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x63.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x64.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x65.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x66.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x67.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x68.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x69.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x6c.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x6d.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x6e.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x6f.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x70.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x71.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x72.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x73.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x74.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x75.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x76.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x77.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_0x7e.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_enum.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_eval.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x62.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x63.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x64.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x65.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x66.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x67.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x68.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x69.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x6c.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x6d.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x6e.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x6f.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x70.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x72.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x73.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x74.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x75.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x76.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x77.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_func_0x7e.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_type.html (contents, props changed)
   trunk/libs/locale/doc/html/functions_vars.html (contents, props changed)
   trunk/libs/locale/doc/html/generator_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/gettext_for_windows.html (contents, props changed)
   trunk/libs/locale/doc/html/glossary.html (contents, props changed)
   trunk/libs/locale/doc/html/gnu__gettext_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/group__boundary.html (contents, props changed)
   trunk/libs/locale/doc/html/group__codepage.html (contents, props changed)
   trunk/libs/locale/doc/html/group__collation.html (contents, props changed)
   trunk/libs/locale/doc/html/group__convert.html (contents, props changed)
   trunk/libs/locale/doc/html/group__date__time.html (contents, props changed)
   trunk/libs/locale/doc/html/group__format.html (contents, props changed)
   trunk/libs/locale/doc/html/group__manipulators.html (contents, props changed)
   trunk/libs/locale/doc/html/group__message.html (contents, props changed)
   trunk/libs/locale/doc/html/hello_8cpp-example.html (contents, props changed)
   trunk/libs/locale/doc/html/hierarchy.html (contents, props changed)
   trunk/libs/locale/doc/html/hold__ptr_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/index.html (contents, props changed)
   trunk/libs/locale/doc/html/index_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/info_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/locale_gen.html (contents, props changed)
   trunk/libs/locale/doc/html/locale_information.html (contents, props changed)
   trunk/libs/locale/doc/html/localization__backend_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/localized_text_formatting.html (contents, props changed)
   trunk/libs/locale/doc/html/main.html (contents, props changed)
   trunk/libs/locale/doc/html/message_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/messages_formatting.html (contents, props changed)
   trunk/libs/locale/doc/html/modules.html (contents, props changed)
   trunk/libs/locale/doc/html/namespaceboost_1_1locale.html (contents, props changed)
   trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1as.html (contents, props changed)
   trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1boundary.html (contents, props changed)
   trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1conv.html (contents, props changed)
   trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1flags.html (contents, props changed)
   trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1gnu__gettext.html (contents, props changed)
   trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1period.html (contents, props changed)
   trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1period_1_1marks.html (contents, props changed)
   trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1time__zone.html (contents, props changed)
   trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1util.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x62.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x63.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x64.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x65.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x66.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x67.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x68.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x69.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x6a.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x6c.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x6d.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x6e.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x6f.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x70.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x72.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x73.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x74.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x75.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x76.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x77.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_0x79.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_enum.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_eval.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x62.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x63.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x64.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x65.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x66.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x67.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x68.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x69.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x6a.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x6c.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x6d.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x6e.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x6f.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x70.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x73.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x74.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x75.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x77.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_func_0x79.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_type.html (contents, props changed)
   trunk/libs/locale/doc/html/namespacemembers_vars.html (contents, props changed)
   trunk/libs/locale/doc/html/namespaces.html (contents, props changed)
   trunk/libs/locale/doc/html/nav_f.png (contents, props changed)
   trunk/libs/locale/doc/html/nav_h.png (contents, props changed)
   trunk/libs/locale/doc/html/open.png (contents, props changed)
   trunk/libs/locale/doc/html/rationale.html (contents, props changed)
   trunk/libs/locale/doc/html/recommendations_and_myths.html (contents, props changed)
   trunk/libs/locale/doc/html/running_examples_under_windows.html (contents, props changed)
   trunk/libs/locale/doc/html/segment_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/special_thanks.html (contents, props changed)
   trunk/libs/locale/doc/html/status_of_cpp0x_characters_support.html (contents, props changed)
   trunk/libs/locale/doc/html/std_locales.html (contents, props changed)
   trunk/libs/locale/doc/html/structboost_1_1locale_1_1boundary_1_1break__info-members.html (contents, props changed)
   trunk/libs/locale/doc/html/structboost_1_1locale_1_1boundary_1_1break__info.html (contents, props changed)
   trunk/libs/locale/doc/html/structboost_1_1locale_1_1comparator-members.html (contents, props changed)
   trunk/libs/locale/doc/html/structboost_1_1locale_1_1comparator.html (contents, props changed)
   trunk/libs/locale/doc/html/structboost_1_1locale_1_1date__time__period-members.html (contents, props changed)
   trunk/libs/locale/doc/html/structboost_1_1locale_1_1date__time__period.html (contents, props changed)
   trunk/libs/locale/doc/html/structboost_1_1locale_1_1gnu__gettext_1_1messages__info-members.html (contents, props changed)
   trunk/libs/locale/doc/html/structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html (contents, props changed)
   trunk/libs/locale/doc/html/structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain-members.html (contents, props changed)
   trunk/libs/locale/doc/html/structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html (contents, props changed)
   trunk/libs/locale/doc/html/structboost_1_1locale_1_1posix__time-members.html (contents, props changed)
   trunk/libs/locale/doc/html/structboost_1_1locale_1_1posix__time.html (contents, props changed)
   trunk/libs/locale/doc/html/tab_a.png (contents, props changed)
   trunk/libs/locale/doc/html/tab_b.png (contents, props changed)
   trunk/libs/locale/doc/html/tab_h.png (contents, props changed)
   trunk/libs/locale/doc/html/tab_s.png (contents, props changed)
   trunk/libs/locale/doc/html/tabs.css (contents, props changed)
   trunk/libs/locale/doc/html/tested_compilers_and_paltforms.html (contents, props changed)
   trunk/libs/locale/doc/html/time__zone_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/tree.html (contents, props changed)
   trunk/libs/locale/doc/html/types_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/using_boost_locale.html (contents, props changed)
   trunk/libs/locale/doc/html/using_localization_backends.html (contents, props changed)
   trunk/libs/locale/doc/html/util_8hpp_source.html (contents, props changed)
   trunk/libs/locale/doc/html/wboundary_8cpp-example.html (contents, props changed)
   trunk/libs/locale/doc/html/wconversions_8cpp-example.html (contents, props changed)
   trunk/libs/locale/doc/html/whello_8cpp-example.html (contents, props changed)
   trunk/libs/locale/doc/html/working_with_multiple_locales.html (contents, props changed)
   trunk/libs/locale/doc/index.template.html (contents, props changed)
   trunk/libs/locale/doc/locale_gen.txt (contents, props changed)
   trunk/libs/locale/doc/locale_information.txt (contents, props changed)
   trunk/libs/locale/doc/localized_text_formatting.txt (contents, props changed)
   trunk/libs/locale/doc/main.txt (contents, props changed)
   trunk/libs/locale/doc/messages_formatting.txt (contents, props changed)
   trunk/libs/locale/doc/rationale.txt (contents, props changed)
   trunk/libs/locale/doc/recommendations_and_myths.txt (contents, props changed)
   trunk/libs/locale/doc/running_examples_under_windows.txt (contents, props changed)
   trunk/libs/locale/doc/special_thanks.txt (contents, props changed)
   trunk/libs/locale/doc/status_of_cpp0x_characters_support.txt (contents, props changed)
   trunk/libs/locale/doc/std_locales.txt (contents, props changed)
   trunk/libs/locale/doc/style/
   trunk/libs/locale/doc/style/boost_small.png (contents, props changed)
   trunk/libs/locale/doc/style/header-bg.png (contents, props changed)
   trunk/libs/locale/doc/style/header-fg.png (contents, props changed)
   trunk/libs/locale/doc/style/header.css (contents, props changed)
   trunk/libs/locale/doc/style/header_grass.css (contents, props changed)
   trunk/libs/locale/doc/style/section-basic.css (contents, props changed)
   trunk/libs/locale/doc/style/space.png (contents, props changed)
   trunk/libs/locale/doc/tested_compilers_and_paltforms.txt (contents, props changed)
   trunk/libs/locale/doc/using_boost_locale.txt (contents, props changed)
   trunk/libs/locale/doc/using_localization_backends.txt (contents, props changed)
   trunk/libs/locale/doc/working_with_multiple_locales.txt (contents, props changed)
   trunk/libs/locale/examples/
   trunk/libs/locale/examples/boundary.cpp (contents, props changed)
   trunk/libs/locale/examples/calendar.cpp (contents, props changed)
   trunk/libs/locale/examples/collate.cpp (contents, props changed)
   trunk/libs/locale/examples/conversions.cpp (contents, props changed)
   trunk/libs/locale/examples/hello.cpp (contents, props changed)
   trunk/libs/locale/examples/wboundary.cpp (contents, props changed)
   trunk/libs/locale/examples/wconversions.cpp (contents, props changed)
   trunk/libs/locale/examples/whello.cpp (contents, props changed)
   trunk/libs/locale/index.html (contents, props changed)
   trunk/libs/locale/performance/
   trunk/libs/locale/performance/perf_collate.cpp (contents, props changed)
   trunk/libs/locale/performance/perf_convert.cpp (contents, props changed)
   trunk/libs/locale/performance/perf_format.cpp (contents, props changed)
   trunk/libs/locale/src/
   trunk/libs/locale/src/encoding/
   trunk/libs/locale/src/encoding/codepage.cpp (contents, props changed)
   trunk/libs/locale/src/encoding/conv.hpp (contents, props changed)
   trunk/libs/locale/src/encoding/iconv_codepage.ipp (contents, props changed)
   trunk/libs/locale/src/encoding/uconv_codepage.ipp (contents, props changed)
   trunk/libs/locale/src/encoding/wconv_codepage.ipp (contents, props changed)
   trunk/libs/locale/src/icu/
   trunk/libs/locale/src/icu/all_generator.hpp (contents, props changed)
   trunk/libs/locale/src/icu/boundary.cpp (contents, props changed)
   trunk/libs/locale/src/icu/cdata.hpp (contents, props changed)
   trunk/libs/locale/src/icu/codecvt.cpp (contents, props changed)
   trunk/libs/locale/src/icu/codecvt.hpp (contents, props changed)
   trunk/libs/locale/src/icu/collator.cpp (contents, props changed)
   trunk/libs/locale/src/icu/conversion.cpp (contents, props changed)
   trunk/libs/locale/src/icu/date_time.cpp (contents, props changed)
   trunk/libs/locale/src/icu/formatter.cpp (contents, props changed)
   trunk/libs/locale/src/icu/formatter.hpp (contents, props changed)
   trunk/libs/locale/src/icu/icu_backend.cpp (contents, props changed)
   trunk/libs/locale/src/icu/icu_backend.hpp (contents, props changed)
   trunk/libs/locale/src/icu/icu_util.hpp (contents, props changed)
   trunk/libs/locale/src/icu/numeric.cpp (contents, props changed)
   trunk/libs/locale/src/icu/predefined_formatters.hpp (contents, props changed)
   trunk/libs/locale/src/icu/time_zone.cpp (contents, props changed)
   trunk/libs/locale/src/icu/time_zone.hpp (contents, props changed)
   trunk/libs/locale/src/icu/uconv.hpp (contents, props changed)
   trunk/libs/locale/src/posix/
   trunk/libs/locale/src/posix/all_generator.hpp (contents, props changed)
   trunk/libs/locale/src/posix/codecvt.cpp (contents, props changed)
   trunk/libs/locale/src/posix/codecvt.hpp (contents, props changed)
   trunk/libs/locale/src/posix/collate.cpp (contents, props changed)
   trunk/libs/locale/src/posix/converter.cpp (contents, props changed)
   trunk/libs/locale/src/posix/numeric.cpp (contents, props changed)
   trunk/libs/locale/src/posix/posix_backend.cpp (contents, props changed)
   trunk/libs/locale/src/posix/posix_backend.hpp (contents, props changed)
   trunk/libs/locale/src/shared/
   trunk/libs/locale/src/shared/date_time.cpp (contents, props changed)
   trunk/libs/locale/src/shared/format.cpp (contents, props changed)
   trunk/libs/locale/src/shared/formatting.cpp (contents, props changed)
   trunk/libs/locale/src/shared/generator.cpp (contents, props changed)
   trunk/libs/locale/src/shared/ids.cpp (contents, props changed)
   trunk/libs/locale/src/shared/ios_prop.hpp (contents, props changed)
   trunk/libs/locale/src/shared/localization_backend.cpp (contents, props changed)
   trunk/libs/locale/src/shared/message.cpp (contents, props changed)
   trunk/libs/locale/src/shared/mo_hash.hpp (contents, props changed)
   trunk/libs/locale/src/shared/mo_lambda.cpp (contents, props changed)
   trunk/libs/locale/src/shared/mo_lambda.hpp (contents, props changed)
   trunk/libs/locale/src/std/
   trunk/libs/locale/src/std/all_generator.hpp (contents, props changed)
   trunk/libs/locale/src/std/codecvt.cpp (contents, props changed)
   trunk/libs/locale/src/std/collate.cpp (contents, props changed)
   trunk/libs/locale/src/std/converter.cpp (contents, props changed)
   trunk/libs/locale/src/std/numeric.cpp (contents, props changed)
   trunk/libs/locale/src/std/std_backend.cpp (contents, props changed)
   trunk/libs/locale/src/std/std_backend.hpp (contents, props changed)
   trunk/libs/locale/src/util/
   trunk/libs/locale/src/util/codecvt_converter.cpp (contents, props changed)
   trunk/libs/locale/src/util/default_locale.cpp (contents, props changed)
   trunk/libs/locale/src/util/gregorian.cpp (contents, props changed)
   trunk/libs/locale/src/util/gregorian.hpp (contents, props changed)
   trunk/libs/locale/src/util/iconv.hpp (contents, props changed)
   trunk/libs/locale/src/util/info.cpp (contents, props changed)
   trunk/libs/locale/src/util/locale_data.cpp (contents, props changed)
   trunk/libs/locale/src/util/locale_data.hpp (contents, props changed)
   trunk/libs/locale/src/util/numeric.hpp (contents, props changed)
   trunk/libs/locale/src/util/timezone.hpp (contents, props changed)
   trunk/libs/locale/src/win32/
   trunk/libs/locale/src/win32/all_generator.hpp (contents, props changed)
   trunk/libs/locale/src/win32/api.hpp (contents, props changed)
   trunk/libs/locale/src/win32/collate.cpp (contents, props changed)
   trunk/libs/locale/src/win32/converter.cpp (contents, props changed)
   trunk/libs/locale/src/win32/lcid.cpp (contents, props changed)
   trunk/libs/locale/src/win32/lcid.hpp (contents, props changed)
   trunk/libs/locale/src/win32/numeric.cpp (contents, props changed)
   trunk/libs/locale/src/win32/win_backend.cpp (contents, props changed)
   trunk/libs/locale/src/win32/win_backend.hpp (contents, props changed)
   trunk/libs/locale/test/
   trunk/libs/locale/test/Jamfile.v2 (contents, props changed)
   trunk/libs/locale/test/generate_catalogs.sh (contents, props changed)
   trunk/libs/locale/test/he/
   trunk/libs/locale/test/he/LC_MESSAGES/
   trunk/libs/locale/test/he/LC_MESSAGES/default.mo (contents, props changed)
   trunk/libs/locale/test/he/LC_MESSAGES/default.po (contents, props changed)
   trunk/libs/locale/test/he/LC_MESSAGES/fall.mo (contents, props changed)
   trunk/libs/locale/test/he/LC_MESSAGES/fall.po (contents, props changed)
   trunk/libs/locale/test/he/LC_MESSAGES/simple.mo (contents, props changed)
   trunk/libs/locale/test/he/LC_MESSAGES/simple.po (contents, props changed)
   trunk/libs/locale/test/he_IL/
   trunk/libs/locale/test/he_IL/LC_MESSAGES/
   trunk/libs/locale/test/he_IL/LC_MESSAGES/full.mo (contents, props changed)
   trunk/libs/locale/test/he_IL/LC_MESSAGES/full.po (contents, props changed)
   trunk/libs/locale/test/test_boundary.cpp (contents, props changed)
   trunk/libs/locale/test/test_codepage.cpp (contents, props changed)
   trunk/libs/locale/test/test_codepage_converter.cpp (contents, props changed)
   trunk/libs/locale/test/test_collate.cpp (contents, props changed)
   trunk/libs/locale/test/test_convert.cpp (contents, props changed)
   trunk/libs/locale/test/test_date_time.cpp (contents, props changed)
   trunk/libs/locale/test/test_formatting.cpp (contents, props changed)
   trunk/libs/locale/test/test_generator.cpp (contents, props changed)
   trunk/libs/locale/test/test_icu_vs_os_timezone.cpp (contents, props changed)
   trunk/libs/locale/test/test_ios_prop.cpp (contents, props changed)
   trunk/libs/locale/test/test_locale.hpp (contents, props changed)
   trunk/libs/locale/test/test_locale_tools.hpp (contents, props changed)
   trunk/libs/locale/test/test_message.cpp (contents, props changed)
   trunk/libs/locale/test/test_posix_collate.cpp (contents, props changed)
   trunk/libs/locale/test/test_posix_convert.cpp (contents, props changed)
   trunk/libs/locale/test/test_posix_formatting.cpp (contents, props changed)
   trunk/libs/locale/test/test_posix_tools.hpp (contents, props changed)
   trunk/libs/locale/test/test_std_collate.cpp (contents, props changed)
   trunk/libs/locale/test/test_std_convert.cpp (contents, props changed)
   trunk/libs/locale/test/test_std_formatting.cpp (contents, props changed)
   trunk/libs/locale/test/test_winapi_collate.cpp (contents, props changed)
   trunk/libs/locale/test/test_winapi_convert.cpp (contents, props changed)
   trunk/libs/locale/test/test_winapi_formatting.cpp (contents, props changed)
   trunk/libs/locale/tools/
   trunk/libs/locale/tools/cross-compile-gettext.sh (contents, props changed)

Added: trunk/boost/locale.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,27 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_HPP_INCLUDED
+#define BOOST_LOCALE_HPP_INCLUDED
+
+#include <boost/locale/boundary.hpp>
+#include <boost/locale/collator.hpp>
+#include <boost/locale/conversion.hpp>
+#include <boost/locale/date_time.hpp>
+#include <boost/locale/date_time_facet.hpp>
+#include <boost/locale/encoding.hpp>
+#include <boost/locale/format.hpp>
+#include <boost/locale/formatting.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/gnu_gettext.hpp>
+#include <boost/locale/info.hpp>
+#include <boost/locale/localization_backend.hpp>
+#include <boost/locale/message.hpp>
+#include <boost/locale/util.hpp>
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/boost/locale/boundary.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/boundary.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,18 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_BOUNDARY_HPP_INCLUDED
+#define BOOST_LOCALE_BOUNDARY_HPP_INCLUDED
+
+#include <boost/locale/boundary/types.hpp>
+#include <boost/locale/boundary/facets.hpp>
+#include <boost/locale/boundary/segment.hpp>
+#include <boost/locale/boundary/boundary_point.hpp>
+#include <boost/locale/boundary/index.hpp>
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/boost/locale/boundary/boundary_point.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/boundary/boundary_point.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,183 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_BOUNDARY_BOUNDARY_POINT_HPP_INCLUDED
+#define BOOST_LOCALE_BOUNDARY_BOUNDARY_POINT_HPP_INCLUDED
+
+#include <boost/locale/boundary/types.hpp>
+
+namespace boost {
+namespace locale {
+namespace boundary {
+
+ ///
+ /// \addtogroup boundary
+ /// @{
+
+ ///
+ /// \brief This class represents a boundary point in the text.
+ ///
+ /// It represents a pair - an iterator and a rule that defines this
+ /// point.
+ ///
+ /// This type of object is dereference by the iterators of boundary_point_index. Using a rule()
+ /// member function you can get the reason why this specific boundary point was selected.
+ ///
+ /// For example, When you use a sentence boundary analysis, the (rule() & \ref sentence_term) != 0 means
+ /// that this boundary point was selected because a sentence terminator (like .?!) was spotted
+ /// and the (rule() & \ref sentence_sep)!=0 means that a separator like line feed or carriage
+ /// return was observed.
+ ///
+ /// \note
+ ///
+ /// - The beginning of analyzed range is always considered a boundary point and its rule is always 0.
+ /// - when using a word boundary analysis the returned rule relates to a chunk of text preceding
+ /// this point.
+ ///
+ /// \see
+ ///
+ /// - \ref boundary_point_index
+ /// - \ref segment
+ /// - \ref segment_index
+ ///
+ template<typename IteratorType>
+ class boundary_point {
+ public:
+ ///
+ /// The type of the base iterator that iterates the original text
+ ///
+ typedef IteratorType iterator_type;
+
+ ///
+ /// Empty default constructor
+ ///
+ boundary_point() : rule_(0) {}
+
+ ///
+ /// Create a new boundary_point using iterator \p and a rule \a r
+ ///
+ boundary_point(iterator_type p,rule_type r) :
+ iterator_(p),
+ rule_(r)
+ {
+ }
+ ///
+ /// Set an new iterator value \a i
+ ///
+ void iterator(iterator_type i)
+ {
+ iterator_ = i;
+ }
+ ///
+ /// Set an new rule value \a r
+ ///
+ void rule(rule_type r)
+ {
+ rule_ = r;
+ }
+ ///
+ /// Fetch an iterator
+ ///
+ iterator_type iterator() const
+ {
+ return iterator_;
+ }
+ ///
+ /// Fetch a rule
+ ///
+ rule_type rule() const
+ {
+ return rule_;
+ }
+ ///
+ /// Check if two boundary points are the same
+ ///
+ bool operator==(boundary_point const &other) const
+ {
+ return iterator_ == other.iterator_ && rule_ = other.rule_;
+ }
+ ///
+ /// Check if two boundary points are different
+ ///
+ bool operator!=(boundary_point const &other) const
+ {
+ return !(*this==other);
+ }
+ ///
+ /// Check if the boundary point points to same location as an iterator \a other
+ ///
+ bool operator==(iterator_type const &other) const
+ {
+ return iterator_ == other;
+ }
+ ///
+ /// Check if the boundary point points to different location from an iterator \a other
+ ///
+ bool operator!=(iterator_type const &other) const
+ {
+ return iterator_ != other;
+ }
+
+ ///
+ /// Automatic cast to the iterator it represents
+ ///
+ operator iterator_type ()const
+ {
+ return iterator_;
+ }
+
+ private:
+ iterator_type iterator_;
+ rule_type rule_;
+
+ };
+ ///
+ /// Check if the boundary point \a r points to same location as an iterator \a l
+ ///
+ template<typename BaseIterator>
+ bool operator==(BaseIterator const &l,boundary_point<BaseIterator> const &r)
+ {
+ return r==l;
+ }
+ ///
+ /// Check if the boundary point \a r points to different location from an iterator \a l
+ ///
+ template<typename BaseIterator>
+ bool operator!=(BaseIterator const &l,boundary_point<BaseIterator> const &r)
+ {
+ return r!=l;
+ }
+
+ /// @}
+
+ typedef boundary_point<std::string::const_iterator> sboundary_point; ///< convenience typedef
+ typedef boundary_point<std::wstring::const_iterator> wsboundary_point; ///< convenience typedef
+ #ifdef BOOST_HAS_CHAR16_T
+ typedef boundary_point<std::u16string::const_iterator> u16sboundary_point;///< convenience typedef
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ typedef boundary_point<std::u32string::const_iterator> u32sboundary_point;///< convenience typedef
+ #endif
+
+ typedef boundary_point<char const *> cboundary_point; ///< convenience typedef
+ typedef boundary_point<wchar_t const *> wcboundary_point; ///< convenience typedef
+ #ifdef BOOST_HAS_CHAR16_T
+ typedef boundary_point<char16_t const *> u16cboundary_point; ///< convenience typedef
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ typedef boundary_point<char32_t const *> u32cboundary_point; ///< convenience typedef
+ #endif
+
+
+} // boundary
+} // locale
+} // boost
+
+
+#endif
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/boost/locale/boundary/facets.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/boundary/facets.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,203 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_BOUNDARY_FACETS_HPP_INCLUDED
+#define BOOST_LOCALE_BOUNDARY_FACETS_HPP_INCLUDED
+
+#include <boost/locale/config.hpp>
+#include <boost/locale/boundary/types.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+#include <locale>
+#include <vector>
+
+
+
+
+namespace boost {
+
+ namespace locale {
+
+ ///
+ /// \brief This namespae contains all operations required for boundary analysis of text
+ ///
+ namespace boundary {
+ ///
+ /// \addtogroup boundary
+ ///
+ /// @{
+ ///
+
+
+ ///
+ /// \brief This structure is used for representing boundary point
+ /// that follows the offset.
+ ///
+ struct break_info {
+
+ ///
+ /// Create empty break point at beginning
+ ///
+ break_info() :
+ offset(0),
+ rule(0)
+ {
+ }
+ ///
+ /// Create empty break point at offset v.
+ /// it is useful for order comparison with other points.
+ ///
+ break_info(size_t v) :
+ offset(v),
+ rule(0)
+ {
+ }
+
+ ///
+ /// Offset from the beggining of the text where a break occurs.
+ ///
+ size_t offset;
+ ///
+ /// The identification of this break point according to
+ /// various break types
+ ///
+ rule_type rule;
+
+ ///
+ /// Compare two break points' offset. Allows to search with
+ /// standard algorithms over the index.
+ ///
+ bool operator<(break_info const &other) const
+ {
+ return offset < other.offset;
+ }
+ };
+
+ ///
+ /// This type holds the analysis of the text - all its break points
+ /// with marks
+ ///
+ typedef std::vector<break_info> index_type;
+
+
+ template<typename CharType>
+ class boundary_indexing;
+
+ #ifdef BOOST_LOCALE_DOXYGEN
+ ///
+ /// \brief This facet generates an index for boundary analysis
+ /// for a given text.
+ ///
+ /// It is specialized for 4 types of characters \c char_t, \c wchar_t, \c char16_t and \c char32_t
+ ///
+ template<typename Char>
+ class BOOST_LOCALE_DECL boundary_indexing : public std::locale::facet {
+ public:
+ ///
+ /// Default constructor typical for facets
+ ///
+ boundary_indexing(size_t refs=0) : std::locale::facet(refs)
+ {
+ }
+ ///
+ /// Create index for boundary type \a t for text in range [begin,end)
+ ///
+ /// The returned value is an index of type \ref index_type. Note that this
+ /// index is never empty, even if the range [begin,end) is empty it consists
+ /// of at least one boundary point with the offset 0.
+ ///
+ virtual index_type map(boundary_type t,Char const *begin,Char const *end) const = 0;
+ ///
+ /// Identification of this facet
+ ///
+ static std::locale::id id;
+
+ #if defined (__SUNPRO_CC) && defined (_RWSTD_VER)
+ std::locale::id& __get_id (void) const { return id; }
+ #endif
+ };
+
+ #else
+
+ template<>
+ class BOOST_LOCALE_DECL boundary_indexing<char> : public std::locale::facet {
+ public:
+ boundary_indexing(size_t refs=0) : std::locale::facet(refs)
+ {
+ }
+ virtual index_type map(boundary_type t,char const *begin,char const *end) const = 0;
+ static std::locale::id id;
+ #if defined (__SUNPRO_CC) && defined (_RWSTD_VER)
+ std::locale::id& __get_id (void) const { return id; }
+ #endif
+ };
+
+ template<>
+ class BOOST_LOCALE_DECL boundary_indexing<wchar_t> : public std::locale::facet {
+ public:
+ boundary_indexing(size_t refs=0) : std::locale::facet(refs)
+ {
+ }
+ virtual index_type map(boundary_type t,wchar_t const *begin,wchar_t const *end) const = 0;
+
+ static std::locale::id id;
+ #if defined (__SUNPRO_CC) && defined (_RWSTD_VER)
+ std::locale::id& __get_id (void) const { return id; }
+ #endif
+ };
+
+ #ifdef BOOST_HAS_CHAR16_T
+ template<>
+ class BOOST_LOCALE_DECL boundary_indexing<char16_t> : public std::locale::facet {
+ public:
+ boundary_indexing(size_t refs=0) : std::locale::facet(refs)
+ {
+ }
+ virtual index_type map(boundary_type t,char16_t const *begin,char16_t const *end) const = 0;
+ static std::locale::id id;
+ #if defined (__SUNPRO_CC) && defined (_RWSTD_VER)
+ std::locale::id& __get_id (void) const { return id; }
+ #endif
+ };
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+ template<>
+ class BOOST_LOCALE_DECL boundary_indexing<char32_t> : public std::locale::facet {
+ public:
+ boundary_indexing(size_t refs=0) : std::locale::facet(refs)
+ {
+ }
+ virtual index_type map(boundary_type t,char32_t const *begin,char32_t const *end) const = 0;
+ static std::locale::id id;
+ #if defined (__SUNPRO_CC) && defined (_RWSTD_VER)
+ std::locale::id& __get_id (void) const { return id; }
+ #endif
+ };
+ #endif
+
+ #endif
+
+ ///
+ /// @}
+ ///
+
+
+ } // boundary
+
+ } // locale
+} // boost
+
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/boost/locale/boundary/index.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/boundary/index.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,1113 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_BOUNDARY_INDEX_HPP_INCLUDED
+#define BOOST_LOCALE_BOUNDARY_INDEX_HPP_INCLUDED
+
+#include <boost/locale/config.hpp>
+#include <boost/locale/boundary/types.hpp>
+#include <boost/locale/boundary/facets.hpp>
+#include <boost/locale/boundary/segment.hpp>
+#include <boost/locale/boundary/boundary_point.hpp>
+#include <boost/iterator/iterator_facade.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/cstdint.hpp>
+#include <boost/assert.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+#include <string>
+#include <locale>
+#include <vector>
+#include <iterator>
+#include <algorithm>
+#include <stdexcept>
+
+#include <iostream>
+
+namespace boost {
+
+ namespace locale {
+
+ namespace boundary {
+ ///
+ /// \defgroup boundary Boundary Analysis
+ ///
+ /// This module contains all operations required for %boundary analysis of text: character, word, like and sentence boundaries
+ ///
+ /// @{
+ ///
+
+ /// \cond INTERNAL
+
+ namespace details {
+
+ template<typename IteratorType,typename CategoryType = typename std::iterator_traits<IteratorType>::iterator_category>
+ struct mapping_traits {
+ typedef typename std::iterator_traits<IteratorType>::value_type char_type;
+ static index_type map(boundary_type t,IteratorType b,IteratorType e,std::locale const &l)
+ {
+ std::basic_string<char_type> str(b,e);
+ return std::use_facet<boundary_indexing<char_type> >(l).map(t,str.c_str(),str.c_str()+str.size());
+ }
+ };
+
+ template<typename CharType,typename SomeIteratorType>
+ struct linear_iterator_traits {
+ static const bool is_linear = false;
+ };
+
+ template<typename CharType>
+ struct linear_iterator_traits<CharType,typename std::basic_string<CharType>::iterator> {
+ static const bool is_linear = true;
+ };
+
+ template<typename CharType>
+ struct linear_iterator_traits<CharType,typename std::basic_string<CharType>::const_iterator> {
+ static const bool is_linear = true;
+ };
+
+ template<typename CharType>
+ struct linear_iterator_traits<CharType,typename std::vector<CharType>::iterator> {
+ static const bool is_linear = true;
+ };
+
+ template<typename CharType>
+ struct linear_iterator_traits<CharType,typename std::vector<CharType>::const_iterator> {
+ static const bool is_linear = true;
+ };
+
+ template<typename CharType>
+ struct linear_iterator_traits<CharType,CharType *> {
+ static const bool is_linear = true;
+ };
+
+ template<typename CharType>
+ struct linear_iterator_traits<CharType,CharType const *> {
+ static const bool is_linear = true;
+ };
+
+
+ template<typename IteratorType>
+ struct mapping_traits<IteratorType,std::random_access_iterator_tag> {
+
+ typedef typename std::iterator_traits<IteratorType>::value_type char_type;
+
+
+
+ static index_type map(boundary_type t,IteratorType b,IteratorType e,std::locale const &l)
+ {
+ index_type result;
+
+ //
+ // Optimize for most common cases
+ //
+ // C++0x requires that string is continious in memory and all known
+ // string implementations
+ // do this because of c_str() support.
+ //
+
+ if(linear_iterator_traits<char_type,IteratorType>::is_linear && b!=e)
+ {
+ char_type const *begin = &*b;
+ char_type const *end = begin + (e-b);
+ index_type tmp=std::use_facet<boundary_indexing<char_type> >(l).map(t,begin,end);
+ result.swap(tmp);
+ }
+ else {
+ std::basic_string<char_type> str(b,e);
+ index_type tmp = std::use_facet<boundary_indexing<char_type> >(l).map(t,str.c_str(),str.c_str()+str.size());
+ result.swap(tmp);
+ }
+ return result;
+ }
+ };
+
+ template<typename BaseIterator>
+ class mapping {
+ public:
+ typedef BaseIterator base_iterator;
+ typedef typename std::iterator_traits<base_iterator>::value_type char_type;
+
+
+ mapping(boundary_type type,
+ base_iterator begin,
+ base_iterator end,
+ std::locale const &loc)
+ :
+ index_(new index_type()),
+ begin_(begin),
+ end_(end)
+ {
+ index_type idx=details::mapping_traits<base_iterator>::map(type,begin,end,loc);
+ index_->swap(idx);
+ }
+
+ mapping()
+ {
+ }
+
+ index_type const &index() const
+ {
+ return *index_;
+ }
+
+ base_iterator begin() const
+ {
+ return begin_;
+ }
+
+ base_iterator end() const
+ {
+ return end_;
+ }
+
+ private:
+ boost::shared_ptr<index_type> index_;
+ base_iterator begin_,end_;
+ };
+
+ template<typename BaseIterator>
+ class segment_index_iterator :
+ public boost::iterator_facade<
+ segment_index_iterator<BaseIterator>,
+ segment<BaseIterator>,
+ boost::bidirectional_traversal_tag,
+ segment<BaseIterator> const &
+ >
+ {
+ public:
+ typedef BaseIterator base_iterator;
+ typedef mapping<base_iterator> mapping_type;
+ typedef segment<base_iterator> segment_type;
+
+ segment_index_iterator() : current_(0,0),map_(0)
+ {
+ }
+
+ segment_index_iterator(base_iterator p,mapping_type const *map,rule_type mask,bool full_select) :
+ map_(map),
+ mask_(mask),
+ full_select_(full_select)
+ {
+ set(p);
+ }
+ segment_index_iterator(bool is_begin,mapping_type const *map,rule_type mask,bool full_select) :
+ map_(map),
+ mask_(mask),
+ full_select_(full_select)
+ {
+ if(is_begin)
+ set_begin();
+ else
+ set_end();
+ }
+
+ segment_type const &dereference() const
+ {
+ return value_;
+ }
+
+ bool equal(segment_index_iterator const &other) const
+ {
+ return map_ == other.map_ && current_.second == other.current_.second;
+ }
+
+ void increment()
+ {
+ std::pair<size_t,size_t> next = current_;
+ if(full_select_) {
+ next.first = next.second;
+ while(next.second < size()) {
+ next.second++;
+ if(valid_offset(next.second))
+ break;
+ }
+ if(next.second == size())
+ next.first = next.second - 1;
+ }
+ else {
+ while(next.second < size()) {
+ next.first = next.second;
+ next.second++;
+ if(valid_offset(next.second))
+ break;
+ }
+ }
+ update_current(next);
+ }
+
+ void decrement()
+ {
+ std::pair<size_t,size_t> next = current_;
+ if(full_select_) {
+ while(next.second >1) {
+ next.second--;
+ if(valid_offset(next.second))
+ break;
+ }
+ next.first = next.second;
+ while(next.first >0) {
+ next.first--;
+ if(valid_offset(next.first))
+ break;
+ }
+ }
+ else {
+ while(next.second >1) {
+ next.second--;
+ if(valid_offset(next.second))
+ break;
+ }
+ next.first = next.second - 1;
+ }
+ update_current(next);
+ }
+
+ private:
+
+ void set_end()
+ {
+ current_.first = size() - 1;
+ current_.second = size();
+ value_ = segment_type(map_->end(),map_->end(),0);
+ }
+ void set_begin()
+ {
+ current_.first = current_.second = 0;
+ value_ = segment_type(map_->begin(),map_->begin(),0);
+ increment();
+ }
+
+ void set(base_iterator p)
+ {
+ size_t dist=std::distance(map_->begin(),p);
+ index_type::const_iterator b=map_->index().begin(),e=map_->index().end();
+ index_type::const_iterator
+ boundary_point=std::upper_bound(b,e,break_info(dist));
+ while(boundary_point != e && (boundary_point->rule & mask_)==0)
+ boundary_point++;
+
+ current_.first = current_.second = boundary_point - b;
+
+ if(full_select_) {
+ while(current_.first > 0) {
+ current_.first --;
+ if(valid_offset(current_.first))
+ break;
+ }
+ }
+ else {
+ if(current_.first > 0)
+ current_.first --;
+ }
+ value_.first = map_->begin();
+ std::advance(value_.first,get_offset(current_.first));
+ value_.second = value_.first;
+ std::advance(value_.second,get_offset(current_.second) - get_offset(current_.first));
+
+ update_rule();
+ }
+
+ void update_current(std::pair<size_t,size_t> pos)
+ {
+ std::ptrdiff_t first_diff = get_offset(pos.first) - get_offset(current_.first);
+ std::ptrdiff_t second_diff = get_offset(pos.second) - get_offset(current_.second);
+ std::advance(value_.first,first_diff);
+ std::advance(value_.second,second_diff);
+ current_ = pos;
+ update_rule();
+ }
+
+ void update_rule()
+ {
+ if(current_.second != size()) {
+ value_.rule(index()[current_.second].rule);
+ }
+ }
+ size_t get_offset(size_t ind) const
+ {
+ if(ind == size())
+ return index().back().offset;
+ return index()[ind].offset;
+ }
+
+ bool valid_offset(size_t offset) const
+ {
+ return offset == 0
+ || offset == size() // make sure we not acess index[size]
+ || (index()[offset].rule & mask_)!=0;
+ }
+
+ size_t size() const
+ {
+ return index().size();
+ }
+
+ index_type const &index() const
+ {
+ return map_->index();
+ }
+
+
+ segment_type value_;
+ std::pair<size_t,size_t> current_;
+ mapping_type const *map_;
+ rule_type mask_;
+ bool full_select_;
+ };
+
+ template<typename BaseIterator>
+ class boundary_point_index_iterator :
+ public boost::iterator_facade<
+ boundary_point_index_iterator<BaseIterator>,
+ boundary_point<BaseIterator>,
+ boost::bidirectional_traversal_tag,
+ boundary_point<BaseIterator> const &
+ >
+ {
+ public:
+ typedef BaseIterator base_iterator;
+ typedef mapping<base_iterator> mapping_type;
+ typedef boundary_point<base_iterator> boundary_point_type;
+
+ boundary_point_index_iterator() : current_(0),map_(0)
+ {
+ }
+
+ boundary_point_index_iterator(bool is_begin,mapping_type const *map,rule_type mask) :
+ map_(map),
+ mask_(mask)
+ {
+ if(is_begin)
+ set_begin();
+ else
+ set_end();
+ }
+ boundary_point_index_iterator(base_iterator p,mapping_type const *map,rule_type mask) :
+ map_(map),
+ mask_(mask)
+ {
+ set(p);
+ }
+
+ boundary_point_type const &dereference() const
+ {
+ return value_;
+ }
+
+ bool equal(boundary_point_index_iterator const &other) const
+ {
+ return map_ == other.map_ && current_ == other.current_;
+ }
+
+ void increment()
+ {
+ size_t next = current_;
+ while(next < size()) {
+ next++;
+ if(valid_offset(next))
+ break;
+ }
+ update_current(next);
+ }
+
+ void decrement()
+ {
+ size_t next = current_;
+ while(next>0) {
+ next--;
+ if(valid_offset(next))
+ break;
+ }
+ update_current(next);
+ }
+
+ private:
+ void set_end()
+ {
+ current_ = size();
+ value_ = boundary_point_type(map_->end(),0);
+ }
+ void set_begin()
+ {
+ current_ = 0;
+ value_ = boundary_point_type(map_->begin(),0);
+ }
+
+ void set(base_iterator p)
+ {
+ size_t dist = std::distance(map_->begin(),p);
+
+ index_type::const_iterator b=index().begin();
+ index_type::const_iterator e=index().end();
+ index_type::const_iterator ptr = std::lower_bound(b,e,break_info(dist));
+
+ if(ptr==index().end())
+ current_=size()-1;
+ else
+ current_=ptr - index().begin();
+
+ while(!valid_offset(current_))
+ current_ ++;
+
+ std::ptrdiff_t diff = get_offset(current_) - dist;
+ std::advance(p,diff);
+ value_.iterator(p);
+ update_rule();
+ }
+
+ void update_current(size_t pos)
+ {
+ std::ptrdiff_t diff = get_offset(pos) - get_offset(current_);
+ base_iterator i=value_.iterator();
+ std::advance(i,diff);
+ current_ = pos;
+ value_.iterator(i);
+ update_rule();
+ }
+
+ void update_rule()
+ {
+ if(current_ != size()) {
+ value_.rule(index()[current_].rule);
+ }
+ }
+ size_t get_offset(size_t ind) const
+ {
+ if(ind == size())
+ return index().back().offset;
+ return index()[ind].offset;
+ }
+
+ bool valid_offset(size_t offset) const
+ {
+ return offset == 0
+ || offset + 1 >= size() // last and first are always valid regardless of mark
+ || (index()[offset].rule & mask_)!=0;
+ }
+
+ size_t size() const
+ {
+ return index().size();
+ }
+
+ index_type const &index() const
+ {
+ return map_->index();
+ }
+
+
+ boundary_point_type value_;
+ size_t current_;
+ mapping_type const *map_;
+ rule_type mask_;
+ };
+
+
+ } // details
+
+ /// \endcond
+
+ template<typename BaseIterator>
+ class segment_index;
+
+ template<typename BaseIterator>
+ class boundary_point_index;
+
+
+ ///
+ /// \brief This class holds an index of segments in the text range and allows to iterate over them
+ ///
+ /// This class is provides \ref begin() and \ref end() member functions that return bidirectional iterators
+ /// to the \ref segment objects.
+ ///
+ /// It provides two options on way of selecting segments:
+ ///
+ /// - \ref rule(rule_type mask) - a mask that allows to select only specific types of segments according to
+ /// various masks %as \ref word_any.
+ /// \n
+ /// The default is to select any types of boundaries.
+ /// \n
+ /// For example: using word %boundary analysis, when the provided mask is \ref word_kana then the iterators
+ /// would iterate only over the words containing Kana letters and \ref word_any would select all types of
+ /// words excluding ranges that consist of white space and punctuation marks. So iterating over the text
+ /// "to be or not to be?" with \ref word_any rule would return segments "to", "be", "or", "not", "to", "be", instead
+ /// of default "to", " ", "be", " ", "or", " ", "not", " ", "to", " ", "be", "?".
+ /// - \ref full_select(bool how) - a flag that defines the way a range is selected if the rule of the previous
+ /// %boundary point does not fit the selected rule.
+ /// \n
+ /// For example: We want to fetch all sentences from the following text: "Hello! How\nare you?".
+ /// \n
+ /// This text contains three %boundary points separating it to sentences by different rules:
+ /// - The exclamation mark "!" ends the sentence "Hello!"
+ /// - The line feed that splits the sentence "How\nare you?" into two parts.
+ /// - The question mark that ends the second sentence.
+ /// \n
+ /// If you would only change the \ref rule() to \ref sentence_term then the segment_index would
+ /// provide two sentences "Hello!" and "are you?" %as only them actually terminated with required
+ /// terminator "!" or "?". But changing \ref full_select() to true, the selected segment would include
+ /// all the text up to previous valid %boundary point and would return two expected sentences:
+ /// "Hello!" and "How\nare you?".
+ ///
+ /// This class allows to find a segment according to the given iterator in range using \ref find() member
+ /// function.
+ ///
+ /// \note
+ ///
+ /// - Changing any of the options - \ref rule() or \ref full_select() and of course re-indexing the text
+ /// invalidates existing iterators and they can't be used any more.
+ /// - segment_index can be created from boundary_point_index or other segment_index that was created with
+ /// same \ref boundary_type. This is very fast operation %as they shared same index
+ /// and it does not require its regeneration.
+ ///
+ /// \see
+ ///
+ /// - \ref boundary_point_index
+ /// - \ref segment
+ /// - \ref boundary_point
+ ///
+
+ template<typename BaseIterator>
+ class segment_index {
+ public:
+
+ ///
+ /// The type of the iterator used to iterate over the original text
+ ///
+ typedef BaseIterator base_iterator;
+ #ifdef BOOST_LOCALE_DOXYGEN
+ ///
+ /// The bidirectional iterator that iterates over \ref value_type objects.
+ ///
+ /// - The iterators may be invalidated by use of any non-const member function
+ /// including but not limited to \ref rule(rule_type) and \ref full_select(bool).
+ /// - The returned value_type object is valid %as long %as iterator points to it.
+ /// So this following code is wrong %as t used after p was updated:
+ /// \code
+ /// segment_index<some_iterator>::iterator p=index.begin();
+ /// segment<some_iterator> &t = *p;
+ /// ++p;
+ /// cout << t.str() << endl;
+ /// \endcode
+ ///
+ typedef unspecified_iterator_type iterator;
+ ///
+ /// \copydoc iterator
+ ///
+ typedef unspecified_iterator_type const_iterator;
+ #else
+ typedef details::segment_index_iterator<base_iterator> iterator;
+ typedef details::segment_index_iterator<base_iterator> const_iterator;
+ #endif
+ ///
+ /// The type dereferenced by the \ref iterator and \ref const_iterator. It is
+ /// an object that represents selected segment.
+ ///
+ typedef segment<base_iterator> value_type;
+
+ ///
+ /// Default constructor.
+ ///
+ /// \note
+ ///
+ /// When this object is constructed by default it does not include a valid index, thus
+ /// calling \ref begin(), \ref end() or \ref find() member functions would lead to undefined
+ /// behavior
+ ///
+ segment_index() : mask_(0xFFFFFFFFu),full_select_(false)
+ {
+ }
+ ///
+ /// Create a segment_index for %boundary analysis \ref boundary_type "type" of the text
+ /// in range [begin,end) using a rule \a mask for locale \a loc.
+ ///
+ segment_index(boundary_type type,
+ base_iterator begin,
+ base_iterator end,
+ rule_type mask,
+ std::locale const &loc=std::locale())
+ :
+ map_(type,begin,end,loc),
+ mask_(mask),
+ full_select_(false)
+ {
+ }
+ ///
+ /// Create a segment_index for %boundary analysis \ref boundary_type "type" of the text
+ /// in range [begin,end) selecting all possible segments (full mask) for locale \a loc.
+ ///
+ segment_index(boundary_type type,
+ base_iterator begin,
+ base_iterator end,
+ std::locale const &loc=std::locale())
+ :
+ map_(type,begin,end,loc),
+ mask_(0xFFFFFFFFu),
+ full_select_(false)
+ {
+ }
+
+ ///
+ /// Create a segment_index from a \ref boundary_point_index. It copies all indexing information
+ /// and used default rule (all possible segments)
+ ///
+ /// This operation is very cheap, so if you use boundary_point_index and segment_index on same text
+ /// range it is much better to create one from another rather then indexing the same
+ /// range twice.
+ ///
+ /// \note \ref rule() flags are not copied
+ ///
+ segment_index(boundary_point_index<base_iterator> const &);
+ ///
+ /// Copy an index from a \ref boundary_point_index. It copies all indexing information
+ /// and uses the default rule (all possible segments)
+ ///
+ /// This operation is very cheap, so if you use boundary_point_index and segment_index on same text
+ /// range it is much better to create one from another rather then indexing the same
+ /// range twice.
+ ///
+ /// \note \ref rule() flags are not copied
+ ///
+ segment_index const &operator = (boundary_point_index<base_iterator> const &);
+
+
+ ///
+ /// Create a new index for %boundary analysis \ref boundary_type "type" of the text
+ /// in range [begin,end) for locale \a loc.
+ ///
+ /// \note \ref rule() and \ref full_select() remain unchanged.
+ ///
+ void map(boundary_type type,base_iterator begin,base_iterator end,std::locale const &loc=std::locale())
+ {
+ map_ = mapping_type(type,begin,end,loc);
+ }
+
+ ///
+ /// Get the \ref iterator on the beginning of the segments range.
+ ///
+ /// Preconditions: the segment_index should have a mapping
+ ///
+ /// \note
+ ///
+ /// The returned iterator is invalidated by access to any non-const member functions of this object
+ ///
+ iterator begin() const
+ {
+ return iterator(true,&map_,mask_,full_select_);
+ }
+
+ ///
+ /// Get the \ref iterator on the ending of the segments range.
+ ///
+ /// Preconditions: the segment_index should have a mapping
+ ///
+ /// The returned iterator is invalidated by access to any non-const member functions of this object
+ ///
+ iterator end() const
+ {
+ return iterator(false,&map_,mask_,full_select_);
+ }
+
+ ///
+ /// Find a first valid segment following a position \a p.
+ ///
+ /// If \a p is inside a valid segment this segment is selected:
+ ///
+ /// For example: For \ref word %boundary analysis with \ref word_any rule():
+ ///
+ /// - "to| be or ", would point to "be",
+ /// - "t|o be or ", would point to "to",
+ /// - "to be or| ", would point to end.
+ ///
+ ///
+ /// Preconditions: the segment_index should have a mapping and \a p should be valid iterator
+ /// to the text in the mapped range.
+ ///
+ /// The returned iterator is invalidated by access to any non-const member functions of this object
+ ///
+ iterator find(base_iterator p) const
+ {
+ return iterator(p,&map_,mask_,full_select_);
+ }
+
+ ///
+ /// Get the mask of rules that are used
+ ///
+ rule_type rule() const
+ {
+ return mask_;
+ }
+ ///
+ /// Set the mask of rules that are used
+ ///
+ void rule(rule_type v)
+ {
+ mask_ = v;
+ }
+
+ ///
+ /// Get the full_select property value - should segment include in the range
+ /// values that not belong to specific \ref rule() or not.
+ ///
+ /// The default value is false.
+ ///
+ /// For example for \ref sentence %boundary with rule \ref sentence_term the segments
+ /// of text "Hello! How\nare you?" are "Hello!\", "are you?" when full_select() is false
+ /// because "How\n" is selected %as sentence by a rule spits the text by line feed. If full_select()
+ /// is true the returned segments are "Hello! ", "How\nare you?" where "How\n" is joined with the
+ /// following part "are you?"
+ ///
+
+ bool full_select() const
+ {
+ return full_select_;
+ }
+
+ ///
+ /// Set the full_select property value - should segment include in the range
+ /// values that not belong to specific \ref rule() or not.
+ ///
+ /// The default value is false.
+ ///
+ /// For example for \ref sentence %boundary with rule \ref sentence_term the segments
+ /// of text "Hello! How\nare you?" are "Hello!\", "are you?" when full_select() is false
+ /// because "How\n" is selected %as sentence by a rule spits the text by line feed. If full_select()
+ /// is true the returned segments are "Hello! ", "How\nare you?" where "How\n" is joined with the
+ /// following part "are you?"
+ ///
+
+ void full_select(bool v)
+ {
+ full_select_ = v;
+ }
+
+ private:
+ friend class boundary_point_index<base_iterator>;
+ typedef details::mapping<base_iterator> mapping_type;
+ mapping_type map_;
+ rule_type mask_;
+ bool full_select_;
+ };
+
+ ///
+ /// \brief This class holds an index of \ref boundary_point "boundary points" and allows iterating
+ /// over them.
+ ///
+ /// This class is provides \ref begin() and \ref end() member functions that return bidirectional iterators
+ /// to the \ref boundary_point objects.
+ ///
+ /// It provides an option that affects selecting %boundary points according to different rules:
+ /// using \ref rule(rule_type mask) member function. It allows to set a mask that select only specific
+ /// types of %boundary points like \ref sentence_term.
+ ///
+ /// For example for a sentence %boundary analysis of a text "Hello! How\nare you?" when the default
+ /// rule is used the %boundary points would be:
+ ///
+ /// - "|Hello! How\nare you?"
+ /// - "Hello! |How\nare you?"
+ /// - "Hello! How\n|are you?"
+ /// - "Hello! How\nare you?|"
+ ///
+ /// However if \ref rule() is set to \ref sentence_term then the selected %boundary points would be:
+ ///
+ /// - "|Hello! How\nare you?"
+ /// - "Hello! |How\nare you?"
+ /// - "Hello! How\nare you?|"
+ ///
+ /// Such that a %boundary point defined by a line feed character would be ignored.
+ ///
+ /// This class allows to find a boundary_point according to the given iterator in range using \ref find() member
+ /// function.
+ ///
+ /// \note
+ /// - Even an empty text range [x,x) considered to have a one %boundary point x.
+ /// - \a a and \a b points of the range [a,b) are always considered %boundary points
+ /// regardless the rules used.
+ /// - Changing any of the option \ref rule() or course re-indexing the text
+ /// invalidates existing iterators and they can't be used any more.
+ /// - boundary_point_index can be created from segment_index or other boundary_point_index that was created with
+ /// same \ref boundary_type. This is very fast operation %as they shared same index
+ /// and it does not require its regeneration.
+ ///
+ /// \see
+ ///
+ /// - \ref segment_index
+ /// - \ref boundary_point
+ /// - \ref segment
+ ///
+
+
+ template<typename BaseIterator>
+ class boundary_point_index {
+ public:
+ ///
+ /// The type of the iterator used to iterate over the original text
+ ///
+ typedef BaseIterator base_iterator;
+ #ifdef BOOST_LOCALE_DOXYGEN
+ ///
+ /// The bidirectional iterator that iterates over \ref value_type objects.
+ ///
+ /// - The iterators may be invalidated by use of any non-const member function
+ /// including but not limited to \ref rule(rule_type) member function.
+ /// - The returned value_type object is valid %as long %as iterator points to it.
+ /// So this following code is wrong %as t used after p was updated:
+ /// \code
+ /// boundary_point_index<some_iterator>::iterator p=index.begin();
+ /// boundary_point<some_iterator> &t = *p;
+ /// ++p;
+ /// rule_type r = t->rule();
+ /// \endcode
+ ///
+ typedef unspecified_iterator_type iterator;
+ ///
+ /// \copydoc iterator
+ ///
+ typedef unspecified_iterator_type const_iterator;
+ #else
+ typedef details::boundary_point_index_iterator<base_iterator> iterator;
+ typedef details::boundary_point_index_iterator<base_iterator> const_iterator;
+ #endif
+ ///
+ /// The type dereferenced by the \ref iterator and \ref const_iterator. It is
+ /// an object that represents the selected \ref boundary_point "boundary point".
+ ///
+ typedef boundary_point<base_iterator> value_type;
+
+ ///
+ /// Default constructor.
+ ///
+ /// \note
+ ///
+ /// When this object is constructed by default it does not include a valid index, thus
+ /// calling \ref begin(), \ref end() or \ref find() member functions would lead to undefined
+ /// behavior
+ ///
+ boundary_point_index() : mask_(0xFFFFFFFFu)
+ {
+ }
+
+ ///
+ /// Create a segment_index for %boundary analysis \ref boundary_type "type" of the text
+ /// in range [begin,end) using a rule \a mask for locale \a loc.
+ ///
+ boundary_point_index(boundary_type type,
+ base_iterator begin,
+ base_iterator end,
+ rule_type mask,
+ std::locale const &loc=std::locale())
+ :
+ map_(type,begin,end,loc),
+ mask_(mask)
+ {
+ }
+ ///
+ /// Create a segment_index for %boundary analysis \ref boundary_type "type" of the text
+ /// in range [begin,end) selecting all possible %boundary points (full mask) for locale \a loc.
+ ///
+ boundary_point_index(boundary_type type,
+ base_iterator begin,
+ base_iterator end,
+ std::locale const &loc=std::locale())
+ :
+ map_(type,begin,end,loc),
+ mask_(0xFFFFFFFFu)
+ {
+ }
+
+ ///
+ /// Create a boundary_point_index from a \ref segment_index. It copies all indexing information
+ /// and uses the default rule (all possible %boundary points)
+ ///
+ /// This operation is very cheap, so if you use boundary_point_index and segment_index on same text
+ /// range it is much better to create one from another rather then indexing the same
+ /// range twice.
+ ///
+ /// \note \ref rule() flags are not copied
+ ///
+ boundary_point_index(segment_index<base_iterator> const &other);
+ ///
+ /// Copy a boundary_point_index from a \ref segment_index. It copies all indexing information
+ /// and keeps the current \ref rule() unchanged
+ ///
+ /// This operation is very cheap, so if you use boundary_point_index and segment_index on same text
+ /// range it is much better to create one from another rather then indexing the same
+ /// range twice.
+ ///
+ /// \note \ref rule() flags are not copied
+ ///
+ boundary_point_index const &operator=(segment_index<base_iterator> const &other);
+
+ ///
+ /// Create a new index for %boundary analysis \ref boundary_type "type" of the text
+ /// in range [begin,end) for locale \a loc.
+ ///
+ /// \note \ref rule() remains unchanged.
+ ///
+ void map(boundary_type type,base_iterator begin,base_iterator end,std::locale const &loc=std::locale())
+ {
+ map_ = mapping_type(type,begin,end,loc);
+ }
+
+ ///
+ /// Get the \ref iterator on the beginning of the %boundary points range.
+ ///
+ /// Preconditions: this boundary_point_index should have a mapping
+ ///
+ /// \note
+ ///
+ /// The returned iterator is invalidated by access to any non-const member functions of this object
+ ///
+ iterator begin() const
+ {
+ return iterator(true,&map_,mask_);
+ }
+
+ ///
+ /// Get the \ref iterator on the ending of the %boundary points range.
+ ///
+ /// Preconditions: this boundary_point_index should have a mapping
+ ///
+ /// \note
+ ///
+ /// The returned iterator is invalidated by access to any non-const member functions of this object
+ ///
+ iterator end() const
+ {
+ return iterator(false,&map_,mask_);
+ }
+
+ ///
+ /// Find a first valid %boundary point on a position \a p or following it.
+ ///
+ /// For example: For \ref word %boundary analysis of the text "to be or"
+ ///
+ /// - "|to be", would return %boundary point at "|to be",
+ /// - "t|o be", would point to "to| be"
+ ///
+ /// Preconditions: the boundary_point_index should have a mapping and \a p should be valid iterator
+ /// to the text in the mapped range.
+ ///
+ /// The returned iterator is invalidated by access to any non-const member functions of this object
+ ///
+ iterator find(base_iterator p) const
+ {
+ return iterator(p,&map_,mask_);
+ }
+
+ ///
+ /// Get the mask of rules that are used
+ ///
+ rule_type rule() const
+ {
+ return mask_;
+ }
+ ///
+ /// Set the mask of rules that are used
+ ///
+ void rule(rule_type v)
+ {
+ mask_ = v;
+ }
+
+ private:
+
+ friend class segment_index<base_iterator>;
+ typedef details::mapping<base_iterator> mapping_type;
+ mapping_type map_;
+ rule_type mask_;
+ };
+
+ /// \cond INTERNAL
+ template<typename BaseIterator>
+ segment_index<BaseIterator>::segment_index(boundary_point_index<BaseIterator> const &other) :
+ map_(other.map_),
+ mask_(0xFFFFFFFFu),
+ full_select_(false)
+ {
+ }
+
+ template<typename BaseIterator>
+ boundary_point_index<BaseIterator>::boundary_point_index(segment_index<BaseIterator> const &other) :
+ map_(other.map_),
+ mask_(0xFFFFFFFFu)
+ {
+ }
+
+ template<typename BaseIterator>
+ segment_index<BaseIterator> const &segment_index<BaseIterator>::operator=(boundary_point_index<BaseIterator> const &other)
+ {
+ map_ = other.map_;
+ return *this;
+ }
+
+ template<typename BaseIterator>
+ boundary_point_index<BaseIterator> const &boundary_point_index<BaseIterator>::operator=(segment_index<BaseIterator> const &other)
+ {
+ map_ = other.map_;
+ return *this;
+ }
+ /// \endcond
+
+ typedef segment_index<std::string::const_iterator> ssegment_index; ///< convenience typedef
+ typedef segment_index<std::wstring::const_iterator> wssegment_index; ///< convenience typedef
+ #ifdef BOOST_HAS_CHAR16_T
+ typedef segment_index<std::u16string::const_iterator> u16ssegment_index;///< convenience typedef
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ typedef segment_index<std::u32string::const_iterator> u32ssegment_index;///< convenience typedef
+ #endif
+
+ typedef segment_index<char const *> csegment_index; ///< convenience typedef
+ typedef segment_index<wchar_t const *> wcsegment_index; ///< convenience typedef
+ #ifdef BOOST_HAS_CHAR16_T
+ typedef segment_index<char16_t const *> u16csegment_index; ///< convenience typedef
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ typedef segment_index<char32_t const *> u32csegment_index; ///< convenience typedef
+ #endif
+
+ typedef boundary_point_index<std::string::const_iterator> sboundary_point_index;///< convenience typedef
+ typedef boundary_point_index<std::wstring::const_iterator> wsboundary_point_index;///< convenience typedef
+ #ifdef BOOST_HAS_CHAR16_T
+ typedef boundary_point_index<std::u16string::const_iterator> u16sboundary_point_index;///< convenience typedef
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ typedef boundary_point_index<std::u32string::const_iterator> u32sboundary_point_index;///< convenience typedef
+ #endif
+
+ typedef boundary_point_index<char const *> cboundary_point_index; ///< convenience typedef
+ typedef boundary_point_index<wchar_t const *> wcboundary_point_index; ///< convenience typedef
+ #ifdef BOOST_HAS_CHAR16_T
+ typedef boundary_point_index<char16_t const *> u16cboundary_point_index;///< convenience typedef
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ typedef boundary_point_index<char32_t const *> u32cboundary_point_index;///< convenience typedef
+ #endif
+
+
+
+ } // boundary
+
+ } // locale
+} // boost
+
+///
+/// \example boundary.cpp
+/// Example of using segment_index
+/// \example wboundary.cpp
+/// Example of using segment_index over wide strings
+///
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/boost/locale/boundary/segment.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/boundary/segment.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,484 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_BOUNDARY_SEGMENT_HPP_INCLUDED
+#define BOOST_LOCALE_BOUNDARY_SEGMENT_HPP_INCLUDED
+#include <boost/locale/config.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+#include <locale>
+#include <string>
+#include <iosfwd>
+#include <iterator>
+
+
+namespace boost {
+namespace locale {
+namespace boundary {
+ /// \cond INTERNAL
+ namespace details {
+ template<typename LeftIterator,typename RightIterator>
+ int compare_text(LeftIterator l_begin,LeftIterator l_end,RightIterator r_begin,RightIterator r_end)
+ {
+ typedef LeftIterator left_iterator;
+ typedef RightIterator right_iterator;
+ typedef typename std::iterator_traits<left_iterator>::value_type char_type;
+ typedef std::char_traits<char_type> traits;
+ while(l_begin!=l_end && r_begin!=r_end) {
+ char_type lchar = *l_begin++;
+ char_type rchar = *r_begin++;
+ if(traits::eq(lchar,rchar))
+ continue;
+ if(traits::lt(lchar,rchar))
+ return -1;
+ else
+ return 1;
+ }
+ if(l_begin==l_end && r_begin==r_end)
+ return 0;
+ if(l_begin==l_end)
+ return -1;
+ else
+ return 1;
+ }
+
+
+ template<typename Left,typename Right>
+ int compare_text(Left const &l,Right const &r)
+ {
+ return compare_text(l.begin(),l.end(),r.begin(),r.end());
+ }
+
+ template<typename Left,typename Char>
+ int compare_string(Left const &l,Char const *begin)
+ {
+ Char const *end = begin;
+ while(*end!=0)
+ end++;
+ return compare_text(l.begin(),l.end(),begin,end);
+ }
+
+ template<typename Right,typename Char>
+ int compare_string(Char const *begin,Right const &r)
+ {
+ Char const *end = begin;
+ while(*end!=0)
+ end++;
+ return compare_text(begin,end,r.begin(),r.end());
+ }
+
+ }
+ /// \endcond
+
+ ///
+ /// \addtogroup boundary
+ /// @{
+
+ ///
+ /// \brief a segment object that represents a pair of two iterators that define the range where
+ /// this segment exits and a rule that defines it.
+ ///
+ /// This type of object is dereferenced by the iterators of segment_index. Using a rule() member function
+ /// you can get a specific rule this segment was selected with. For example, when you use
+ /// word boundary analysis, you can check if the specific word contains Kana letters by checking (rule() & \ref word_kana)!=0
+ /// For a sentence analysis you can check if the sentence is selected because a sentence terminator is found (\ref sentence_term) or
+ /// there is a line break (\ref sentence_sep).
+ ///
+ /// This object can be automatically converted to std::basic_string with the same type of character. It is also
+ /// valid range that has begin() and end() member functions returning iterators on the location of the segment.
+ ///
+ /// \see
+ ///
+ /// - \ref segment_index
+ /// - \ref boundary_point
+ /// - \ref boundary_point_index
+ ///
+ template<typename IteratorType>
+ class segment : public std::pair<IteratorType,IteratorType> {
+ public:
+ ///
+ /// The type of the underlying character
+ ///
+ typedef typename std::iterator_traits<IteratorType>::value_type char_type;
+ ///
+ /// The type of the string it is converted to
+ ///
+ typedef std::basic_string<char_type> string_type;
+ ///
+ /// The value that iterators return - the character itself
+ ///
+ typedef char_type value_type;
+ ///
+ /// The iterator that allows to iterate the range
+ ///
+ typedef IteratorType iterator;
+ ///
+ /// The iterator that allows to iterate the range
+ ///
+ typedef IteratorType const_iterator;
+ ///
+ /// The type that represent a difference between two iterators
+ ///
+ typedef typename std::iterator_traits<IteratorType>::difference_type difference_type;
+
+ ///
+ /// Default constructor
+ ///
+ segment() {}
+ ///
+ /// Create a segment using two iterators and a rule that represents this point
+ ///
+ segment(iterator b,iterator e,rule_type r) :
+ std::pair<IteratorType,IteratorType>(b,e),
+ rule_(r)
+ {
+ }
+ ///
+ /// Set the start of the range
+ ///
+ void begin(iterator const &v)
+ {
+ this->first = v;
+ }
+ ///
+ /// Set the end of the range
+ ///
+ void end(iterator const &v)
+ {
+ this->second = v;
+ }
+
+ ///
+ /// Get the start of the range
+ ///
+ IteratorType begin() const
+ {
+ return this->first;
+ }
+ ///
+ /// Set the end of the range
+ ///
+ IteratorType end() const
+ {
+ return this->second;
+ }
+
+ ///
+ /// Convert the range to a string automatically
+ ///
+ template <class T, class A>
+ operator std::basic_string<char_type, T, A> ()const
+ {
+ return std::basic_string<char_type, T, A>(this->first, this->second);
+ }
+
+ ///
+ /// Create a string from the range explicitly
+ ///
+ string_type str() const
+ {
+ return string_type(begin(),end());
+ }
+
+ ///
+ /// Get the length of the text chunk
+ ///
+
+ size_t length() const
+ {
+ return std::distance(begin(),end());
+ }
+
+ ///
+ /// Check if the segment is empty
+ ///
+ bool empty() const
+ {
+ return begin() == end();
+ }
+
+ ///
+ /// Get the rule that is used for selection of this segment.
+ ///
+ rule_type rule() const
+ {
+ return rule_;
+ }
+ ///
+ /// Set a rule that is used for segment selection
+ ///
+ void rule(rule_type r)
+ {
+ rule_ = r;
+ }
+
+ // make sure we override std::pair's operator==
+
+ /// Compare two segments
+ bool operator==(segment const &other)
+ {
+ return details::compare_text(*this,other) == 0;
+ }
+
+ /// Compare two segments
+ bool operator!=(segment const &other)
+ {
+ return details::compare_text(*this,other) != 0;
+ }
+
+ private:
+ rule_type rule_;
+
+ };
+
+
+ /// Compare two segments
+ template<typename IteratorL,typename IteratorR>
+ bool operator==(segment<IteratorL> const &l,segment<IteratorR> const &r)
+ {
+ return details::compare_text(l,r) == 0;
+ }
+ /// Compare two segments
+ template<typename IteratorL,typename IteratorR>
+ bool operator!=(segment<IteratorL> const &l,segment<IteratorR> const &r)
+ {
+ return details::compare_text(l,r) != 0;
+ }
+
+ /// Compare two segments
+ template<typename IteratorL,typename IteratorR>
+ bool operator<(segment<IteratorL> const &l,segment<IteratorR> const &r)
+ {
+ return details::compare_text(l,r) < 0;
+ }
+ /// Compare two segments
+ template<typename IteratorL,typename IteratorR>
+ bool operator<=(segment<IteratorL> const &l,segment<IteratorR> const &r)
+ {
+ return details::compare_text(l,r) <= 0;
+ }
+ /// Compare two segments
+ template<typename IteratorL,typename IteratorR>
+ bool operator>(segment<IteratorL> const &l,segment<IteratorR> const &r)
+ {
+ return details::compare_text(l,r) > 0;
+ }
+ /// Compare two segments
+ template<typename IteratorL,typename IteratorR>
+ bool operator>=(segment<IteratorL> const &l,segment<IteratorR> const &r)
+ {
+ return details::compare_text(l,r) >= 0;
+ }
+
+ /// Compare string and segment
+ template<typename CharType,typename Traits,typename Alloc,typename IteratorR>
+ bool operator==(std::basic_string<CharType,Traits,Alloc> const &l,segment<IteratorR> const &r)
+ {
+ return details::compare_text(l,r) == 0;
+ }
+ /// Compare string and segment
+ template<typename CharType,typename Traits,typename Alloc,typename IteratorR>
+ bool operator!=(std::basic_string<CharType,Traits,Alloc> const &l,segment<IteratorR> const &r)
+ {
+ return details::compare_text(l,r) != 0;
+ }
+
+ /// Compare string and segment
+ template<typename CharType,typename Traits,typename Alloc,typename IteratorR>
+ bool operator<(std::basic_string<CharType,Traits,Alloc> const &l,segment<IteratorR> const &r)
+ {
+ return details::compare_text(l,r) < 0;
+ }
+ /// Compare string and segment
+ template<typename CharType,typename Traits,typename Alloc,typename IteratorR>
+ bool operator<=(std::basic_string<CharType,Traits,Alloc> const &l,segment<IteratorR> const &r)
+ {
+ return details::compare_text(l,r) <= 0;
+ }
+ /// Compare string and segment
+ template<typename CharType,typename Traits,typename Alloc,typename IteratorR>
+ bool operator>(std::basic_string<CharType,Traits,Alloc> const &l,segment<IteratorR> const &r)
+ {
+ return details::compare_text(l,r) > 0;
+ }
+ /// Compare string and segment
+ template<typename CharType,typename Traits,typename Alloc,typename IteratorR>
+ bool operator>=(std::basic_string<CharType,Traits,Alloc> const &l,segment<IteratorR> const &r)
+ {
+ return details::compare_text(l,r) >= 0;
+ }
+
+ /// Compare string and segment
+ template<typename Iterator,typename CharType,typename Traits,typename Alloc>
+ bool operator==(segment<Iterator> const &l,std::basic_string<CharType,Traits,Alloc> const &r)
+ {
+ return details::compare_text(l,r) == 0;
+ }
+ /// Compare string and segment
+ template<typename Iterator,typename CharType,typename Traits,typename Alloc>
+ bool operator!=(segment<Iterator> const &l,std::basic_string<CharType,Traits,Alloc> const &r)
+ {
+ return details::compare_text(l,r) != 0;
+ }
+
+ /// Compare string and segment
+ template<typename Iterator,typename CharType,typename Traits,typename Alloc>
+ bool operator<(segment<Iterator> const &l,std::basic_string<CharType,Traits,Alloc> const &r)
+ {
+ return details::compare_text(l,r) < 0;
+ }
+ /// Compare string and segment
+ template<typename Iterator,typename CharType,typename Traits,typename Alloc>
+ bool operator<=(segment<Iterator> const &l,std::basic_string<CharType,Traits,Alloc> const &r)
+ {
+ return details::compare_text(l,r) <= 0;
+ }
+ /// Compare string and segment
+ template<typename Iterator,typename CharType,typename Traits,typename Alloc>
+ bool operator>(segment<Iterator> const &l,std::basic_string<CharType,Traits,Alloc> const &r)
+ {
+ return details::compare_text(l,r) > 0;
+ }
+ /// Compare string and segment
+ template<typename Iterator,typename CharType,typename Traits,typename Alloc>
+ bool operator>=(segment<Iterator> const &l,std::basic_string<CharType,Traits,Alloc> const &r)
+ {
+ return details::compare_text(l,r) >= 0;
+ }
+
+
+ /// Compare C string and segment
+ template<typename CharType,typename IteratorR>
+ bool operator==(CharType const *l,segment<IteratorR> const &r)
+ {
+ return details::compare_string(l,r) == 0;
+ }
+ /// Compare C string and segment
+ template<typename CharType,typename IteratorR>
+ bool operator!=(CharType const *l,segment<IteratorR> const &r)
+ {
+ return details::compare_string(l,r) != 0;
+ }
+
+ /// Compare C string and segment
+ template<typename CharType,typename IteratorR>
+ bool operator<(CharType const *l,segment<IteratorR> const &r)
+ {
+ return details::compare_string(l,r) < 0;
+ }
+ /// Compare C string and segment
+ template<typename CharType,typename IteratorR>
+ bool operator<=(CharType const *l,segment<IteratorR> const &r)
+ {
+ return details::compare_string(l,r) <= 0;
+ }
+ /// Compare C string and segment
+ template<typename CharType,typename IteratorR>
+ bool operator>(CharType const *l,segment<IteratorR> const &r)
+ {
+ return details::compare_string(l,r) > 0;
+ }
+ /// Compare C string and segment
+ template<typename CharType,typename IteratorR>
+ bool operator>=(CharType const *l,segment<IteratorR> const &r)
+ {
+ return details::compare_string(l,r) >= 0;
+ }
+
+ /// Compare C string and segment
+ template<typename Iterator,typename CharType>
+ bool operator==(segment<Iterator> const &l,CharType const *r)
+ {
+ return details::compare_string(l,r) == 0;
+ }
+ /// Compare C string and segment
+ template<typename Iterator,typename CharType>
+ bool operator!=(segment<Iterator> const &l,CharType const *r)
+ {
+ return details::compare_string(l,r) != 0;
+ }
+
+ /// Compare C string and segment
+ template<typename Iterator,typename CharType>
+ bool operator<(segment<Iterator> const &l,CharType const *r)
+ {
+ return details::compare_string(l,r) < 0;
+ }
+ /// Compare C string and segment
+ template<typename Iterator,typename CharType>
+ bool operator<=(segment<Iterator> const &l,CharType const *r)
+ {
+ return details::compare_string(l,r) <= 0;
+ }
+ /// Compare C string and segment
+ template<typename Iterator,typename CharType>
+ bool operator>(segment<Iterator> const &l,CharType const *r)
+ {
+ return details::compare_string(l,r) > 0;
+ }
+ /// Compare C string and segment
+ template<typename Iterator,typename CharType>
+ bool operator>=(segment<Iterator> const &l,CharType const *r)
+ {
+ return details::compare_string(l,r) >= 0;
+ }
+
+
+
+
+
+
+ typedef segment<std::string::const_iterator> ssegment; ///< convenience typedef
+ typedef segment<std::wstring::const_iterator> wssegment; ///< convenience typedef
+ #ifdef BOOST_HAS_CHAR16_T
+ typedef segment<std::u16string::const_iterator> u16ssegment;///< convenience typedef
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ typedef segment<std::u32string::const_iterator> u32ssegment;///< convenience typedef
+ #endif
+
+ typedef segment<char const *> csegment; ///< convenience typedef
+ typedef segment<wchar_t const *> wcsegment; ///< convenience typedef
+ #ifdef BOOST_HAS_CHAR16_T
+ typedef segment<char16_t const *> u16csegment; ///< convenience typedef
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ typedef segment<char32_t const *> u32csegment; ///< convenience typedef
+ #endif
+
+
+
+
+
+ ///
+ /// Write the segment to the stream character by character
+ ///
+ template<typename CharType,typename TraitsType,typename Iterator>
+ std::basic_ostream<CharType,TraitsType> &operator<<(
+ std::basic_ostream<CharType,TraitsType> &out,
+ segment<Iterator> const &tok)
+ {
+ for(Iterator p=tok.begin(),e=tok.end();p!=e;++p)
+ out << *p;
+ return out;
+ }
+
+ /// @}
+
+} // boundary
+} // locale
+} // boost
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+#endif
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/boost/locale/boundary/types.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/boundary/types.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,136 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_BOUNDARY_TYPES_HPP_INCLUDED
+#define BOOST_LOCALE_BOUNDARY_TYPES_HPP_INCLUDED
+
+#include <boost/locale/config.hpp>
+#include <boost/cstdint.hpp>
+#include <boost/assert.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+
+
+namespace boost {
+
+ namespace locale {
+
+ ///
+ /// \brief This namespase contains all operations required for boundary analysis of text
+ ///
+ namespace boundary {
+ ///
+ /// \defgroup boundary Boundary Analysis
+ ///
+ /// This module contains all operations required for boundary analysis of text: character, word, like and sentence boundaries
+ ///
+ /// @{
+ ///
+
+ ///
+ /// This type describes a possible boundary analysis alternatives.
+ ///
+ enum boundary_type {
+ character, ///< Analyse the text for character boundaries
+ word, ///< Analyse the text for word boundaries
+ sentence, ///< Analyse the text for Find sentence boundaries
+ line ///< Analyse the text for positions suitable for line breaks
+ };
+
+ ///
+ /// \brief Flags used with word boundary analysis -- the type of the word, line or sentence boundary found.
+ ///
+ /// It is a bit-mask that represents various combinations of rules used to select this specific boundary.
+ ///
+ typedef uint32_t rule_type;
+
+ ///
+ /// \anchor bl_boundary_word_rules
+ /// \name Flags that describe a type of word selected
+ /// @{
+ static const rule_type
+ word_none = 0x0000F, ///< Not a word, like white space or punctuation mark
+ word_number = 0x000F0, ///< Word that appear to be a number
+ word_letter = 0x00F00, ///< Word that contains letters, excluding kana and ideographic characters
+ word_kana = 0x0F000, ///< Word that contains kana characters
+ word_ideo = 0xF0000, ///< Word that contains ideographic characters
+ word_any = 0xFFFF0, ///< Any word including numbers, 0 is special flag, equivalent to 15
+ word_letters = 0xFFF00, ///< Any word, excluding numbers but including letters, kana and ideograms.
+ word_kana_ideo = 0xFF000, ///< Word that includes kana or ideographic characters
+ word_mask = 0xFFFFF; ///< Full word mask - select all possible variants
+ /// @}
+
+ ///
+ /// \anchor bl_boundary_line_rules
+ /// \name Flags that describe a type of line break
+ /// @{
+ static const rule_type
+ line_soft = 0x0F, ///< Soft line break: optional but not required
+ line_hard = 0xF0, ///< Hard line break: like break is required (as per CR/LF)
+ line_any = 0xFF, ///< Soft or Hard line break
+ line_mask = 0xFF; ///< Select all types of line breaks
+
+ /// @}
+
+ ///
+ /// \anchor bl_boundary_sentence_rules
+ /// \name Flags that describe a type of sentence break
+ ///
+ /// @{
+ static const rule_type
+ sentence_term = 0x0F, ///< \brief The sentence was terminated with a sentence terminator
+ /// like ".", "!" possible followed by hard separator like CR, LF, PS
+ sentence_sep = 0xF0, ///< \brief The sentence does not contain terminator like ".", "!" but ended with hard separator
+ /// like CR, LF, PS or end of input.
+ sentence_any = 0xFF, ///< Either first or second sentence break type;.
+ sentence_mask = 0xFF; ///< Select all sentence breaking points
+
+ ///@}
+
+ ///
+ /// \name Flags that describe a type of character break.
+ ///
+ /// At this point break iterator does not distinguish different
+ /// kinds of characters so it is used for consistency.
+ ///@{
+ static const rule_type
+ character_any = 0xF, ///< Not in use, just for consistency
+ character_mask = 0xF; ///< Select all character breaking points
+
+ ///@}
+
+ ///
+ /// This function returns the mask that covers all variants for specific boundary type
+ ///
+ inline rule_type boundary_rule(boundary_type t)
+ {
+ switch(t) {
+ case character: return character_mask;
+ case word: return word_mask;
+ case sentence: return sentence_mask;
+ case line: return line_mask;
+ default: return 0;
+ }
+ }
+
+ ///
+ ///@}
+ ///
+
+ } // boundary
+ } // locale
+} // boost
+
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/boost/locale/collator.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/collator.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,261 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_COLLATOR_HPP_INCLUDED
+#define BOOST_LOCALE_COLLATOR_HPP_INCLUDED
+
+#include <boost/locale/config.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+#include <locale>
+
+
+namespace boost {
+namespace locale {
+
+ class info;
+
+ ///
+ /// \defgroup collation Collation
+ ///
+ /// This module introduces collation related classes
+ ///
+ /// @{
+
+ ///
+ /// \brief a base class that includes collation level flags
+ ///
+
+ class collator_base {
+ public:
+ ///
+ /// Unicode collation level types
+ ///
+ typedef enum {
+ primary = 0, ///< 1st collation level: base letters
+ secondary = 1, ///< 2nd collation level: letters and accents
+ tertiary = 2, ///< 3rd collation level: letters, accents and case
+ quaternary = 3, ///< 4th collation level: letters, accents, case and punctuation
+ identical = 4 ///< identical collation level: include code-point comparison
+ } level_type;
+ };
+
+ ///
+ /// \brief Collation facet.
+ ///
+ /// It reimplements standard C++ std::collate,
+ /// allowing usage of std::locale for direct string comparison
+ ///
+ template<typename CharType>
+ class collator :
+ public std::collate<CharType>,
+ public collator_base
+ {
+ public:
+ ///
+ /// Type of the underlying character
+ ///
+ typedef CharType char_type;
+ ///
+ /// Type of string used with this facet
+ ///
+ typedef std::basic_string<CharType> string_type;
+
+
+ ///
+ /// Compare two strings in rage [b1,e1), [b2,e2) according using a collation level \a level. Calls do_compare
+ ///
+ /// Returns -1 if the first of the two strings sorts before the seconds, returns 1 if sorts after and 0 if
+ /// they considered equal.
+ ///
+ int compare(level_type level,
+ char_type const *b1,char_type const *e1,
+ char_type const *b2,char_type const *e2) const
+ {
+ return do_compare(level,b1,e1,b2,e2);
+ }
+ ///
+ /// Create a binary string that can be compared to other in order to get collation order. The string is created
+ /// for text in range [b,e). It is useful for collation of multiple strings for text.
+ ///
+ /// The transformation follows these rules:
+ /// \code
+ /// compare(level,b1,e1,b2,e2) == sign( transform(level,b1,e1).compare(transform(level,b2,e2)) );
+ /// \endcode
+ ///
+ /// Calls do_transform
+ ///
+ string_type transform(level_type level,char_type const *b,char_type const *e) const
+ {
+ return do_transform(level,b,e);
+ }
+
+ ///
+ /// Calculate a hash of a text in range [b,e). The value can be used for collation sensitive string comparison.
+ ///
+ /// If compare(level,b1,e1,b2,e2) == 0 then hash(level,b1,e1) == hash(level,b2,e2)
+ ///
+ /// Calls do_hash
+ ///
+ long hash(level_type level,char_type const *b,char_type const *e) const
+ {
+ return do_hash(level,b,e);
+ }
+
+ ///
+ /// Compare two strings \a l and \a r using collation level \a level
+ ///
+ /// Returns -1 if the first of the two strings sorts before the seconds, returns 1 if sorts after and 0 if
+ /// they considered equal.
+ ///
+ ///
+ int compare(level_type level,string_type const &l,string_type const &r) const
+ {
+ return do_compare(level,l.data(),l.data()+l.size(),r.data(),r.data()+r.size());
+ }
+
+ ///
+ /// Calculate a hash that can be used for collation sensitive string comparison of a string \a s
+ ///
+ /// If compare(level,s1,s2) == 0 then hash(level,s1) == hash(level,s2)
+ ///
+
+ long hash(level_type level,string_type const &s) const
+ {
+ return do_hash(level,s.data(),s.data()+s.size());
+ }
+ ///
+ /// Create a binary string from string \a s, that can be compared to other, useful for collation of multiple
+ /// strings.
+ ///
+ /// The transformation follows these rules:
+ /// \code
+ /// compare(level,s1,s2) == sign( transform(level,s1).compare(transform(level,s2)) );
+ /// \endcode
+ ///
+ string_type transform(level_type level,string_type const &s) const
+ {
+ return do_transform(level,s.data(),s.data()+s.size());
+ }
+
+ protected:
+
+ ///
+ /// constructor of the collator object
+ ///
+ collator(size_t refs = 0) : std::collate<CharType>(refs)
+ {
+ }
+
+ virtual ~collator()
+ {
+ }
+
+ ///
+ /// This function is used to override default collation function that does not take in account collation level.
+ /// Uses primary level
+ ///
+ virtual int do_compare( char_type const *b1,char_type const *e1,
+ char_type const *b2,char_type const *e2) const
+ {
+ return do_compare(identical,b1,e1,b2,e2);
+ }
+ ///
+ /// This function is used to override default collation function that does not take in account collation level.
+ /// Uses primary level
+ ///
+ virtual string_type do_transform(char_type const *b,char_type const *e) const
+ {
+ return do_transform(identical,b,e);
+ }
+ ///
+ /// This function is used to override default collation function that does not take in account collation level.
+ /// Uses primary level
+ ///
+ virtual long do_hash(char_type const *b,char_type const *e) const
+ {
+ return do_hash(identical,b,e);
+ }
+
+ ///
+ /// Actual function that performs comparison between the strings. For details see compare member function. Can be overridden.
+ ///
+ virtual int do_compare( level_type level,
+ char_type const *b1,char_type const *e1,
+ char_type const *b2,char_type const *e2) const = 0;
+ ///
+ /// Actual function that performs transformation. For details see transform member function. Can be overridden.
+ ///
+ virtual string_type do_transform(level_type level,char_type const *b,char_type const *e) const = 0;
+ ///
+ /// Actual function that calculates hash. For details see hash member function. Can be overridden.
+ ///
+ virtual long do_hash(level_type level,char_type const *b,char_type const *e) const = 0;
+
+
+ };
+
+ ///
+ /// \brief This class can be used in STL algorithms and containers for comparison of strings
+ /// with a level other than primary
+ ///
+ /// For example:
+ ///
+ /// \code
+ /// std::map<std::string,std::string,comparator<char,collator_base::secondary> > data;
+ /// \endcode
+ ///
+ /// Would create a map the keys of which are sorted using secondary collation level
+ ///
+ template<typename CharType,collator_base::level_type default_level = collator_base::identical>
+ struct comparator
+ {
+ public:
+ ///
+ /// Create a comparator class for locale \a l and with collation leval \a level
+ ///
+ /// \note throws std::bad_cast if l does not have \ref collator facet installed
+ ///
+ comparator(std::locale const &l=std::locale(),collator_base::level_type level=default_level) :
+ locale_(l),
+ level_(level)
+ {
+ }
+
+ ///
+ /// Compare two strings -- equivalent to return left < right according to collation rules
+ ///
+ bool operator()(std::basic_string<CharType> const &left,std::basic_string<CharType> const &right) const
+ {
+ return std::use_facet<collator<CharType> >(locale_).compare(level_,left,right) < 0;
+ }
+ private:
+ std::locale locale_;
+ collator_base::level_type level_;
+ };
+
+
+ ///
+ ///@}
+ ///
+
+ } // locale
+} // boost
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+
+#endif
+///
+/// \example collate.cpp
+/// Example of using collation functions
+///
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/boost/locale/config.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/config.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,57 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_CONFIG_HPP_INCLUDED
+#define BOOST_LOCALE_CONFIG_HPP_INCLUDED
+
+#include <boost/config.hpp>
+
+// Support older ICU versions
+#ifndef BOOST_SYMBOL_VISIBLE
+# define BOOST_SYMBOL_VISIBLE
+#endif
+
+#ifdef BOOST_HAS_DECLSPEC
+# if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_LOCALE_DYN_LINK)
+# ifdef BOOST_LOCALE_SOURCE
+# define BOOST_LOCALE_DECL BOOST_SYMBOL_EXPORT
+# else
+# define BOOST_LOCALE_DECL BOOST_SYMBOL_IMPORT
+# endif // BOOST_LOCALE_SOURCE
+# endif // DYN_LINK
+#endif // BOOST_HAS_DECLSPEC
+
+#ifndef BOOST_LOCALE_DECL
+# define BOOST_LOCALE_DECL
+#endif
+
+//
+// Automatically link to the correct build variant where possible.
+//
+#if !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_LOCALE_NO_LIB) && !defined(BOOST_LOCALE_SOURCE)
+//
+// Set the name of our library, this will get undef'ed by auto_link.hpp
+// once it's done with it:
+//
+#define BOOST_LIB_NAME boost_locale
+//
+// If we're importing code from a dll, then tell auto_link.hpp about it:
+//
+#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_LOCALE_DYN_LINK)
+# define BOOST_DYN_LINK
+#endif
+//
+// And include the header that does the work:
+//
+#include <boost/config/auto_link.hpp>
+#endif // auto-linking disabled
+
+
+
+#endif // boost/locale/config.hpp
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/boost/locale/conversion.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/conversion.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,380 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_CONVERTER_HPP_INCLUDED
+#define BOOST_LOCALE_CONVERTER_HPP_INCLUDED
+
+#include <boost/locale/config.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+#include <locale>
+
+
+namespace boost {
+ namespace locale {
+
+ ///
+ /// \defgroup convert Text Conversions
+ ///
+ /// This module provides various function for string manipulation like Unicode normalization, case conversion etc.
+ /// @{
+ ///
+
+
+ ///
+ /// \brief This class provides base flags for text manipulation. It is used as base for converter facet.
+ ///
+ class converter_base {
+ public:
+ ///
+ /// The flag used for facet - the type of operation to perform
+ ///
+ typedef enum {
+ normalization, ///< Apply Unicode normalization on the text
+ upper_case, ///< Convert text to upper case
+ lower_case, ///< Convert text to lower case
+ case_folding, ///< Fold case in the text
+ title_case ///< Convert text to title case
+ } conversion_type;
+ };
+
+ template<typename CharType>
+ class converter;
+
+ #ifdef BOOST_LOCALE_DOXYGEN
+ ///
+ /// \brief The facet that implements text manipulation
+ ///
+ /// It is used to performs text conversion operations defined by \ref conversion_type. It is specialized
+ /// for four types of characters \c char, \c wchar_t, \c char16_t, \c char32_t
+ ///
+ template<typename Char>
+ class BOOST_LOCALE_DECL converter: public converter_base, public std::locale::facet {
+ public:
+ /// Locale identification
+ static std::locale::id id;
+
+ /// Standard constructor
+ converter(size_t refs = 0) : std::locale::facet(refs)
+ {
+ }
+ ///
+ /// Convert text in range [\a begin, \a end) according to conversion method \a how. Parameter
+ /// \a flags is used for specification of normalization method like nfd, nfc etc.
+ ///
+ virtual std::basic_string<Char> convert(conversion_type how,Char const *begin,Char const *end,int flags = 0) const = 0;
+#if defined (__SUNPRO_CC) && defined (_RWSTD_VER)
+ std::locale::id& __get_id (void) const { return id; }
+#endif
+ };
+ #else
+
+ template<>
+ class BOOST_LOCALE_DECL converter<char> : public converter_base, public std::locale::facet {
+ public:
+ static std::locale::id id;
+
+ converter(size_t refs = 0) : std::locale::facet(refs)
+ {
+ }
+ virtual std::string convert(conversion_type how,char const *begin,char const *end,int flags = 0) const = 0;
+#if defined (__SUNPRO_CC) && defined (_RWSTD_VER)
+ std::locale::id& __get_id (void) const { return id; }
+#endif
+ };
+
+ template<>
+ class BOOST_LOCALE_DECL converter<wchar_t> : public converter_base, public std::locale::facet {
+ public:
+ static std::locale::id id;
+ converter(size_t refs = 0) : std::locale::facet(refs)
+ {
+ }
+ virtual std::wstring convert(conversion_type how,wchar_t const *begin,wchar_t const *end,int flags = 0) const = 0;
+#if defined (__SUNPRO_CC) && defined (_RWSTD_VER)
+ std::locale::id& __get_id (void) const { return id; }
+#endif
+ };
+
+ #ifdef BOOST_HAS_CHAR16_T
+ template<>
+ class BOOST_LOCALE_DECL converter<char16_t> : public converter_base, public std::locale::facet {
+ public:
+ static std::locale::id id;
+ converter(size_t refs = 0) : std::locale::facet(refs)
+ {
+ }
+ virtual std::u16string convert(conversion_type how,char16_t const *begin,char16_t const *end,int flags = 0) const = 0;
+#if defined (__SUNPRO_CC) && defined (_RWSTD_VER)
+ std::locale::id& __get_id (void) const { return id; }
+#endif
+ };
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+ template<>
+ class BOOST_LOCALE_DECL converter<char32_t> : public converter_base, public std::locale::facet {
+ public:
+ static std::locale::id id;
+ converter(size_t refs = 0) : std::locale::facet(refs)
+ {
+ }
+ virtual std::u32string convert(conversion_type how,char32_t const *begin,char32_t const *end,int flags = 0) const = 0;
+#if defined (__SUNPRO_CC) && defined (_RWSTD_VER)
+ std::locale::id& __get_id (void) const { return id; }
+#endif
+ };
+ #endif
+
+ #endif
+
+ ///
+ /// The type that defined normalization form
+ ///
+
+ typedef enum {
+ norm_nfd, ///< Canonical decomposition
+ norm_nfc, ///< Canonical decomposition followed by canonical composition
+ norm_nfkd, ///< Compatibility decomposition
+ norm_nfkc, ///< Compatibility decomposition followed by canonical composition.
+ norm_default = norm_nfc, ///< Default normalization - canonical decomposition followed by canonical composition
+ } norm_type;
+
+ ///
+ /// Normalize Unicode string \a str according to \ref norm_type "normalization form" \a n
+ ///
+ /// Note: This function receives only Unicode strings, i.e.: UTF-8, UTF-16 or UTF-32. It does not take
+ /// in account the locale encoding, because Unicode decomposition and composition are meaningless outside
+ /// of a Unicode character set.
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref converter facet installed
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> normalize(std::basic_string<CharType> const &str,norm_type n=norm_default,std::locale const &loc=std::locale())
+ {
+ return std::use_facet<converter<CharType> >(loc).convert(converter_base::normalization,str.data(),str.data() + str.size(),n);
+ }
+
+ ///
+ /// Normalize NUL terminated Unicode string \a str according to \ref norm_type "normalization form" \a n
+ ///
+ /// Note: This function receives only Unicode strings, i.e.: UTF-8, UTF-16 or UTF-32. It does not take
+ /// in account the locale encoding, because Unicode decomposition and composition are meaningless outside
+ /// of a Unicode character set.
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref converter facet installed
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> normalize(CharType const *str,norm_type n=norm_default,std::locale const &loc=std::locale())
+ {
+ CharType const *end=str;
+ while(*end)
+ end++;
+ return std::use_facet<converter<CharType> >(loc).convert(converter_base::normalization,str,end,n);
+ }
+
+ ///
+ /// Normalize Unicode string in range [begin,end) according to \ref norm_type "normalization form" \a n
+ ///
+ /// Note: This function receives only Unicode strings, i.e.: UTF-8, UTF-16 or UTF-32. It does not take
+ /// in account the locale encoding, because Unicode decomposition and composition are meaningless outside
+ /// of a Unicode character set.
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref converter facet installed
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> normalize( CharType const *begin,
+ CharType const *end,
+ norm_type n=norm_default,
+ std::locale const &loc=std::locale())
+ {
+ return std::use_facet<converter<CharType> >(loc).convert(converter_base::normalization,begin,end,n);
+ }
+
+ ///////////////////////////////////////////////////
+
+ ///
+ /// Convert a string \a str to upper case according to locale \a loc
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref converter facet installed
+ ///
+
+ template<typename CharType>
+ std::basic_string<CharType> to_upper(std::basic_string<CharType> const &str,std::locale const &loc=std::locale())
+ {
+ return std::use_facet<converter<CharType> >(loc).convert(converter_base::upper_case,str.data(),str.data()+str.size());
+ }
+
+ ///
+ /// Convert a NUL terminated string \a str to upper case according to locale \a loc
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref converter facet installed
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> to_upper(CharType const *str,std::locale const &loc=std::locale())
+ {
+ CharType const *end=str;
+ while(*end)
+ end++;
+ return std::use_facet<converter<CharType> >(loc).convert(converter_base::upper_case,str,end);
+ }
+
+ ///
+ /// Convert a string in range [begin,end) to upper case according to locale \a loc
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref converter facet installed
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> to_upper(CharType const *begin,CharType const *end,std::locale const &loc=std::locale())
+ {
+ return std::use_facet<converter<CharType> >(loc).convert(converter_base::upper_case,begin,end);
+ }
+
+ ///////////////////////////////////////////////////
+
+ ///
+ /// Convert a string \a str to lower case according to locale \a loc
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref converter facet installed
+ ///
+
+ template<typename CharType>
+ std::basic_string<CharType> to_lower(std::basic_string<CharType> const &str,std::locale const &loc=std::locale())
+ {
+ return std::use_facet<converter<CharType> >(loc).convert(converter_base::lower_case,str.data(),str.data()+str.size());
+ }
+
+ ///
+ /// Convert a NUL terminated string \a str to lower case according to locale \a loc
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref converter facet installed
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> to_lower(CharType const *str,std::locale const &loc=std::locale())
+ {
+ CharType const *end=str;
+ while(*end)
+ end++;
+ return std::use_facet<converter<CharType> >(loc).convert(converter_base::lower_case,str,end);
+ }
+
+ ///
+ /// Convert a string in range [begin,end) to lower case according to locale \a loc
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref converter facet installed
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> to_lower(CharType const *begin,CharType const *end,std::locale const &loc=std::locale())
+ {
+ return std::use_facet<converter<CharType> >(loc).convert(converter_base::lower_case,begin,end);
+ }
+ ///////////////////////////////////////////////////
+
+ ///
+ /// Convert a string \a str to title case according to locale \a loc
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref converter facet installed
+ ///
+
+ template<typename CharType>
+ std::basic_string<CharType> to_title(std::basic_string<CharType> const &str,std::locale const &loc=std::locale())
+ {
+ return std::use_facet<converter<CharType> >(loc).convert(converter_base::title_case,str.data(),str.data()+str.size());
+ }
+
+ ///
+ /// Convert a NUL terminated string \a str to title case according to locale \a loc
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref converter facet installed
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> to_title(CharType const *str,std::locale const &loc=std::locale())
+ {
+ CharType const *end=str;
+ while(*end)
+ end++;
+ return std::use_facet<converter<CharType> >(loc).convert(converter_base::title_case,str,end);
+ }
+
+ ///
+ /// Convert a string in range [begin,end) to title case according to locale \a loc
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref converter facet installed
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> to_title(CharType const *begin,CharType const *end,std::locale const &loc=std::locale())
+ {
+ return std::use_facet<converter<CharType> >(loc).convert(converter_base::title_case,begin,end);
+ }
+
+ ///////////////////////////////////////////////////
+
+ ///
+ /// Fold case of a string \a str according to locale \a loc
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref converter facet installed
+ ///
+
+ template<typename CharType>
+ std::basic_string<CharType> fold_case(std::basic_string<CharType> const &str,std::locale const &loc=std::locale())
+ {
+ return std::use_facet<converter<CharType> >(loc).convert(converter_base::case_folding,str.data(),str.data()+str.size());
+ }
+
+ ///
+ /// Fold case of a NUL terminated string \a str according to locale \a loc
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref converter facet installed
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> fold_case(CharType const *str,std::locale const &loc=std::locale())
+ {
+ CharType const *end=str;
+ while(*end)
+ end++;
+ return std::use_facet<converter<CharType> >(loc).convert(converter_base::case_folding,str,end);
+ }
+
+ ///
+ /// Fold case of a string in range [begin,end) according to locale \a loc
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref converter facet installed
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> fold_case(CharType const *begin,CharType const *end,std::locale const &loc=std::locale())
+ {
+ return std::use_facet<converter<CharType> >(loc).convert(converter_base::case_folding,begin,end);
+ }
+
+ ///
+ ///@}
+ ///
+ } // locale
+
+} // boost
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+
+#endif
+
+///
+/// \example conversions.cpp
+///
+/// Example of using various text conversion functions.
+///
+/// \example wconversions.cpp
+///
+/// Example of using various text conversion functions with wide strings.
+///
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/boost/locale/date_time.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/date_time.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,1150 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_DATE_TIME_HPP_INCLUDED
+#define BOOST_LOCALE_DATE_TIME_HPP_INCLUDED
+
+#include <boost/locale/config.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+
+#include <boost/locale/hold_ptr.hpp>
+#include <boost/locale/date_time_facet.hpp>
+#include <boost/locale/formatting.hpp>
+#include <boost/locale/time_zone.hpp>
+#include <locale>
+#include <vector>
+#include <stdexcept>
+
+
+namespace boost {
+ namespace locale {
+ ///
+ /// \defgroup date_time Date, Time, Timezone and Calendar manipulations
+ ///
+ /// This module provides various calendar, timezone and date time services
+ ///
+ /// @{
+
+
+ ///
+ /// \brief This error is thrown in case of invalid state that occurred
+ ///
+ class BOOST_SYMBOL_VISIBLE date_time_error : public std::runtime_error {
+ public:
+ ///
+ /// Constructor of date_time_error class
+ ///
+ date_time_error(std::string const &e) : std::runtime_error(e) {}
+ };
+
+
+ ///
+ /// \brief This class represents a pair of period_type and the integer
+ /// values that describes its amount. For example 3 days or 4 years.
+ ///
+ /// Usually obtained as product of period_type and integer or
+ /// my calling a representative functions
+ /// For example day()*3 == date_time_period(day(),3) == day(3)
+ ///
+ struct date_time_period
+ {
+ period::period_type type; ///< The type of period, i.e. era, year, day etc.
+ int value; ///< The value the actual number of \a periods
+ ///
+ /// Operator + returns copy of itself
+ ///
+ date_time_period operator+() const { return *this; }
+ ///
+ /// Operator -, switches the sign of period
+ ///
+ date_time_period operator-() const { return date_time_period(type,-value); }
+
+ ///
+ /// Constructor that creates date_time_period from period_type \a f and a value \a v -- default 1.
+ ///
+ date_time_period(period::period_type f=period::period_type(),int v=1) : type(f), value(v) {}
+ };
+
+ namespace period {
+ ///
+ /// Get period_type for: special invalid value, should not be used directly
+ ///
+ inline period_type invalid(){ return period_type(marks::invalid); }
+ ///
+ /// Get period_type for: Era i.e. AC, BC in Gregorian and Julian calendar, range [0,1]
+ ///
+ inline period_type era(){ return period_type(marks::era); }
+ ///
+ /// Get period_type for: Year, it is calendar specific, for example 2011 in Gregorian calendar.
+ ///
+ inline period_type year(){ return period_type(marks::year); }
+ ///
+ /// Get period_type for: Extended year for Gregorian/Julian calendars, where 1 BC == 0, 2 BC == -1.
+ ///
+ inline period_type extended_year(){ return period_type(marks::extended_year); }
+ ///
+ /// Get period_type for: The month of year, calendar specific, in Gregorian [0..11]
+ ///
+ inline period_type month(){ return period_type(marks::month); }
+ ///
+ /// Get period_type for: The day of month, calendar specific, in Gregorian [1..31]
+ ///
+ inline period_type day(){ return period_type(marks::day); }
+ ///
+ /// Get period_type for: The number of day in year, starting from 1, in Gregorian [1..366]
+ ///
+ inline period_type day_of_year(){ return period_type(marks::day_of_year); }
+ ///
+ /// Get period_type for: Day of week, Sunday=1, Monday=2,..., Saturday=7.
+ ///
+ /// Note that that updating this value respects local day of week, so for example,
+ /// If first day of week is Monday and the current day is Tuesday then setting
+ /// the value to Sunday (1) would forward the date by 5 days forward and not backward
+ /// by two days as it could be expected if the numbers were taken as is.
+ ///
+ inline period_type day_of_week(){ return period_type(marks::day_of_week); }
+ ///
+ /// Get period_type for: Original number of the day of the week in month. For example 1st Sunday,
+ /// 2nd Sunday, etc. in Gregorian [1..5]
+ ///
+ inline period_type day_of_week_in_month(){ return period_type(marks::day_of_week_in_month); }
+ ///
+ /// Get period_type for: Local day of week, for example in France Monday is 1, in US Sunday is 1, [1..7]
+ ///
+ inline period_type day_of_week_local(){ return period_type(marks::day_of_week_local); }
+ ///
+ /// Get period_type for: 24 clock hour [0..23]
+ ///
+ inline period_type hour(){ return period_type(marks::hour); }
+ ///
+ /// Get period_type for: 12 clock hour [0..11]
+ ///
+ inline period_type hour_12(){ return period_type(marks::hour_12); }
+ ///
+ /// Get period_type for: am or pm marker [0..1]
+ ///
+ inline period_type am_pm(){ return period_type(marks::am_pm); }
+ ///
+ /// Get period_type for: minute [0..59]
+ ///
+ inline period_type minute(){ return period_type(marks::minute); }
+ ///
+ /// Get period_type for: second [0..59]
+ ///
+ inline period_type second(){ return period_type(marks::second); }
+ ///
+ /// Get period_type for: The week number in the year
+ ///
+ inline period_type week_of_year(){ return period_type(marks::week_of_year); }
+ ///
+ /// Get period_type for: The week number within current month
+ ///
+ inline period_type week_of_month(){ return period_type(marks::week_of_month); }
+ ///
+ /// Get period_type for: First day of week, constant, for example Sunday in US = 1, Monday in France = 2
+ ///
+ inline period_type first_day_of_week(){ return period_type(marks::first_day_of_week); }
+
+ ///
+ /// Get date_time_period for: Era i.e. AC, BC in Gregorian and Julian calendar, range [0,1]
+ ///
+ inline date_time_period era(int v) { return date_time_period(era(),v); }
+ ///
+ /// Get date_time_period for: Year, it is calendar specific, for example 2011 in Gregorian calendar.
+ ///
+ inline date_time_period year(int v) { return date_time_period(year(),v); }
+ ///
+ /// Get date_time_period for: Extended year for Gregorian/Julian calendars, where 1 BC == 0, 2 BC == -1.
+ ///
+ inline date_time_period extended_year(int v) { return date_time_period(extended_year(),v); }
+ ///
+ /// Get date_time_period for: The month of year, calendar specific, in Gregorian [0..11]
+ ///
+ inline date_time_period month(int v) { return date_time_period(month(),v); }
+ ///
+ /// Get date_time_period for: The day of month, calendar specific, in Gregorian [1..31]
+ ///
+ inline date_time_period day(int v) { return date_time_period(day(),v); }
+ ///
+ /// Get date_time_period for: The number of day in year, starting from 1, in Gregorian [1..366]
+ ///
+ inline date_time_period day_of_year(int v) { return date_time_period(day_of_year(),v); }
+ ///
+ /// Get date_time_period for: Day of week, Sunday=1, Monday=2,..., Saturday=7.
+ ///
+ /// Note that that updating this value respects local day of week, so for example,
+ /// If first day of week is Monday and the current day is Tuesday then setting
+ /// the value to Sunday (1) would forward the date by 5 days forward and not backward
+ /// by two days as it could be expected if the numbers were taken as is.
+ ///
+ inline date_time_period day_of_week(int v) { return date_time_period(day_of_week(),v); }
+ ///
+ /// Get date_time_period for: Original number of the day of the week in month. For example 1st Sunday,
+ /// 2nd Sunday, etc. in Gregorian [1..5]
+ ///
+ inline date_time_period day_of_week_in_month(int v) { return date_time_period(day_of_week_in_month(),v); }
+ ///
+ /// Get date_time_period for: Local day of week, for example in France Monday is 1, in US Sunday is 1, [1..7]
+ ///
+ inline date_time_period day_of_week_local(int v) { return date_time_period(day_of_week_local(),v); }
+ ///
+ /// Get date_time_period for: 24 clock hour [0..23]
+ ///
+ inline date_time_period hour(int v) { return date_time_period(hour(),v); }
+ ///
+ /// Get date_time_period for: 12 clock hour [0..11]
+ ///
+ inline date_time_period hour_12(int v) { return date_time_period(hour_12(),v); }
+ ///
+ /// Get date_time_period for: am or pm marker [0..1]
+ ///
+ inline date_time_period am_pm(int v) { return date_time_period(am_pm(),v); }
+ ///
+ /// Get date_time_period for: minute [0..59]
+ ///
+ inline date_time_period minute(int v) { return date_time_period(minute(),v); }
+ ///
+ /// Get date_time_period for: second [0..59]
+ ///
+ inline date_time_period second(int v) { return date_time_period(second(),v); }
+ ///
+ /// Get date_time_period for: The week number in the year
+ ///
+ inline date_time_period week_of_year(int v) { return date_time_period(week_of_year(),v); }
+ ///
+ /// Get date_time_period for: The week number within current month
+ ///
+ inline date_time_period week_of_month(int v) { return date_time_period(week_of_month(),v); }
+ ///
+ /// Get date_time_period for: First day of week, constant, for example Sunday in US = 1, Monday in France = 2
+ ///
+ inline date_time_period first_day_of_week(int v) { return date_time_period(first_day_of_week(),v); }
+
+ ///
+ /// Get predefined constant for January
+ ///
+ inline date_time_period january() { return date_time_period(month(),0); }
+ ///
+ /// Get predefined constant for February
+ ///
+ inline date_time_period february() { return date_time_period(month(),1); }
+ ///
+ /// Get predefined constant for March
+ ///
+ inline date_time_period march() { return date_time_period(month(),2); }
+ ///
+ /// Get predefined constant for April
+ ///
+ inline date_time_period april() { return date_time_period(month(),3); }
+ ///
+ /// Get predefined constant for May
+ ///
+ inline date_time_period may() { return date_time_period(month(),4); }
+ ///
+ /// Get predefined constant for June
+ ///
+ inline date_time_period june() { return date_time_period(month(),5); }
+ ///
+ /// Get predefined constant for July
+ ///
+ inline date_time_period july() { return date_time_period(month(),6); }
+ ///
+ /// Get predefined constant for August
+ ///
+ inline date_time_period august() { return date_time_period(month(),7); }
+ ///
+ /// Get predefined constant for September
+ ///
+ inline date_time_period september() { return date_time_period(month(),8); }
+ ///
+ /// Get predefined constant for October
+ ///
+ inline date_time_period october() { return date_time_period(month(),9); }
+ ///
+ /// Get predefined constant for November
+ ///
+ inline date_time_period november() { return date_time_period(month(),10); }
+ ///
+ /// Get predefined constant for December
+ ///
+ inline date_time_period december() { return date_time_period(month(),11); }
+
+ ///
+ /// Get predefined constant for Sunday
+ ///
+ inline date_time_period sunday() { return date_time_period(day_of_week(),1); }
+ ///
+ /// Get predefined constant for Monday
+ ///
+ inline date_time_period monday() { return date_time_period(day_of_week(),2); }
+ ///
+ /// Get predefined constant for Tuesday
+ ///
+ inline date_time_period tuesday() { return date_time_period(day_of_week(),3); }
+ ///
+ /// Get predefined constant for Wednesday
+ ///
+ inline date_time_period wednesday() { return date_time_period(day_of_week(),4); }
+ ///
+ /// Get predefined constant for Thursday
+ ///
+ inline date_time_period thursday() { return date_time_period(day_of_week(),5); }
+ ///
+ /// Get predefined constant for Friday
+ ///
+ inline date_time_period friday() { return date_time_period(day_of_week(),6); }
+ ///
+ /// Get predefined constant for Saturday
+ ///
+ inline date_time_period saturday() { return date_time_period(day_of_week(),7); }
+ ///
+ /// Get predefined constant for AM (Ante Meridiem)
+ ///
+ inline date_time_period am() { return date_time_period(am_pm(),0); }
+ ///
+ /// Get predefined constant for PM (Post Meridiem)
+ ///
+ inline date_time_period pm() { return date_time_period(am_pm(),1); }
+
+ ///
+ /// convert period_type to date_time_period(f,1)
+ ///
+ inline date_time_period operator+(period::period_type f)
+ {
+ return date_time_period(f);
+ }
+ ///
+ /// convert period_type to date_time_period(f,-1)
+ ///
+ inline date_time_period operator-(period::period_type f)
+ {
+ return date_time_period(f,-1);
+ }
+
+ ///
+ /// Create date_time_period of type \a f with value \a v.
+ ///
+ template<typename T>
+ date_time_period operator*(period::period_type f,T v)
+ {
+ return date_time_period(f,v);
+ }
+
+ ///
+ /// Create date_time_period of type \a f with value \a v.
+ ///
+ template<typename T>
+ date_time_period operator*(T v,period::period_type f)
+ {
+ return date_time_period(f,v);
+ }
+ ///
+ /// Create date_time_period of type \a f with value \a v.
+ ///
+ template<typename T>
+ date_time_period operator*(T v,date_time_period f)
+ {
+ return date_time_period(f.type,f.value*v);
+ }
+
+ ///
+ /// Create date_time_period of type \a f with value \a v.
+ ///
+ template<typename T>
+ date_time_period operator*(date_time_period f,T v)
+ {
+ return date_time_period(f.type,f.value*v);
+ }
+
+
+ } // period
+
+
+ ///
+ /// \brief this class that represents a set of periods,
+ ///
+ /// It is generally created by operations on periods:
+ /// 1995*year + 3*month + 1*day. Note: operations are not commutative.
+ ///
+ class date_time_period_set {
+ public:
+
+ ///
+ /// Default constructor - empty set
+ ///
+ date_time_period_set()
+ {
+ }
+ ///
+ /// Create a set of single period with value 1
+ ///
+ date_time_period_set(period::period_type f)
+ {
+ basic_[0]=date_time_period(f);
+ }
+ ///
+ /// Create a set of single period \a fl
+ ///
+ date_time_period_set(date_time_period const &fl)
+ {
+ basic_[0]=fl;
+ }
+ ///
+ /// Append date_time_period \a f to the set
+ ///
+ void add(date_time_period f)
+ {
+ size_t n=size();
+ if(n < 4)
+ basic_[n]=f;
+ else
+ periods_.push_back(f);
+ }
+ ///
+ /// Get number if items in list
+ ///
+ size_t size() const
+ {
+ if(basic_[0].type == period::period_type())
+ return 0;
+ if(basic_[1].type == period::period_type())
+ return 1;
+ if(basic_[2].type == period::period_type())
+ return 2;
+ if(basic_[3].type == period::period_type())
+ return 3;
+ return 4+periods_.size();
+ }
+ ///
+ /// Get item at position \a n the set, n should be in range [0,size)
+ ///
+ date_time_period const &operator[](size_t n) const
+ {
+ if(n >= size())
+ throw std::out_of_range("Invalid index to date_time_period");
+ if(n < 4)
+ return basic_[n];
+ else
+ return periods_[n-4];
+ }
+ private:
+ date_time_period basic_[4];
+ std::vector<date_time_period> periods_;
+ };
+
+
+ ///
+ /// Append two periods sets. Note this operator is not commutative
+ ///
+ inline date_time_period_set operator+(date_time_period_set const &a,date_time_period_set const &b)
+ {
+ date_time_period_set s(a);
+ for(unsigned i=0;i<b.size();i++)
+ s.add(b[i]);
+ return s;
+ }
+
+ ///
+ /// Append two period sets when all periods of set \b change their sign
+ ///
+ inline date_time_period_set operator-(date_time_period_set const &a,date_time_period_set const &b)
+ {
+ date_time_period_set s(a);
+ for(unsigned i=0;i<b.size();i++)
+ s.add(-b[i]);
+ return s;
+ }
+
+
+ ///
+ /// \brief this class provides an access to general calendar information.
+ ///
+ /// This information is not connected to specific date but generic to locale, and timezone.
+ /// It is used in obtaining general information about calendar and is essential for creation of
+ /// date_time objects.
+ ///
+ class BOOST_LOCALE_DECL calendar {
+ public:
+
+ ///
+ /// Create calendar taking locale and timezone information from ios_base instance.
+ ///
+ /// \note throws std::bad_cast if ios does not have a locale with installed \ref calendar_facet
+ /// facet installed
+ ///
+ calendar(std::ios_base &ios);
+ ///
+ /// Create calendar with locale \a l and time_zone \a zone
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref calendar_facet facet installed
+ ///
+ calendar(std::locale const &l,std::string const &zone);
+ ///
+ /// Create calendar with locale \a l and default timezone
+ ///
+ /// \note throws std::bad_cast if loc does not have \ref calendar_facet facet installed
+ ///
+ calendar(std::locale const &l);
+ ///
+ /// Create calendar with default locale and timezone \a zone
+ ///
+ /// \note throws std::bad_cast if global locale does not have \ref calendar_facet facet installed
+ ///
+ calendar(std::string const &zone);
+ ///
+ /// Create calendar with default locale and timezone
+ ///
+ /// \note throws std::bad_cast if global locale does not have \ref calendar_facet facet installed
+ ///
+ calendar();
+ ~calendar();
+
+ ///
+ /// copy calendar
+ ///
+ calendar(calendar const &other);
+ ///
+ /// assign calendar
+ ///
+ calendar const &operator=(calendar const &other);
+
+ ///
+ /// Get minimum value for period f, For example for period::day it is 1.
+ ///
+ int minimum(period::period_type f) const;
+ ///
+ /// Get greatest possible minimum value for period f, For example for period::day it is 1, but may be different for other calendars.
+ ///
+ int greatest_minimum(period::period_type f) const;
+ ///
+ /// Get maximum value for period f, For example for Gregorian calendar's maximum period::day it is 31.
+ ///
+ int maximum(period::period_type f) const;
+ ///
+ /// Get least maximum value for period f, For example for Gregorian calendar's maximum period::day it is 28.
+ ///
+ int least_maximum(period::period_type f) const;
+
+ ///
+ /// Get first day of week for specific calendar, for example for US it is 1 - Sunday for France it is 2 - Monday
+ int first_day_of_week() const;
+
+ ///
+ /// get calendar's locale
+ ///
+ std::locale get_locale() const;
+ ///
+ /// get calendar's time zone
+ ///
+ std::string get_time_zone() const;
+
+ ///
+ /// Check if the calendar is Gregorian
+ ///
+ bool is_gregorian() const;
+
+ ///
+ /// Compare calendars for equivalence: i.e. calendar types, time zones etc.
+ ///
+ bool operator==(calendar const &other) const;
+ ///
+ /// Opposite of ==
+ ///
+ bool operator!=(calendar const &other) const;
+
+ private:
+ friend class date_time;
+ std::locale locale_;
+ std::string tz_;
+ hold_ptr<abstract_calendar> impl_;
+ };
+
+ ///
+ /// \brief this class represents a date time and allows to perform various operation according to the
+ /// locale settings.
+ ///
+ /// This class allows to manipulate various aspects of dates and times easily using arithmetic operations with
+ /// periods.
+ ///
+ /// General arithmetic functions:
+ ///
+ /// - date_time + date_time_period_set = date_time: move time point forward by specific periods like date_time + month;
+ /// - date_time - date_time_period_set = date_time: move time point backward by specific periods like date_time - month;
+ /// - date_time << date_time_period_set = date_time: roll time point forward by specific periods with rolling to begin if overflows: like "2010-01-31" << 2* day == "2010-01-02" instead of "2010-02-02"
+ /// - date_time >> date_time_period_set = date_time: roll time point backward by specific periods with rolling to end if overflows: like "2010-01-02" >> 2* day == "2010-01-31" instead of "2009-12-30"
+ /// - date_time / period_type = int - current period value: like "2010-12-21" / month == 12. "2010-12-21" / year = 2010
+ /// - (date_time - date_time) / period_type = int: distance between dates in period_type. Like ("2010-12-01" - "2008-12-01") / month = 24.
+ ///
+ /// You can also assign specific periods using assignment operator like:
+ /// some_time = year * 1995 that sets the year to 1995.
+ ///
+ ///
+
+ class BOOST_LOCALE_DECL date_time {
+ public:
+
+ ///
+ /// Dafault constructor, uses default calendar initialized date_time object to current time.
+ ///
+ /// \note throws std::bad_cast if the global locale does not have \ref calendar_facet facet installed
+ ///
+ date_time();
+ ///
+ /// copy date_time
+ ///
+ date_time(date_time const &other);
+ ///
+ /// copy date_time and change some fields according to the \a set
+ ///
+ date_time(date_time const &other,date_time_period_set const &set);
+ ///
+ /// assign the date_time
+ ///
+ date_time const &operator=(date_time const &other);
+ ~date_time();
+
+ ///
+ /// Create a date_time object using POSIX time \a time and default calendar
+ ///
+ /// \note throws std::bad_cast if the global locale does not have \ref calendar_facet facet installed
+ ///
+ date_time(double time);
+ ///
+ /// Create a date_time object using POSIX time \a time and calendar \a cal
+ ///
+ date_time(double time,calendar const &cal);
+ ///
+ /// Create a date_time object using calendar \a cal and initializes it to current time.
+ ///
+ date_time(calendar const &cal);
+
+ ///
+ /// Create a date_time object using default calendar and define values given in \a set
+ ///
+ /// \note throws std::bad_cast if the global locale does not have \ref calendar_facet facet installed
+ ///
+ date_time(date_time_period_set const &set);
+ ///
+ /// Create a date_time object using calendar \a cal and define values given in \a set
+ ///
+ date_time(date_time_period_set const &set,calendar const &cal);
+
+
+ ///
+ /// assign values to various periods in set \a f
+ ///
+ date_time const &operator=(date_time_period_set const &f);
+
+ ///
+ /// set specific period \a f value to \a v
+ ///
+ void set(period::period_type f,int v);
+ ///
+ /// get specific period \a f value
+ ///
+ int get(period::period_type f) const;
+
+ ///
+ /// syntactic sugar for get(f)
+ ///
+ int operator/(period::period_type f) const
+ {
+ return get(f);
+ }
+
+ ///
+ /// add single period f to the current date_time
+ ///
+ date_time operator+(period::period_type f) const
+ {
+ return *this+date_time_period(f);
+ }
+
+ ///
+ /// subtract single period f from the current date_time
+ ///
+ date_time operator-(period::period_type f) const
+ {
+ return *this-date_time_period(f);
+ }
+
+ ///
+ /// add single period f to the current date_time
+ ///
+ date_time const &operator+=(period::period_type f)
+ {
+ return *this+=date_time_period(f);
+ }
+ ///
+ /// subtract single period f from the current date_time
+ ///
+ date_time const &operator-=(period::period_type f)
+ {
+ return *this-=date_time_period(f);
+ }
+
+ ///
+ /// roll forward a date by single period f.
+ ///
+ date_time operator<<(period::period_type f) const
+ {
+ return *this<<date_time_period(f);
+ }
+
+ ///
+ /// roll backward a date by single period f.
+ ///
+ date_time operator>>(period::period_type f) const
+ {
+ return *this>>date_time_period(f);
+ }
+
+ ///
+ /// roll forward a date by single period f.
+ ///
+ date_time const &operator<<=(period::period_type f)
+ {
+ return *this<<=date_time_period(f);
+ }
+ ///
+ /// roll backward a date by single period f.
+ ///
+ date_time const &operator>>=(period::period_type f)
+ {
+ return *this>>=date_time_period(f);
+ }
+
+ ///
+ /// add date_time_period to the current date_time
+ ///
+ date_time operator+(date_time_period const &v) const;
+ ///
+ /// subtract date_time_period from the current date_time
+ ///
+ date_time operator-(date_time_period const &v) const;
+ ///
+ /// add date_time_period to the current date_time
+ ///
+ date_time const &operator+=(date_time_period const &v);
+ ///
+ /// subtract date_time_period from the current date_time
+ ///
+ date_time const &operator-=(date_time_period const &v);
+
+ ///
+ /// roll current date_time forward by date_time_period v
+ ///
+ date_time operator<<(date_time_period const &v) const;
+ ///
+ /// roll current date_time backward by date_time_period v
+ ///
+ date_time operator>>(date_time_period const &v) const ;
+ ///
+ /// roll current date_time forward by date_time_period v
+ ///
+ date_time const &operator<<=(date_time_period const &v);
+ ///
+ /// roll current date_time backward by date_time_period v
+ ///
+ date_time const &operator>>=(date_time_period const &v);
+
+ ///
+ /// add date_time_period_set v to the current date_time
+ ///
+ date_time operator+(date_time_period_set const &v) const;
+ ///
+ /// subtract date_time_period_set v from the current date_time
+ ///
+ date_time operator-(date_time_period_set const &v) const;
+ ///
+ /// add date_time_period_set v to the current date_time
+ ///
+ date_time const &operator+=(date_time_period_set const &v);
+ ///
+ /// subtract date_time_period_set v from the current date_time
+ ///
+ date_time const &operator-=(date_time_period_set const &v);
+
+ ///
+ /// roll current date_time forward by date_time_period_set v
+ ///
+ date_time operator<<(date_time_period_set const &v) const;
+ ///
+ /// roll current date_time backward by date_time_period_set v
+ ///
+ date_time operator>>(date_time_period_set const &v) const ;
+ ///
+ /// roll current date_time forward by date_time_period_set v
+ ///
+ date_time const &operator<<=(date_time_period_set const &v);
+ ///
+ /// roll current date_time backward by date_time_period_set v
+ ///
+ date_time const &operator>>=(date_time_period_set const &v);
+
+ ///
+ /// Get POSIX time
+ ///
+ /// The POSIX time is number of seconds since January 1st, 1970 00:00 UTC, ignoring leap seconds.
+ ///
+ double time() const;
+ ///
+ /// set POSIX time
+ ///
+ /// The POSIX time is number of seconds since January 1st, 1970 00:00 UTC, ignoring leap seconds.
+ /// This time can be fetched from Operating system clock using C function time, gettimeofday and others.
+ ///
+ void time(double v);
+
+ ///
+ /// compare date_time in the timeline (ignores difference in calendar, timezone etc)
+ ///
+ bool operator==(date_time const &other) const;
+ ///
+ /// compare date_time in the timeline (ignores difference in calendar, timezone etc)
+ ///
+ bool operator!=(date_time const &other) const;
+ ///
+ /// compare date_time in the timeline (ignores difference in calendar, timezone etc)
+ ///
+ bool operator<(date_time const &other) const;
+ ///
+ /// compare date_time in the timeline (ignores difference in calendar, timezone etc)
+ ///
+ bool operator>(date_time const &other) const;
+ ///
+ /// compare date_time in the timeline (ignores difference in calendar, timezone etc)
+ ///
+ bool operator<=(date_time const &other) const;
+ ///
+ /// compare date_time in the timeline (ignores difference in calendar, timezone etc)
+ ///
+ bool operator>=(date_time const &other) const;
+
+ ///
+ /// swaps two dates - efficient, does not throw
+ ///
+ void swap(date_time &other);
+
+ ///
+ /// calculate the distance from this date_time to \a other in terms of perios \a f
+ ///
+ int difference(date_time const &other,period::period_type f) const;
+
+ ///
+ /// Get minimal possible value for *this time point for a period \a f.
+ ///
+ int minimum(period::period_type f) const;
+ ///
+ /// Get minimal possible value for *this time point for a period \a f. For example
+ /// in February maximum(day) may be 28 or 29, in January maximum(day)==31
+ ///
+ int maximum(period::period_type f) const;
+
+ ///
+ /// Check if *this time point is in daylight saving time
+ ///
+ bool is_in_daylight_saving_time() const;
+
+ private:
+ hold_ptr<abstract_calendar> impl_;
+ };
+
+ ///
+ /// Writes date_time \a t to output stream \a out.
+ ///
+ /// This function uses locale, calendar and time zone of the target stream \a in.
+ ///
+ /// For example:
+ /// \code
+ /// date_time now(time(0),hebrew_calendar)
+ /// cout << "Year: " << period::year(now) <<" Full Date:"<< now;
+ /// \endcode
+ ///
+ /// The output may be Year:5770 Full Date:Jan 1, 2010
+ ///
+ template<typename CharType>
+ std::basic_ostream<CharType> &operator<<(std::basic_ostream<CharType> &out,date_time const &t)
+ {
+ double time_point = t.time();
+ uint64_t display_flags = ios_info::get(out).display_flags();
+ if (
+ display_flags == flags::date
+ || display_flags == flags::time
+ || display_flags == flags::datetime
+ || display_flags == flags::strftime
+ )
+ {
+ out << time_point;
+ }
+ else {
+ ios_info::get(out).display_flags(flags::datetime);
+ out << time_point;
+ ios_info::get(out).display_flags(display_flags);
+ }
+ return out;
+ }
+
+ ///
+ /// Reads date_time \a t from output stream \a in
+ ///
+ /// This function uses locale, calendar and time zone of the source stream \a in.
+ ///
+ template<typename CharType>
+ std::basic_istream<CharType> &operator>>(std::basic_istream<CharType> &in,date_time &t)
+ {
+ double v;
+ uint64_t display_flags = ios_info::get(in).display_flags();
+ if (
+ display_flags == flags::date
+ || display_flags == flags::time
+ || display_flags == flags::datetime
+ || display_flags == flags::strftime
+ )
+ {
+ in >> v;
+ }
+ else {
+ ios_info::get(in).display_flags(flags::datetime);
+ in >> v;
+ ios_info::get(in).display_flags(display_flags);
+ }
+ if(!in.fail())
+ t.time(v);
+ return in;
+ }
+
+ ///
+ /// \brief This class represents a period: a pair of two date_time objects.
+ ///
+ /// It is generally used as syntactic sugar to calculate difference between two dates.
+ ///
+ /// Note: it stores references to the original objects, so it is not recommended to be used
+ /// outside of the equation you calculate the difference in.
+ ///
+ class date_time_duration {
+ public:
+
+ ///
+ /// Create an object were \a first represents earlier point on time line and \a second is later
+ /// point.
+ ///
+ date_time_duration(date_time const &first,date_time const &second) :
+ s_(first),
+ e_(second)
+ {
+ }
+
+ ///
+ /// find a difference in terms of period_type \a f
+ ///
+ int get(period::period_type f) const
+ {
+ return start().difference(end(),f);
+ }
+
+ ///
+ /// Syntactic sugar for get(f)
+ ///
+ int operator / (period::period_type f) const
+ {
+ return start().difference(end(),f);
+ }
+
+ ///
+ /// Get starting point
+ ///
+ date_time const &start() const { return s_; }
+ ///
+ /// Get ending point
+ ///
+ date_time const &end() const { return e_; }
+ private:
+ date_time const &s_;
+ date_time const &e_;
+ };
+
+ ///
+ /// Calculates the difference between two dates, the left operand is a later point on time line.
+ /// Returns date_time_duration object.
+ ///
+ inline date_time_duration operator-(date_time const &later,date_time const &earlier)
+ {
+ return date_time_duration(earlier,later);
+ }
+
+
+ namespace period {
+ ///
+ /// Extract from date_time numerical value of Era i.e. AC, BC in Gregorian and Julian calendar, range [0,1]
+ ///
+ inline int era(date_time const &dt) { return dt.get(era()); }
+ ///
+ /// Extract from date_time numerical value of Year, it is calendar specific, for example 2011 in Gregorian calendar.
+ ///
+ inline int year(date_time const &dt) { return dt.get(year()); }
+ ///
+ /// Extract from date_time numerical value of Extended year for Gregorian/Julian calendars, where 1 BC == 0, 2 BC == -1.
+ ///
+ inline int extended_year(date_time const &dt) { return dt.get(extended_year()); }
+ ///
+ /// Extract from date_time numerical value of The month of year, calendar specific, in Gregorian [0..11]
+ ///
+ inline int month(date_time const &dt) { return dt.get(month()); }
+ ///
+ /// Extract from date_time numerical value of The day of month, calendar specific, in Gregorian [1..31]
+ ///
+ inline int day(date_time const &dt) { return dt.get(day()); }
+ ///
+ /// Extract from date_time numerical value of The number of day in year, starting from 1, in Gregorian [1..366]
+ ///
+ inline int day_of_year(date_time const &dt) { return dt.get(day_of_year()); }
+ ///
+ /// Extract from date_time numerical value of Day of week, Sunday=1, Monday=2,..., Saturday=7.
+ ///
+ /// Note that that updating this value respects local day of week, so for example,
+ /// If first day of week is Monday and the current day is Tuesday then setting
+ /// the value to Sunday (1) would forward the date by 5 days forward and not backward
+ /// by two days as it could be expected if the numbers were taken as is.
+ ///
+ inline int day_of_week(date_time const &dt) { return dt.get(day_of_week()); }
+ ///
+ /// Extract from date_time numerical value of Original number of the day of the week in month. For example 1st Sunday,
+ /// 2nd Sunday, etc. in Gregorian [1..5]
+ ///
+ inline int day_of_week_in_month(date_time const &dt) { return dt.get(day_of_week_in_month()); }
+ ///
+ /// Extract from date_time numerical value of Local day of week, for example in France Monday is 1, in US Sunday is 1, [1..7]
+ ///
+ inline int day_of_week_local(date_time const &dt) { return dt.get(day_of_week_local()); }
+ ///
+ /// Extract from date_time numerical value of 24 clock hour [0..23]
+ ///
+ inline int hour(date_time const &dt) { return dt.get(hour()); }
+ ///
+ /// Extract from date_time numerical value of 12 clock hour [0..11]
+ ///
+ inline int hour_12(date_time const &dt) { return dt.get(hour_12()); }
+ ///
+ /// Extract from date_time numerical value of am or pm marker [0..1]
+ ///
+ inline int am_pm(date_time const &dt) { return dt.get(am_pm()); }
+ ///
+ /// Extract from date_time numerical value of minute [0..59]
+ ///
+ inline int minute(date_time const &dt) { return dt.get(minute()); }
+ ///
+ /// Extract from date_time numerical value of second [0..59]
+ ///
+ inline int second(date_time const &dt) { return dt.get(second()); }
+ ///
+ /// Extract from date_time numerical value of The week number in the year
+ ///
+ inline int week_of_year(date_time const &dt) { return dt.get(week_of_year()); }
+ ///
+ /// Extract from date_time numerical value of The week number within current month
+ ///
+ inline int week_of_month(date_time const &dt) { return dt.get(week_of_month()); }
+ ///
+ /// Extract from date_time numerical value of First day of week, constant, for example Sunday in US = 1, Monday in France = 2
+ ///
+ inline int first_day_of_week(date_time const &dt) { return dt.get(first_day_of_week()); }
+
+ ///
+ /// Extract from date_time_duration numerical value of duration in Era i.e. AC, BC in Gregorian and Julian calendar, range [0,1]
+ ///
+ inline int era(date_time_duration const &dt) { return dt.get(era()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in years
+ ///
+ inline int year(date_time_duration const &dt) { return dt.get(year()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in extended years (for Gregorian/Julian calendars, where 1 BC == 0, 2 BC == -1).
+ ///
+ inline int extended_year(date_time_duration const &dt) { return dt.get(extended_year()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in months
+ ///
+ inline int month(date_time_duration const &dt) { return dt.get(month()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in days of month
+ ///
+ inline int day(date_time_duration const &dt) { return dt.get(day()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in days of year
+ ///
+ inline int day_of_year(date_time_duration const &dt) { return dt.get(day_of_year()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in days of week
+ ///
+ inline int day_of_week(date_time_duration const &dt) { return dt.get(day_of_week()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in original number of the day of the week in month
+ ///
+ inline int day_of_week_in_month(date_time_duration const &dt) { return dt.get(day_of_week_in_month()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in local day of week
+ ///
+ inline int day_of_week_local(date_time_duration const &dt) { return dt.get(day_of_week_local()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in hours
+ ///
+ inline int hour(date_time_duration const &dt) { return dt.get(hour()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in 12 clock hours
+ ///
+ inline int hour_12(date_time_duration const &dt) { return dt.get(hour_12()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in am or pm markers
+ ///
+ inline int am_pm(date_time_duration const &dt) { return dt.get(am_pm()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in minutes
+ ///
+ inline int minute(date_time_duration const &dt) { return dt.get(minute()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in seconds
+ ///
+ inline int second(date_time_duration const &dt) { return dt.get(second()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in the week number in the year
+ ///
+ inline int week_of_year(date_time_duration const &dt) { return dt.get(week_of_year()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in The week number within current month
+ ///
+ inline int week_of_month(date_time_duration const &dt) { return dt.get(week_of_month()); }
+ ///
+ /// Extract from date_time_duration numerical value of duration in the first day of week
+ ///
+ inline int first_day_of_week(date_time_duration const &dt) { return dt.get(first_day_of_week()); }
+
+
+ }
+
+ /// @}
+
+
+ } // locale
+} // boost
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+
+#endif
+///
+/// \example calendar.cpp
+///
+/// Example of using date_time functions for generating calendar for current year.
+///
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/boost/locale/date_time_facet.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/date_time_facet.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,263 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_DATE_TIME_FACET_HPP_INCLUDED
+#define BOOST_LOCALE_DATE_TIME_FACET_HPP_INCLUDED
+
+#include <boost/locale/config.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+
+#include <boost/cstdint.hpp>
+#include <locale>
+
+namespace boost {
+ namespace locale {
+ ///
+ /// \brief Namespace that contains various types for manipulation with dates
+ ///
+ namespace period {
+ ///
+ /// \brief This namespace holds a enum of various period types like era, year, month, etc..
+ ///
+ namespace marks {
+ /// \brief the type that defines a flag that holds a period identifier
+ enum period_mark {
+ invalid, ///< Special invalid value, should not be used directly
+ era, ///< Era i.e. AC, BC in Gregorian and Julian calendar, range [0,1]
+ year, ///< Year, it is calendar specific, for example 2011 in Gregorian calendar.
+ extended_year, ///< Extended year for Gregorian/Julian calendars, where 1 BC == 0, 2 BC == -1.
+ month, ///< The month of year, calendar specific, in Gregorian [0..11]
+ day, ///< The day of month, calendar specific, in Gregorian [1..31]
+ day_of_year, ///< The number of day in year, starting from 1, in Gregorian [1..366]
+ day_of_week, ///< Day of week, Sunday=1, Monday=2,..., Saturday=7.
+ ///< Note that that updating this value respects local day of week, so for example,
+ ///< If first day of week is Monday and the current day is Tuesday then setting
+ ///< the value to Sunday (1) would forward the date by 5 days forward and not backward
+ ///< by two days as it could be expected if the numbers were taken as is.
+ day_of_week_in_month, ///< Original number of the day of the week in month. For example 1st Sunday,
+ ///< 2nd Sunday, etc. in Gregorian [1..5]
+ day_of_week_local, ///< Local day of week, for example in France Monday is 1, in US Sunday is 1, [1..7]
+ hour, ///< 24 clock hour [0..23]
+ hour_12, ///< 12 clock hour [0..11]
+ am_pm, ///< am or pm marker [0..1]
+ minute, ///< minute [0..59]
+ second, ///< second [0..59]
+ week_of_year, ///< The week number in the year
+ week_of_month, ///< The week number within current month
+ first_day_of_week, ///< First day of week, constant, for example Sunday in US = 1, Monday in France = 2
+ };
+
+ } // marks
+
+ ///
+ /// \brief This class holds a type that represents certain period of time like
+ /// year, hour, second and so on.
+ ///
+ /// It can be created from either marks::period_mark type or by using shortcuts in period
+ /// namespace - calling functions like period::year(), period::hour() and so on.
+ ///
+ /// Basically it represents the same object as enum marks::period_mark but allows to
+ /// provide save operator overloading that would not collide with casing of enum to
+ /// numeric values.
+ ///
+ class period_type {
+ public:
+ ///
+ /// Create a period of specific type, default is invalid.
+ ///
+ period_type(marks::period_mark m = marks::invalid) : mark_(m)
+ {
+ }
+
+ ///
+ /// Get the value of marks::period_mark it was created with.
+ ///
+ marks::period_mark mark() const
+ {
+ return mark_;
+ }
+
+ ///
+ /// Check if two periods are the same
+ ///
+ bool operator==(period_type const &other) const
+ {
+ return mark()==other.mark();
+ }
+ ///
+ /// Check if two periods are different
+ ///
+ bool operator!=(period_type const &other) const
+ {
+ return mark()!=other.mark();
+ }
+ private:
+ marks::period_mark mark_;
+ };
+
+ } // namespace period
+
+ ///
+ /// Structure that define POSIX time, seconds and milliseconds
+ /// since Jan 1, 1970, 00:00 not including leap seconds.
+ ///
+ struct posix_time {
+ int64_t seconds; ///< Seconds since epoch
+ uint32_t nanoseconds; ///< Nanoseconds resolution
+ };
+
+ ///
+ /// This class defines generic calendar class, it is used by date_time and calendar
+ /// objects internally. It is less useful for end users, but it is build for localization
+ /// backend implementation
+ ///
+
+ class abstract_calendar {
+ public:
+
+ ///
+ /// Type that defines how to fetch the value
+ ///
+ typedef enum {
+ absolute_minimum, ///< Absolute possible minimum for the value, for example for day is 1
+ actual_minimum, ///< Actual minimal value for this period.
+ greatest_minimum, ///< Maximal minimum value that can be for this period
+ current, ///< Current value of this period
+ least_maximum, ///< The last maximal value for this period, For example for Gregorian calendar
+ ///< day it is 28
+ actual_maximum, ///< Actual maximum, for it can be 28, 29, 30, 31 for day according to current month
+ absolute_maximum, ///< Maximal value, for Gregorian day it would be 31.
+ } value_type;
+
+ ///
+ /// A way to update the value
+ ///
+ typedef enum {
+ move, ///< Change the value up or down effecting others for example 1990-12-31 + 1 day = 1991-01-01
+ roll, ///< Change the value up or down not effecting others for example 1990-12-31 + 1 day = 1990-12-01
+ } update_type;
+
+ ///
+ /// Information about calendar
+ ///
+ typedef enum {
+ is_gregorian, ///< Check if the calendar is Gregorian
+ is_dst ///< Check if the current time is in daylight time savings
+ } calendar_option_type;
+
+ ///
+ /// Make a polymorphic copy of the calendar
+ ///
+ virtual abstract_calendar *clone() const = 0;
+
+ ///
+ /// Set specific \a value for period \a p, note not all values are settable.
+ ///
+ /// After call of set_value you may want to call normalize() function to make sure
+ /// vall periods are updated, if you set sereral fields that are part of single
+ /// date/time representation you should call set_value several times and then
+ /// call normalize().
+ ///
+ /// If normalize() is not called after set_value, the behavior is undefined
+ ///
+ virtual void set_value(period::marks::period_mark p,int value) = 0;
+
+ ///
+ /// Recalculate all periods after setting them, should be called after use of set_value() function.
+ ///
+ virtual void normalize() = 0;
+
+ ///
+ /// Get specific value for period \a p according to a value_type \a v
+ ///
+ virtual int get_value(period::marks::period_mark p,value_type v) const = 0;
+
+ ///
+ /// Set current time point
+ ///
+ virtual void set_time(posix_time const &p) = 0;
+ ///
+ /// Get current time point
+ ///
+ virtual posix_time get_time() const = 0;
+
+ ///
+ /// Set option for calendar, for future use
+ ///
+ virtual void set_option(calendar_option_type opt,int v) = 0;
+ ///
+ /// Get option for calendar, currently only check if it is Gregorian calendar
+ ///
+ virtual int get_option(calendar_option_type opt) const = 0;
+
+ ///
+ /// Adjust period's \a p value by \a difference items using a update_type \a u.
+ /// Note: not all values are adjustable
+ ///
+ virtual void adjust_value(period::marks::period_mark p,update_type u,int difference) = 0;
+
+ ///
+ /// Calculate the difference between this calendar and \a other in \a p units
+ ///
+ virtual int difference(abstract_calendar const *other,period::marks::period_mark p) const = 0;
+
+ ///
+ /// Set time zone, empty - use system
+ ///
+ virtual void set_timezone(std::string const &tz) = 0;
+ ///
+ /// Get current time zone, empty - system one
+ ///
+ virtual std::string get_timezone() const = 0;
+
+ ///
+ /// Check of two calendars have same rules
+ ///
+ virtual bool same(abstract_calendar const *other) const = 0;
+
+ virtual ~abstract_calendar()
+ {
+ }
+
+ };
+
+ ///
+ /// \brief the facet that generates calendar for specific locale
+ ///
+ class BOOST_LOCALE_DECL calendar_facet : public std::locale::facet {
+ public:
+ ///
+ /// Basic constructor
+ ///
+ calendar_facet(size_t refs = 0) : std::locale::facet(refs)
+ {
+ }
+ ///
+ /// Create a new calendar that points to current point of time.
+ ///
+ virtual abstract_calendar *create_calendar() const = 0;
+
+ ///
+ /// Locale id (needed to work with std::locale)
+ ///
+ static std::locale::id id;
+ };
+
+ } // locale
+} // boost
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/boost/locale/encoding.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/encoding.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,352 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_ENCODING_HPP_INCLUDED
+#define BOOST_LOCALE_ENCODING_HPP_INCLUDED
+
+#include <boost/locale/config.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+#include <boost/locale/info.hpp>
+#include <boost/cstdint.hpp>
+#include <stdexcept>
+
+
+
+namespace boost {
+ namespace locale {
+
+ ///
+ /// \brief Namespace that contains all functions related to character set conversion
+ ///
+ namespace conv {
+ ///
+ /// \defgroup codepage Character conversion functions
+ ///
+ /// @{
+
+ ///
+ /// \brief The excepton that is thrown in case of conversion error
+ ///
+ class BOOST_SYMBOL_VISIBLE conversion_error : public std::runtime_error {
+ public:
+ conversion_error() : std::runtime_error("Conversion failed") {}
+ };
+
+ ///
+ /// \brief This exception is thrown in case of use of unsupported
+ /// or invalid character set
+ ///
+ class BOOST_SYMBOL_VISIBLE invalid_charset_error : public std::runtime_error {
+ public:
+
+ /// Create an error for charset \a charset
+ invalid_charset_error(std::string charset) :
+ std::runtime_error("Invalid or unsupported charset:" + charset)
+ {
+ }
+ };
+
+
+ ///
+ /// enum that defines conversion policy
+ ///
+ typedef enum {
+ skip = 0, ///< Skip illegal/unconvertable characters
+ stop = 1, ///< Stop conversion and throw conversion_error
+ default_method = skip ///< Default method - skip
+ } method_type;
+
+ ///
+ /// convert string to UTF string from text in range [begin,end) encoded with \a charset according to policy \a how
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> to_utf(char const *begin,char const *end,std::string const &charset,method_type how=default_method);
+
+ ///
+ /// convert UTF text in range [begin,end) to a text encoded with \a charset according to policy \a how
+ ///
+ template<typename CharType>
+ std::string from_utf(CharType const *begin,CharType const *end,std::string const &charset,method_type how=default_method);
+
+ ///
+ /// convert string to UTF string from text in range [begin,end) encoded according to locale \a loc according to policy \a how
+ ///
+ /// \note throws std::bad_cast if the loc does not have \ref info facet installed
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> to_utf(char const *begin,char const *end,std::locale const &loc,method_type how=default_method)
+ {
+ return to_utf<CharType>(begin,end,std::use_facet<info>(loc).encoding(),how);
+ }
+
+ ///
+ /// convert UTF text in range [begin,end) to a text encoded according to locale \a loc according to policy \a how
+ ///
+ /// \note throws std::bad_cast if the loc does not have \ref info facet installed
+ ///
+ template<typename CharType>
+ std::string from_utf(CharType const *begin,CharType const *end,std::locale const &loc,method_type how=default_method)
+ {
+ return from_utf(begin,end,std::use_facet<info>(loc).encoding(),how);
+ }
+
+ ///
+ /// convert a string \a text encoded with \a charset to UTF string
+ ///
+
+ template<typename CharType>
+ std::basic_string<CharType> to_utf(std::string const &text,std::string const &charset,method_type how=default_method)
+ {
+ return to_utf<CharType>(text.c_str(),text.c_str()+text.size(),charset,how);
+ }
+
+ ///
+ /// Convert a \a text from \a charset to UTF string
+ ///
+ template<typename CharType>
+ std::string from_utf(std::basic_string<CharType> const &text,std::string const &charset,method_type how=default_method)
+ {
+ return from_utf(text.c_str(),text.c_str()+text.size(),charset,how);
+ }
+
+ ///
+ /// Convert a \a text from \a charset to UTF string
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> to_utf(char const *text,std::string const &charset,method_type how=default_method)
+ {
+ char const *text_end = text;
+ while(*text_end)
+ text_end++;
+ return to_utf<CharType>(text,text_end,charset,how);
+ }
+
+ ///
+ /// Convert a \a text from UTF to \a charset
+ ///
+ template<typename CharType>
+ std::string from_utf(CharType const *text,std::string const &charset,method_type how=default_method)
+ {
+ CharType const *text_end = text;
+ while(*text_end)
+ text_end++;
+ return from_utf(text,text_end,charset,how);
+ }
+
+ ///
+ /// Convert a \a text in locale encoding given by \a loc to UTF
+ ///
+ /// \note throws std::bad_cast if the loc does not have \ref info facet installed
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> to_utf(std::string const &text,std::locale const &loc,method_type how=default_method)
+ {
+ return to_utf<CharType>(text.c_str(),text.c_str()+text.size(),loc,how);
+ }
+
+ ///
+ /// Convert a \a text in UTF to locale encoding given by \a loc
+ ///
+ /// \note throws std::bad_cast if the loc does not have \ref info facet installed
+ ///
+ template<typename CharType>
+ std::string from_utf(std::basic_string<CharType> const &text,std::locale const &loc,method_type how=default_method)
+ {
+ return from_utf(text.c_str(),text.c_str()+text.size(),loc,how);
+ }
+
+ ///
+ /// Convert a \a text in locale encoding given by \a loc to UTF
+ ///
+ /// \note throws std::bad_cast if the loc does not have \ref info facet installed
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> to_utf(char const *text,std::locale const &loc,method_type how=default_method)
+ {
+ char const *text_end = text;
+ while(*text_end)
+ text_end++;
+ return to_utf<CharType>(text,text_end,loc,how);
+ }
+
+ ///
+ /// Convert a \a text in UTF to locale encoding given by \a loc
+ ///
+ /// \note throws std::bad_cast if the loc does not have \ref info facet installed
+ ///
+ template<typename CharType>
+ std::string from_utf(CharType const *text,std::locale const &loc,method_type how=default_method)
+ {
+ CharType const *text_end = text;
+ while(*text_end)
+ text_end++;
+ return from_utf(text,text_end,loc,how);
+ }
+
+
+ ///
+ /// Convert a text in range [begin,end) to \a to_encoding from \a from_encoding
+ ///
+
+ BOOST_LOCALE_DECL
+ std::string between(char const *begin,
+ char const *end,
+ std::string const &to_encoding,
+ std::string const &from_encoding,
+ method_type how=default_method);
+
+ ///
+ /// Convert a \a text to \a to_encoding from \a from_encoding
+ ///
+
+ inline
+ std::string between(char const *text,
+ std::string const &to_encoding,
+ std::string const &from_encoding,
+ method_type how=default_method)
+ {
+ char const *end=text;
+ while(*end)
+ end++;
+ return boost::locale::conv::between(text,end,to_encoding,from_encoding,how);
+ }
+
+ ///
+ /// Convert a \a text to \a to_encoding from \a from_encoding
+ ///
+ inline
+ std::string between(std::string const &text,
+ std::string const &to_encoding,
+ std::string const &from_encoding,
+ method_type how=default_method)
+ {
+ return boost::locale::conv::between(text.c_str(),text.c_str()+text.size(),to_encoding,from_encoding,how);
+ }
+
+ /// \cond INTERNAL
+
+ template<>
+ BOOST_LOCALE_DECL std::basic_string<char> to_utf(char const *begin,char const *end,std::string const &charset,method_type how);
+
+ template<>
+ BOOST_LOCALE_DECL std::string from_utf(char const *begin,char const *end,std::string const &charset,method_type how);
+
+ template<>
+ BOOST_LOCALE_DECL std::basic_string<wchar_t> to_utf(char const *begin,char const *end,std::string const &charset,method_type how);
+
+ template<>
+ BOOST_LOCALE_DECL std::string from_utf(wchar_t const *begin,wchar_t const *end,std::string const &charset,method_type how);
+
+ #ifdef BOOST_HAS_CHAR16_T
+ template<>
+ BOOST_LOCALE_DECL std::basic_string<char16_t> to_utf(char const *begin,char const *end,std::string const &charset,method_type how);
+
+ template<>
+ BOOST_LOCALE_DECL std::string from_utf(char16_t const *begin,char16_t const *end,std::string const &charset,method_type how);
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+ template<>
+ BOOST_LOCALE_DECL std::basic_string<char32_t> to_utf(char const *begin,char const *end,std::string const &charset,method_type how);
+
+ template<>
+ BOOST_LOCALE_DECL std::string from_utf(char32_t const *begin,char32_t const *end,std::string const &charset,method_type how);
+ #endif
+
+ namespace details {
+
+ template<typename CharOut,typename CharIn>
+ struct utf_to_utf_traits {
+ static std::basic_string<CharOut>
+ convert(CharIn const *begin,CharIn const *end,method_type how)
+ {
+ // Make more efficient in fututre - UTF-16/UTF-32 should be quite
+ // simple and fast
+ return to_utf<CharOut>(from_utf(begin,end,"UTF-8",how),"UTF-8",how);
+ }
+ };
+ template<typename CharOut>
+ struct utf_to_utf_traits<CharOut,char> {
+ static std::basic_string<CharOut>
+ convert(char const *begin,char const *end,method_type how)
+ {
+ return to_utf<CharOut>(begin,end,"UTF-8",how);
+ }
+ };
+ template<typename CharIn>
+ struct utf_to_utf_traits<char,CharIn> {
+ static std::string
+ convert(CharIn const *begin,CharIn const *end,method_type how)
+ {
+ return from_utf(begin,end,"UTF-8",how);
+ }
+ };
+ template<>
+ struct utf_to_utf_traits<char,char> { // just test valid
+ static std::string
+ convert(char const *begin,char const *end,method_type how)
+ {
+ return from_utf(begin,end,"UTF-8",how);
+ }
+ };
+ }
+
+ /// \endcond
+
+ ///
+ /// Convert a Unicode text in range [begin,end) to other Unicode encoding
+ ///
+ template<typename CharOut,typename CharIn>
+ std::basic_string<CharOut>
+ utf_to_utf(CharIn const *begin,CharIn const *end,method_type how = default_method)
+ {
+ return details::utf_to_utf_traits<CharOut,CharIn>::convert(begin,end,how);
+ }
+
+ ///
+ /// Convert a Unicode NUL terminated string \a str other Unicode encoding
+ ///
+ template<typename CharOut,typename CharIn>
+ std::basic_string<CharOut>
+ utf_to_utf(CharIn const *str,method_type how = default_method)
+ {
+ CharIn const *end = str;
+ while(*end)
+ end++;
+ return utf_to_utf<CharOut,CharIn>(str,end,how);
+ }
+
+
+ ///
+ /// Convert a Unicode string \a str other Unicode encoding
+ ///
+ template<typename CharOut,typename CharIn>
+ std::basic_string<CharOut>
+ utf_to_utf(std::basic_string<CharIn> const &str,method_type how = default_method)
+ {
+ return utf_to_utf<CharOut,CharIn>(str.c_str(),str.c_str()+str.size(),how);
+ }
+
+
+ /// @}
+
+ } // conv
+
+ } // locale
+} // boost
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+#endif
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/boost/locale/format.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/format.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,515 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_FORMAT_HPP_INCLUDED
+#define BOOST_LOCALE_FORMAT_HPP_INCLUDED
+
+#include <boost/locale/config.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+#include <boost/locale/message.hpp>
+#include <boost/locale/formatting.hpp>
+
+#include <sstream>
+
+
+namespace boost {
+ namespace locale {
+
+ ///
+ /// \defgroup format Format
+ ///
+ /// This module provides printf like functionality integrated into iostreams and suitable for localization
+ ///
+ /// @{
+ ///
+
+ /// \cond INTERNAL
+ namespace details {
+
+ template<typename CharType>
+ struct formattible {
+ typedef std::basic_ostream<CharType> stream_type;
+ typedef void (*writer_type)(stream_type &output,void const *ptr);
+
+ formattible() :
+ pointer_(0),
+ writer_(&formattible::void_write)
+ {
+ }
+
+ formattible(formattible const &other) :
+ pointer_(other.pointer_),
+ writer_(other.writer_)
+ {
+ }
+
+ formattible const &operator=(formattible const &other)
+ {
+ if(this != &other) {
+ pointer_=other.pointer_;
+ writer_=other.writer_;
+ }
+ return *this;
+ }
+
+ template<typename Type>
+ formattible(Type const &value)
+ {
+ pointer_ = static_cast<void const *>(&value);
+ writer_ = &write<Type>;
+ }
+
+ template<typename Type>
+ formattible const &operator=(Type const &other)
+ {
+ *this = formattible(other);
+ return *this;
+ }
+
+ friend stream_type &operator<<(stream_type &out,formattible const &fmt)
+ {
+ fmt.writer_(out,fmt.pointer_);
+ return out;
+ }
+
+ private:
+ static void void_write(stream_type &output,void const * /*ptr*/)
+ {
+ CharType empty_string[1]={0};
+ output<<empty_string;
+ }
+
+ template<typename Type>
+ static void write(stream_type &output,void const *ptr)
+ {
+ output << *static_cast<Type const *>(ptr);
+ }
+
+ void const *pointer_;
+ writer_type writer_;
+ }; // formattible
+
+ class BOOST_LOCALE_DECL format_parser {
+ public:
+ format_parser(std::ios_base &ios,void *,void (*imbuer)(void *,std::locale const &));
+ ~format_parser();
+
+ unsigned get_position();
+
+ void set_one_flag(std::string const &key,std::string const &value);
+
+ template<typename CharType>
+ void set_flag_with_str(std::string const &key,std::basic_string<CharType> const &value)
+ {
+ if(key=="ftime" || key=="strftime") {
+ as::strftime(ios_);
+ ios_info::get(ios_).date_time_pattern(value);
+ }
+ }
+ void restore();
+ private:
+ void imbue(std::locale const &);
+ format_parser(format_parser const &);
+ void operator=(format_parser const &);
+
+ std::ios_base &ios_;
+ struct data;
+ std::auto_ptr<data> d;
+ };
+
+ }
+
+ /// \endcond
+
+ ///
+ /// \brief a printf like class that allows type-safe and locale aware message formatting
+ ///
+ /// This class creates a formatted message similar to printf or boost::format and receives
+ /// formatted entries via operator %.
+ ///
+ /// For example
+ /// \code
+ /// cout << format("Hello {1}, you are {2} years old") % name % age << endl;
+ /// \endcode
+ ///
+ /// Formatting is enclosed between curly brackets \c { \c } and defined by a comma separated list of flags in the format key[=value]
+ /// value may also be text included between single quotes \c ' that is used for special purposes where inclusion of non-ASCII
+ /// text is allowed
+ ///
+ /// Including of literal \c { and \c } is possible by specifying double brackets \c {{ and \c }} accordingly.
+ ///
+ ///
+ /// For example:
+ ///
+ /// \code
+ /// cout << format("The height of water at {1,time} is {2,num=fixed,precision=3}") % time % height;
+ /// \endcode
+ ///
+ /// The special key -- a number without a value defines the position of an input parameter.
+ /// List of keys:
+ /// - \c [0-9]+ -- digits, the index of a formatted parameter -- mandatory key.
+ /// - \c num or \c number -- format a number. Optional values are:
+ /// - \c hex -- display hexadecimal number
+ /// - \c oct -- display in octal format
+ /// - \c sci or \c scientific -- display in scientific format
+ /// - \c fix or \c fixed -- display in fixed format
+ /// .
+ /// For example \c number=sci
+ /// - \c cur or \c currency -- format currency. Optional values are:
+ ///
+ /// - \c iso -- display using ISO currency symbol.
+ /// - \c nat or \c national -- display using national currency symbol.
+ /// .
+ /// - \c per or \c percent -- format percent value.
+ /// - \c date, \c time , \c datetime or \c dt -- format date, time or date and time. Optional values are:
+ /// - \c s or \c short -- display in short format
+ /// - \c m or \c medium -- display in medium format.
+ /// - \c l or \c long -- display in long format.
+ /// - \c f or \c full -- display in full format.
+ /// .
+ /// - \c ftime with string (quoted) parameter -- display as with \c strftime see, \c as::ftime manipulator
+ /// - \c spell or \c spellout -- spell the number.
+ /// - \c ord or \c ordinal -- format ordinal number (1st, 2nd... etc)
+ /// - \c left or \c < -- align to left.
+ /// - \c right or \c > -- align to right.
+ /// - \c width or \c w -- set field width (requires parameter).
+ /// - \c precision or \c p -- set precision (requires parameter).
+ /// - \c locale -- with parameter -- switch locale for current operation. This command generates locale
+ /// with formatting facets giving more fine grained control of formatting. For example:
+ /// \code
+ /// cout << format("Today {1,date} ({1,date,locale=he_IL.UTF-8_at_calendar=hebrew,date} Hebrew Date)") % date;
+ /// \endcode
+ /// - \c timezone or \c tz -- the name of the timezone to display the time in. For example:\n
+ /// \code
+ /// cout << format("Time is: Local {1,time}, ({1,time,tz=EET} Eastern European Time)") % date;
+ /// \endcode
+ /// - \c local - display the time in local time
+ /// - \c gmt - display the time in UTC time scale
+ /// \code
+ /// cout << format("Local time is: {1,time,local}, universal time is {1,time,gmt}") % time;
+ /// \endcode
+ ///
+ ///
+ /// Invalid formatting strings are slightly ignored. This would prevent from translator
+ /// to crash the program in unexpected location.
+ ///
+ template<typename CharType>
+ class basic_format {
+ public:
+ typedef CharType char_type; ///< Underlying character type
+ typedef basic_message<char_type> message_type; ///< The translation message type
+ /// \cond INTERNAL
+ typedef details::formattible<CharType> formattible_type;
+ /// \endcond
+
+ typedef std::basic_string<CharType> string_type; ///< string type for this type of character
+ typedef std::basic_ostream<CharType> stream_type; ///< output stream type for this type of character
+
+
+ ///
+ /// Create a format class for \a format_string
+ ///
+ basic_format(string_type format_string) :
+ format_(format_string),
+ translate_(false),
+ parameters_count_(0)
+ {
+ }
+ ///
+ /// Create a format class using message \a trans. The message if translated first according
+ /// to the rules of target locale and then interpreted as format string
+ ///
+ basic_format(message_type const &trans) :
+ message_(trans),
+ translate_(true),
+ parameters_count_(0)
+ {
+ }
+
+ ///
+ /// Add new parameter to format list. The object should be a type
+ /// with defined expression out << object where \c out is \c std::basic_ostream.
+ ///
+ template<typename Formattible>
+ basic_format &operator % (Formattible const &object)
+ {
+ add(formattible_type(object));
+ return *this;
+ }
+
+ ///
+ /// Format a string using a locale \a loc
+ ///
+ string_type str(std::locale const &loc = std::locale()) const
+ {
+ std::basic_ostringstream<CharType> buffer;
+ buffer.imbue(loc);
+ write(buffer);
+ return buffer.str();
+ }
+
+ ///
+ /// write a formatted string to output stream \a out using out's locale
+ ///
+ void write(stream_type &out) const
+ {
+ string_type format;
+ if(translate_)
+ format = message_.str(out.getloc(),ios_info::get(out).domain_id());
+ else
+ format = format_;
+
+ format_output(out,format);
+
+ }
+
+
+ private:
+
+ class format_guard {
+ public:
+ format_guard(details::format_parser &fmt) :
+ fmt_(&fmt),
+ restored_(false)
+ {
+ }
+ void restore()
+ {
+ if(restored_)
+ return;
+ fmt_->restore();
+ restored_ = true;
+ }
+ ~format_guard()
+ {
+ try {
+ restore();
+ }
+ catch(...) {
+ }
+ }
+ private:
+ details::format_parser *fmt_;
+ bool restored_;
+ };
+
+ void format_output(stream_type &out,string_type const &sformat) const
+ {
+ char_type obrk='{';
+ char_type cbrk='}';
+ char_type eq='=';
+ char_type comma=',';
+ char_type quote='\'';
+
+ size_t pos = 0;
+ size_t size=sformat.size();
+ CharType const *format=sformat.c_str();
+ while(format[pos]!=0) {
+ if(format[pos] != obrk) {
+ if(format[pos]==cbrk && format[pos+1]==cbrk) {
+ out << cbrk;
+ pos+=2;
+ }
+ else {
+ out<<format[pos];
+ pos++;
+ }
+ continue;
+ }
+
+ if(pos+1 < size && format[pos+1]==obrk) {
+ out << obrk;
+ pos+=2;
+ continue;
+ }
+ pos++;
+
+ details::format_parser fmt(out,static_cast<void *>(&out),&basic_format::imbue_locale);
+
+ format_guard guard(fmt);
+
+ while(pos < size) {
+ std::string key;
+ std::string svalue;
+ string_type value;
+ bool use_svalue = true;
+ for(;format[pos];pos++) {
+ char_type c=format[pos];
+ if(c==comma || c==eq || c==cbrk)
+ break;
+ else {
+ key+=static_cast<char>(c);
+ }
+ }
+
+ if(format[pos]==eq) {
+ pos++;
+ if(format[pos]==quote) {
+ pos++;
+ use_svalue = false;
+ while(format[pos]) {
+ if(format[pos]==quote) {
+ if(format[pos+1]==quote) {
+ value+=quote;
+ pos+=2;
+ }
+ else {
+ pos++;
+ break;
+ }
+ }
+ else {
+ value+=format[pos];
+ pos++;
+ }
+ }
+ }
+ else {
+ char_type c;
+ while((c=format[pos])!=0 && c!=comma && c!=cbrk) {
+ svalue+=static_cast<char>(c);
+ pos++;
+ }
+ }
+ }
+
+ if(use_svalue) {
+ fmt.set_one_flag(key,svalue);
+ }
+ else
+ fmt.set_flag_with_str(key,value);
+
+ if(format[pos]==comma) {
+ pos++;
+ continue;
+ }
+ else if(format[pos]==cbrk) {
+ unsigned position = fmt.get_position();
+ out << get(position);
+ guard.restore();
+ pos++;
+ break;
+ }
+ else {
+ guard.restore();
+ break;
+ }
+ }
+ }
+ }
+
+
+ //
+ // Non-copyable
+ //
+ basic_format(basic_format const &other);
+ void operator=(basic_format const &other);
+
+ void add(formattible_type const &param)
+ {
+ if(parameters_count_ >= base_params_)
+ ext_params_.push_back(param);
+ else
+ parameters_[parameters_count_] = param;
+ parameters_count_++;
+ }
+
+ formattible_type get(unsigned id) const
+ {
+ if(id >= parameters_count_)
+ return formattible_type();
+ else if(id >= base_params_)
+ return ext_params_[id - base_params_];
+ else
+ return parameters_[id];
+ }
+
+ static void imbue_locale(void *ptr,std::locale const &l)
+ {
+ reinterpret_cast<stream_type *>(ptr)->imbue(l);
+ }
+
+
+
+ static unsigned const base_params_ = 8;
+
+ message_type message_;
+ string_type format_;
+ bool translate_;
+
+
+ formattible_type parameters_[base_params_];
+ unsigned parameters_count_;
+ std::vector<formattible_type> ext_params_;
+ };
+
+ ///
+ /// Write formatted message to stream.
+ ///
+ /// This operator actually causes actual text formatting. It uses the locale of \a out stream
+ ///
+ template<typename CharType>
+ std::basic_ostream<CharType> &operator<<(std::basic_ostream<CharType> &out,basic_format<CharType> const &fmt)
+ {
+ fmt.write(out);
+ return out;
+ }
+
+
+ ///
+ /// Definition of char based format
+ ///
+ typedef basic_format<char> format;
+
+ ///
+ /// Definition of wchar_t based format
+ ///
+ typedef basic_format<wchar_t> wformat;
+
+ #ifdef BOOST_HAS_CHAR16_T
+ ///
+ /// Definition of char16_t based format
+ ///
+ typedef basic_format<char16_t> u16format;
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+ ///
+ /// Definition of char32_t based format
+ ///
+ typedef basic_format<char32_t> u32format;
+ #endif
+
+ ///
+ /// @}
+ ///
+
+ }
+}
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+#endif
+
+///
+/// \example hello.cpp
+///
+/// Basic example of using various functions provided by this library
+///
+/// \example whello.cpp
+///
+/// Basic example of using various functions with wide strings provided by this library
+///
+///
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/boost/locale/formatting.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/formatting.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,673 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_FORMATTING_HPP_INCLUDED
+#define BOOST_LOCALE_FORMATTING_HPP_INCLUDED
+
+#include <boost/locale/config.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+#include <boost/cstdint.hpp>
+#include <boost/locale/time_zone.hpp>
+#include <ostream>
+#include <istream>
+#include <string>
+#include <string.h>
+#include <typeinfo>
+
+namespace boost {
+ namespace locale {
+ ///
+ /// \brief This namespace holds additional formatting
+ /// flags that can be set using ios_info.
+ ///
+ namespace flags {
+ ///
+ /// Formatting flags, each one of them has corresponding manipulation
+ /// in namespace \a as
+ ///
+ typedef enum {
+ posix = 0,
+ number = 1,
+ currency = 2,
+ percent = 3,
+ date = 4,
+ time = 5,
+ datetime = 6,
+ strftime = 7,
+ spellout = 8,
+ ordinal = 9,
+
+ display_flags_mask = 31,
+
+ currency_default = 0 << 5,
+ currency_iso = 1 << 5,
+ currency_national = 2 << 5,
+
+ currency_flags_mask = 3 << 5,
+
+ time_default = 0 << 7,
+ time_short = 1 << 7,
+ time_medium = 2 << 7,
+ time_long = 3 << 7,
+ time_full = 4 << 7,
+ time_flags_mask = 7 << 7,
+
+ date_default = 0 << 10,
+ date_short = 1 << 10,
+ date_medium = 2 << 10,
+ date_long = 3 << 10,
+ date_full = 4 << 10,
+ date_flags_mask = 7 << 10,
+
+ datetime_flags_mask = date_flags_mask | time_flags_mask
+
+ } display_flags_type;
+
+ ///
+ /// Special string patters that can be used
+ /// for text formatting
+ ///
+ typedef enum {
+ datetime_pattern, ///< strftime like formatting
+ time_zone_id ///< time zone name
+ } pattern_type;
+
+ ///
+ /// Special integer values that can be used for formatting
+ ///
+ typedef enum {
+ domain_id ///< Domain code - for message formatting
+ } value_type;
+
+
+ } // flags
+
+ ///
+ /// \brief This class holds an external data - beyond existing fmtflags that std::ios_base holds
+ ///
+ /// You should almost never create this object directly. Instead, you should access it via ios_info::get(stream_object)
+ /// static member function. It automatically creates default formatting data for that stream
+ ///
+ class BOOST_LOCALE_DECL ios_info {
+ public:
+
+ /// \cond INTERNAL
+
+ ios_info();
+ ios_info(ios_info const &);
+ ios_info const &operator=(ios_info const &);
+ ~ios_info();
+
+ /// \endcond
+
+ ///
+ /// Get ios_info instance for specific stream object
+ ///
+ static ios_info &get(std::ios_base &ios);
+
+ ///
+ /// Set a flags that define a way for format data like number, spell, currency etc.
+ ///
+ void display_flags(uint64_t flags);
+
+ ///
+ /// Set a flags that define how to format currency
+ ///
+ void currency_flags(uint64_t flags);
+
+ ///
+ /// Set a flags that define how to format date
+ ///
+ void date_flags(uint64_t flags);
+
+ ///
+ /// Set a flags that define how to format time
+ ///
+ void time_flags(uint64_t flags);
+
+ ///
+ /// Set a flags that define how to format both date and time
+ ///
+ void datetime_flags(uint64_t flags);
+
+ ///
+ /// Set special message domain identification
+ ///
+ void domain_id(int);
+
+ ///
+ /// Set time zone for formatting dates and time
+ ///
+ void time_zone(std::string const &);
+
+
+ ///
+ /// Set date/time pattern (strftime like)
+ ///
+ template<typename CharType>
+ void date_time_pattern(std::basic_string<CharType> const &str)
+ {
+ string_set &s = date_time_pattern_set();
+ s.set<CharType>(str.c_str());
+ }
+
+
+ ///
+ /// Get a flags that define a way for format data like number, spell, currency etc.
+ ///
+ uint64_t display_flags() const;
+
+ ///
+ /// Get a flags that define how to format currency
+ ///
+ uint64_t currency_flags() const;
+
+
+ ///
+ /// Get a flags that define how to format date
+ ///
+ uint64_t date_flags() const;
+
+ ///
+ /// Get a flags that define how to format time
+ ///
+ uint64_t time_flags() const;
+
+ ///
+ /// Get a flags that define how to format both date and time
+ ///
+ uint64_t datetime_flags() const;
+
+ ///
+ /// Get special message domain identification
+ ///
+ int domain_id() const;
+
+ ///
+ /// Get time zone for formatting dates and time
+ ///
+ std::string time_zone() const;
+
+ ///
+ /// Get date/time pattern (strftime like)
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> date_time_pattern() const
+ {
+ string_set const &s = date_time_pattern_set();
+ return s.get<CharType>();
+ }
+
+ /// \cond INTERNAL
+ void on_imbue();
+ /// \endcond
+
+ private:
+
+ class string_set;
+
+ string_set const &date_time_pattern_set() const;
+ string_set &date_time_pattern_set();
+
+ class BOOST_LOCALE_DECL string_set {
+ public:
+ string_set();
+ ~string_set();
+ string_set(string_set const &other);
+ string_set const &operator=(string_set const &other);
+ void swap(string_set &other);
+
+ template<typename Char>
+ void set(Char const *s)
+ {
+ delete [] ptr;
+ ptr = 0;
+ type=&typeid(Char);
+ Char const *end = s;
+ while(*end!=0) end++;
+ // if ptr = 0 it does not matter what is value of size
+ size = sizeof(Char)*(end - s+1);
+ ptr = new char[size];
+ memcpy(ptr,s,size);
+ }
+
+ template<typename Char>
+ std::basic_string<Char> get() const
+ {
+ if(type==0 || *type!=typeid(Char))
+ throw std::bad_cast();
+ std::basic_string<Char> result = reinterpret_cast<Char const *>(ptr);
+ return result;
+ }
+
+ private:
+ std::type_info const *type;
+ size_t size;
+ char *ptr;
+ };
+
+ uint64_t flags_;
+ int domain_id_;
+ std::string time_zone_;
+ string_set datetime_;
+
+ struct data;
+ data *d;
+
+ };
+
+
+ ///
+ /// \brief This namespace includes all manipulators that can be used on IO streams
+ ///
+ namespace as {
+ ///
+ /// \defgroup manipulators I/O Stream manipulators
+ ///
+ /// @{
+ ///
+
+ ///
+ /// Format values with "POSIX" or "C" locale. Note, if locale was created with additional non-classic locale then
+ /// These numbers may be localized
+ ///
+
+ inline std::ios_base & posix(std::ios_base & ios)
+ {
+ ios_info::get(ios).display_flags(flags::posix);
+ return ios;
+ }
+
+ ///
+ /// Format a number. Note, unlike standard number formatting, integers would be treated like real numbers when std::fixed or
+ /// std::scientific manipulators were applied
+ ///
+ inline std::ios_base & number(std::ios_base & ios)
+ {
+ ios_info::get(ios).display_flags(flags::number);
+ return ios;
+ }
+
+ ///
+ /// Format currency, number is treated like amount of money
+ ///
+ inline std::ios_base & currency(std::ios_base & ios)
+ {
+ ios_info::get(ios).display_flags(flags::currency);
+ return ios;
+ }
+
+ ///
+ /// Format percent, value 0.3 is treated as 30%.
+ ///
+ inline std::ios_base & percent(std::ios_base & ios)
+ {
+ ios_info::get(ios).display_flags(flags::percent);
+ return ios;
+ }
+
+ ///
+ /// Format a date, number is treated as POSIX time
+ ///
+ inline std::ios_base & date(std::ios_base & ios)
+ {
+ ios_info::get(ios).display_flags(flags::date);
+ return ios;
+ }
+
+ ///
+ /// Format a time, number is treated as POSIX time
+ ///
+ inline std::ios_base & time(std::ios_base & ios)
+ {
+ ios_info::get(ios).display_flags(flags::time);
+ return ios;
+ }
+
+ ///
+ /// Format a date and time, number is treated as POSIX time
+ ///
+ inline std::ios_base & datetime(std::ios_base & ios)
+ {
+ ios_info::get(ios).display_flags(flags::datetime);
+ return ios;
+ }
+
+ ///
+ /// Create formatted date time, Please note, this manipulator only changes formatting mode,
+ /// and not format itself, so you are probably looking for ftime manipulator
+ ///
+ inline std::ios_base & strftime(std::ios_base & ios)
+ {
+ ios_info::get(ios).display_flags(flags::strftime);
+ return ios;
+ }
+
+ ///
+ /// Spell the number, like "one hundred and ten"
+ ///
+ inline std::ios_base & spellout(std::ios_base & ios)
+ {
+ ios_info::get(ios).display_flags(flags::spellout);
+ return ios;
+ }
+
+ ///
+ /// Write an order of the number like 4th.
+ ///
+ inline std::ios_base & ordinal(std::ios_base & ios)
+ {
+ ios_info::get(ios).display_flags(flags::ordinal);
+ return ios;
+ }
+
+ ///
+ /// Set default currency formatting style -- national, like "$"
+ ///
+ inline std::ios_base & currency_default(std::ios_base & ios)
+ {
+ ios_info::get(ios).currency_flags(flags::currency_default);
+ return ios;
+ }
+
+ ///
+ /// Set ISO currency formatting style, like "USD", (requires ICU >= 4.2)
+ ///
+ inline std::ios_base & currency_iso(std::ios_base & ios)
+ {
+ ios_info::get(ios).currency_flags(flags::currency_iso);
+ return ios;
+ }
+
+ ///
+ /// Set national currency formatting style, like "$"
+ ///
+ inline std::ios_base & currency_national(std::ios_base & ios)
+ {
+ ios_info::get(ios).currency_flags(flags::currency_national);
+ return ios;
+ }
+
+ ///
+ /// set default (medium) time formatting style
+ ///
+ inline std::ios_base & time_default(std::ios_base & ios)
+ {
+ ios_info::get(ios).time_flags(flags::time_default);
+ return ios;
+ }
+
+ ///
+ /// set short time formatting style
+ ///
+ inline std::ios_base & time_short(std::ios_base & ios)
+ {
+ ios_info::get(ios).time_flags(flags::time_short);
+ return ios;
+ }
+
+ ///
+ /// set medium time formatting style
+ ///
+ inline std::ios_base & time_medium(std::ios_base & ios)
+ {
+ ios_info::get(ios).time_flags(flags::time_medium);
+ return ios;
+ }
+
+ ///
+ /// set long time formatting style
+ ///
+ inline std::ios_base & time_long(std::ios_base & ios)
+ {
+ ios_info::get(ios).time_flags(flags::time_long);
+ return ios;
+ }
+
+ ///
+ /// set full time formatting style
+ ///
+ inline std::ios_base & time_full(std::ios_base & ios)
+ {
+ ios_info::get(ios).time_flags(flags::time_full);
+ return ios;
+ }
+
+ ///
+ /// set default (medium) date formatting style
+ ///
+ inline std::ios_base & date_default(std::ios_base & ios)
+ {
+ ios_info::get(ios).date_flags(flags::date_default);
+ return ios;
+ }
+
+ ///
+ /// set short date formatting style
+ ///
+ inline std::ios_base & date_short(std::ios_base & ios)
+ {
+ ios_info::get(ios).date_flags(flags::date_short);
+ return ios;
+ }
+
+ ///
+ /// set medium date formatting style
+ ///
+ inline std::ios_base & date_medium(std::ios_base & ios)
+ {
+ ios_info::get(ios).date_flags(flags::date_medium);
+ return ios;
+ }
+
+ ///
+ /// set long date formatting style
+ ///
+ inline std::ios_base & date_long(std::ios_base & ios)
+ {
+ ios_info::get(ios).date_flags(flags::date_long);
+ return ios;
+ }
+
+ ///
+ /// set full date formatting style
+ ///
+ inline std::ios_base & date_full(std::ios_base & ios)
+ {
+ ios_info::get(ios).date_flags(flags::date_full);
+ return ios;
+ }
+
+
+ /// \cond INTERNAL
+ namespace details {
+ template<typename CharType>
+ struct add_ftime {
+
+ std::basic_string<CharType> ftime;
+
+ void apply(std::basic_ios<CharType> &ios) const
+ {
+ ios_info::get(ios).date_time_pattern(ftime);
+ as::strftime(ios);
+ }
+
+ };
+
+ template<typename CharType>
+ std::basic_ostream<CharType> &operator<<(std::basic_ostream<CharType> &out,add_ftime<CharType> const &fmt)
+ {
+ fmt.apply(out);
+ return out;
+ }
+
+ template<typename CharType>
+ std::basic_istream<CharType> &operator>>(std::basic_istream<CharType> &in,add_ftime<CharType> const &fmt)
+ {
+ fmt.apply(in);
+ return in;
+ }
+
+ }
+ /// \endcond
+
+ ///
+ /// Set strftime like formatting string
+ ///
+ /// Please note, formatting flags are very similar but not exactly the same as flags for C function strftime.
+ /// Differences: some flags as "%e" do not add blanks to fill text up to two spaces, not all flags supported.
+ ///
+ /// Flags:
+ /// - "%a" -- Abbreviated weekday (Sun.)
+ /// - "%A" -- Full weekday (Sunday)
+ /// - "%b" -- Abbreviated month (Jan.)
+ /// - "%B" -- Full month (January)
+ /// - "%c" -- Locale date-time format. **Note:** prefer using "as::datetime"
+ /// - "%d" -- Day of Month [01,31]
+ /// - "%e" -- Day of Month [1,31]
+ /// - "%h" -- Same as "%b"
+ /// - "%H" -- 24 clock hour [00,23]
+ /// - "%I" -- 12 clock hour [01,12]
+ /// - "%j" -- Day of year [1,366]
+ /// - "%m" -- Month [01,12]
+ /// - "%M" -- Minute [00,59]
+ /// - "%n" -- New Line
+ /// - "%p" -- AM/PM in locale representation
+ /// - "%r" -- Time with AM/PM, same as "%I:%M:%S %p"
+ /// - "%R" -- Same as "%H:%M"
+ /// - "%S" -- Second [00,61]
+ /// - "%t" -- Tab character
+ /// - "%T" -- Same as "%H:%M:%S"
+ /// - "%x" -- Local date representation. **Note:** prefer using "as::date"
+ /// - "%X" -- Local time representation. **Note:** prefer using "as::time"
+ /// - "%y" -- Year [00,99]
+ /// - "%Y" -- 4 digits year. (2009)
+ /// - "%Z" -- Time Zone
+ /// - "%%" -- Percent symbol
+ ///
+
+
+ template<typename CharType>
+ #ifdef BOOST_LOCALE_DOXYGEN
+ unspecified_type
+ #else
+ details::add_ftime<CharType>
+ #endif
+ ftime(std::basic_string<CharType> const &format)
+ {
+ details::add_ftime<CharType> fmt;
+ fmt.ftime=format;
+ return fmt;
+ }
+
+ ///
+ /// See ftime(std::basic_string<CharType> const &format)
+ ///
+ template<typename CharType>
+ #ifdef BOOST_LOCALE_DOXYGEN
+ unspecified_type
+ #else
+ details::add_ftime<CharType>
+ #endif
+ ftime(CharType const *format)
+ {
+ details::add_ftime<CharType> fmt;
+ fmt.ftime=format;
+ return fmt;
+ }
+
+ /// \cond INTERNAL
+ namespace details {
+ struct set_timezone {
+ std::string id;
+ };
+ template<typename CharType>
+ std::basic_ostream<CharType> &operator<<(std::basic_ostream<CharType> &out,set_timezone const &fmt)
+ {
+ ios_info::get(out).time_zone(fmt.id);
+ return out;
+ }
+
+ template<typename CharType>
+ std::basic_istream<CharType> &operator>>(std::basic_istream<CharType> &in,set_timezone const &fmt)
+ {
+ ios_info::get(in).time_zone(fmt.id);
+ return in;
+ }
+ }
+ /// \endcond
+
+ ///
+ /// Set GMT time zone to stream
+ ///
+ inline std::ios_base &gmt(std::ios_base &ios)
+ {
+ ios_info::get(ios).time_zone("GMT");
+ return ios;
+ }
+
+ ///
+ /// Set local time zone to stream
+ ///
+ inline std::ios_base &local_time(std::ios_base &ios)
+ {
+ ios_info::get(ios).time_zone(time_zone::global());
+ return ios;
+ }
+
+ ///
+ /// Set time zone using \a id
+ ///
+ inline
+ #ifdef BOOST_LOCALE_DOXYGEN
+ unspecified_type
+ #else
+ details::set_timezone
+ #endif
+ time_zone(char const *id)
+ {
+ details::set_timezone tz;
+ tz.id=id;
+ return tz;
+ }
+
+ ///
+ /// Set time zone using \a id
+ ///
+ inline
+ #ifdef BOOST_LOCALE_DOXYGEN
+ unspecified_type
+ #else
+ details::set_timezone
+ #endif
+ time_zone(std::string const &id)
+ {
+ details::set_timezone tz;
+ tz.id=id;
+ return tz;
+ }
+
+
+ ///
+ /// @}
+ ///
+
+ } // as manipulators
+
+ } // locale
+} // boost
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/boost/locale/generator.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/generator.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,235 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_GENERATOR_HPP
+#define BOOST_LOCALE_GENERATOR_HPP
+#include <boost/locale/config.hpp>
+#include <boost/cstdint.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+#include <string>
+#include <locale>
+#include <memory>
+
+namespace boost {
+
+ template<typename Type>
+ class shared_ptr;
+
+ ///
+ /// \brief This is the main namespace that encloses all localization classes
+ ///
+ namespace locale {
+
+ class localization_backend;
+ class localization_backend_manager;
+
+ static const uint32_t nochar_facet = 0; ///< Unspecified character category for character independent facets
+ static const uint32_t char_facet = 1 << 0; ///< 8-bit character facets
+ static const uint32_t wchar_t_facet = 1 << 1; ///< wide character facets
+ static const uint32_t char16_t_facet = 1 << 2; ///< C++0x char16_t facets
+ static const uint32_t char32_t_facet = 1 << 3; ///< C++0x char32_t facets
+
+ static const uint32_t character_first_facet = char_facet; ///< First facet specific for character type
+ static const uint32_t character_last_facet = char32_t_facet; ///< Last facet specific for character type
+ static const uint32_t all_characters = 0xFFFF; ///< Special mask -- generate all
+
+ typedef uint32_t character_facet_type; ///<type that specifies the character type that locales can be generated for
+
+ static const uint32_t convert_facet = 1 << 0; ///< Generate conversion facets
+ static const uint32_t collation_facet = 1 << 1; ///< Generate collation facets
+ static const uint32_t formatting_facet= 1 << 2; ///< Generate numbers, currency, date-time formatting facets
+ static const uint32_t parsing_facet = 1 << 3; ///< Generate numbers, currency, date-time formatting facets
+ static const uint32_t message_facet = 1 << 4; ///< Generate message facets
+ static const uint32_t codepage_facet = 1 << 5; ///< Generate character set conversion facets (derived from std::codecvt)
+ static const uint32_t boundary_facet = 1 << 6; ///< Generate boundary analysis facet
+
+ static const uint32_t per_character_facet_first = convert_facet; ///< First facet specific for character
+ static const uint32_t per_character_facet_last = boundary_facet; ///< Last facet specific for character
+
+ static const uint32_t calendar_facet = 1 << 16; ///< Generate boundary analysis facet
+ static const uint32_t information_facet = 1 << 17; ///< Generate general locale information facet
+
+ static const uint32_t non_character_facet_first = calendar_facet; ///< First character independent facet
+ static const uint32_t non_character_facet_last = information_facet;///< Last character independent facet
+
+
+ static const uint32_t all_categories = 0xFFFFFFFFu; ///< Generate all of them
+
+ typedef uint32_t locale_category_type; ///< a type used for more fine grained generation of facets
+
+ ///
+ /// \brief the major class used for locale generation
+ ///
+ /// This class is used for specification of all parameters required for locale generation and
+ /// caching. This class const member functions are thread safe if locale class implementation is thread safe.
+ ///
+
+ class BOOST_LOCALE_DECL generator {
+ public:
+
+ ///
+ /// Create new generator using global localization_backend_manager
+ ///
+ generator();
+ ///
+ /// Create new generator using specific localization_backend_manager
+ ///
+ generator(localization_backend_manager const &);
+
+ ~generator();
+
+ ///
+ /// Set types of facets that should be generated, default all
+ ///
+ void categories(locale_category_type cats);
+ ///
+ /// Get types of facets that should be generated, default all
+ ///
+ locale_category_type categories() const;
+
+ ///
+ /// Set the characters type for which the facets should be generated, default all supported
+ ///
+ void characters(character_facet_type chars);
+ ///
+ /// Get the characters type for which the facets should be generated, default all supported
+ ///
+ character_facet_type characters() const;
+
+ ///
+ /// Add a new domain of messages that would be generated. It should be set in order to enable
+ /// messages support.
+ ///
+ /// Messages domain has following format: "name" or "name/encoding"
+ /// where name is the base name of the "mo" file where the catalog is stored
+ /// without ".mo" extension. For example for file \c /usr/share/locale/he/LC_MESSAGES/blog.mo
+ /// it would be \c blog.
+ ///
+ /// You can optionally specify the encoding of the keys in the sources by adding "/encoding_name"
+ /// For example blog/cp1255.
+ ///
+ /// If not defined all keys are assumed to be UTF-8 encoded.
+ ///
+ /// \note When you select a domain for the program using dgettext or message API, you
+ /// do not specify the encoding part. So for example if the provided
+ /// domain name was "blog/windows-1255" then for translation
+ /// you should use dgettext("blog","Hello")
+ ///
+ ///
+ void add_messages_domain(std::string const &domain);
+ ///
+ /// Set default message domain. If this member was not called, the first added messages domain is used.
+ /// If the domain \a domain is not added yet it is added.
+ ///
+ void set_default_messages_domain(std::string const &domain);
+
+ ///
+ /// Remove all added domains from the list
+ ///
+ void clear_domains();
+
+ ///
+ /// Add a search path where dictionaries are looked in.
+ ///
+ /// \note
+ ///
+ /// - Under the Windows platform the path is treated as a path in the locale's encoding so
+ /// if you create locale "en_US.windows-1251" then path would be treated as cp1255,
+ /// and if it is en_US.UTF-8 it is treated as UTF-8. File name is always opened with
+ /// a wide file name as wide file names are the native file name on Windows.
+ ///
+ /// - Under POSIX platforms all paths passed as-is regardless of encoding as narrow
+ /// encodings are the native encodings for POSIX platforms.
+ ///
+ ///
+ void add_messages_path(std::string const &path);
+
+ ///
+ /// Remove all added paths
+ ///
+ void clear_paths();
+
+ ///
+ /// Remove all cached locales
+ ///
+ void clear_cache();
+
+ ///
+ /// Turn locale caching ON
+ ///
+ void locale_cache_enabled(bool on);
+
+ ///
+ /// Get locale cache option
+ ///
+ bool locale_cache_enabled() const;
+
+ ///
+ /// Check if by default ANSI encoding is selected or UTF-8 onces. The default is false.
+ ///
+ bool use_ansi_encoding() const;
+
+ ///
+ /// Select ANSI encodings as default system encoding rather then UTF-8 by default
+ /// under Windows.
+ ///
+ /// The default is the most portable and most powerful encoding, UTF-8, but the user
+ /// can select "system" one if dealing with legacy applications
+ ///
+ void use_ansi_encoding(bool enc);
+
+ ///
+ /// Generate a locale with id \a id
+ ///
+ std::locale generate(std::string const &id) const;
+ ///
+ /// Generate a locale with id \a id. Use \a base as a locale to which all facets are added,
+ /// instead of std::locale::classic().
+ ///
+ std::locale generate(std::locale const &base,std::string const &id) const;
+ ///
+ /// Shortcut to generate(id)
+ ///
+ std::locale operator()(std::string const &id) const
+ {
+ return generate(id);
+ }
+
+ ///
+ /// Set backend specific option
+ ///
+ void set_option(std::string const &name,std::string const &value);
+
+ ///
+ /// Clear backend specific options
+ ///
+ void clear_options();
+
+ private:
+
+ void set_all_options(shared_ptr<localization_backend> backend,std::string const &id) const;
+
+ generator(generator const &);
+ void operator=(generator const &);
+
+ struct data;
+ std::auto_ptr<data> d;
+ };
+
+ }
+}
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/boost/locale/gnu_gettext.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/gnu_gettext.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,167 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCLAE_GNU_GETTEXT_HPP
+#define BOOST_LOCLAE_GNU_GETTEXT_HPP
+
+#include <boost/locale/message.hpp>
+#include <boost/function.hpp>
+#include <stdexcept>
+
+namespace boost {
+namespace locale {
+/// \addtogroup message
+/// @{
+
+
+///
+/// \brief This namespace holds classes that provide GNU Gettext message catalogs support.
+///
+namespace gnu_gettext {
+
+ ///
+ /// \brief This structure holds all information required for creating gnu-gettext message catalogs,
+ ///
+ /// The user is expected to set its parameters to load these catalogs correctly. This structure
+ /// also allows providing functions for charset conversion. Note, you need to provide them,
+ /// so this structure is not useful for wide characters without subclassing and it will also
+ /// ignore gettext catalogs that use a charset different from \a encoding.
+ ///
+ struct messages_info {
+ messages_info() :
+ language("C"),
+ locale_category("LC_MESSAGES")
+ {
+ }
+
+ std::string language; ///< The language we load the catalog for, like "ru", "en", "de"
+ std::string country; ///< The country we load the catalog for, like "US", "IL"
+ std::string variant; ///< Language variant, like "euro" so it would look for catalog like de_DE\@euro
+ std::string encoding; ///< Required target charset encoding. Ignored for wide characters.
+ ///< For narrow, should specify the correct encoding required for this catalog
+ std::string locale_category; ///< Locale category, is set by default to LC_MESSAGES, but may be changed
+ ///
+ /// \brief This type represents GNU Gettext domain name for the messages.
+ ///
+ /// It consists of two parameters:
+ ///
+ /// - name - the name of the domain - used for opening the file name
+ /// - encoding - the encoding of the keys in the sources, default - UTF-8
+ ///
+ struct domain {
+
+ std::string name; ///< The name of the domain
+ std::string encoding; ///< The character encoding for the domain
+ domain() {}
+ ///
+ /// Create a domain object from the name that can hold an encoding after symbol "/"
+ /// such that if n is "hello/cp1255" then the name would be "hello" and "encoding" would
+ /// be "cp1255" and if n is "hello" then the name would be the same but encoding would be
+ /// "UTF-8"
+ ///
+ domain(std::string const &n)
+ {
+ size_t pos = n.find("/");
+ if(pos==std::string::npos) {
+ name = n;
+ encoding = "UTF-8";
+ }
+ else {
+ name = n.substr(0,pos);
+ encoding = n.substr(pos+1);
+ }
+
+ }
+
+ ///
+ /// Check whether two objects are equivalent, only names are compared, encoding is ignored
+ ///
+ bool operator==(domain const &other) const
+ {
+ return name==other.name;
+ }
+ ///
+ /// Check whether two objects are distinct, only names are compared, encoding is ignored
+ ///
+ bool operator!=(domain const &other) const
+ {
+ return !(*this==other);
+ }
+
+ };
+
+ typedef std::vector<domain> domains_type; ///< Type that defines a list of domains that are loaded
+ ///< The first one is the default one
+ domains_type domains; ///< Message domains - application name, like my_app. So files named my_app.mo
+ ///< would be loaded
+ std::vector<std::string> paths; ///< Paths to search files in. Under MS Windows it uses encoding
+ ///< parameter to convert them to wide OS specific paths.
+
+ ///
+ /// The callback for custom file system support. This callback should read the file named \a file_name
+ /// encoded in \a encoding character set into std::vector<char> and return it.
+ ///
+ /// - If the file does not exist, it should return an empty vector.
+ /// - If a error occurs during file read it should throw a error.
+ ///
+ /// \note The user should support only the encodings the locales are created for. So if the user
+ /// uses only one encoding or the file system is encoding agnostic, he may ignore the \a encoding parameter.
+ ///
+ typedef function<
+ std::vector<char>(
+ std::string const &file_name,
+ std::string const &encoding
+ )
+ > callback_type;
+
+ ///
+ /// The callback for handling custom file systems, if it is empty, the real OS file-system
+ /// is being used.
+ ///
+ callback_type callback;
+
+ };
+
+ ///
+ /// Create a message_format facet using GNU Gettext catalogs. It uses \a info structure to get
+ /// information about where to read them from and uses it for character set conversion (if needed)
+ ///
+
+ template<typename CharType>
+ message_format<CharType> *create_messages_facet(messages_info const &info);
+
+ /// \cond INTERNAL
+
+ template<>
+ BOOST_LOCALE_DECL message_format<char> *create_messages_facet(messages_info const &info);
+
+ template<>
+ BOOST_LOCALE_DECL message_format<wchar_t> *create_messages_facet(messages_info const &info);
+
+ #ifdef BOOST_HAS_CHAR16_T
+ template<>
+ BOOST_LOCALE_DECL message_format<char16_t> *create_messages_facet(messages_info const &info);
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+ template<>
+ BOOST_LOCALE_DECL message_format<char32_t> *create_messages_facet(messages_info const &info);
+ #endif
+
+ /// \endcond
+
+} // gnu_gettext
+
+/// @}
+
+} // locale
+} // boost
+
+#endif
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/boost/locale/hold_ptr.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/hold_ptr.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,93 @@
+//
+// Copyright (c) 2010 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_HOLD_PTR_H
+#define BOOST_LOCALE_HOLD_PTR_H
+
+namespace boost {
+namespace locale {
+ ///
+ /// \brief a smart pointer similar to std::auto_ptr but it is non-copyable and the
+ /// underlying object has the same constness as the pointer itself (unlike an ordinary pointer).
+ ///
+ template<typename T>
+ class hold_ptr {
+ hold_ptr(hold_ptr const &other); // non copyable
+ hold_ptr const &operator=(hold_ptr const &other); // non assignable
+ public:
+ ///
+ /// Create new empty pointer
+ ///
+ hold_ptr() : ptr_(0) {}
+ ///
+ /// Create a pointer that holds \a v, ownership is transferred to smart pointer
+ ///
+ explicit hold_ptr(T *v) : ptr_(v) {}
+
+ ///
+ /// Destroy smart pointer and the object it owns.
+ ///
+ ~hold_ptr()
+ {
+ delete ptr_;
+ }
+
+ ///
+ /// Get a const pointer to the object
+ ///
+ T const *get() const { return ptr_; }
+ ///
+ /// Get a mutable pointer to the object
+ ///
+ T *get() { return ptr_; }
+
+ ///
+ /// Get a const reference to the object
+ ///
+ T const &operator *() const { return *ptr_; }
+ ///
+ /// Get a mutable reference to the object
+ ///
+ T &operator *() { return *ptr_; }
+ ///
+ /// Get a const pointer to the object
+ ///
+ T const *operator->() const { return ptr_; }
+ ///
+ /// Get a mutable pointer to the object
+ ///
+ T *operator->() { return ptr_; }
+
+ ///
+ /// Transfer an ownership on the pointer to user
+ ///
+ T *release() { T *tmp=ptr_; ptr_=0; return tmp; }
+
+ ///
+ /// Set new value to pointer, previous object is destroyed, ownership on new object is transferred
+ ///
+ void reset(T *p=0)
+ {
+ if(ptr_) delete ptr_;
+ ptr_=p;
+ }
+ /// Swap two pointers
+ void swap(hold_ptr &other)
+ {
+ T *tmp=other.ptr_;
+ other.ptr_=ptr_;
+ ptr_=tmp;
+ }
+ private:
+ T *ptr_;
+ };
+
+} // locale
+} // boost
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/boost/locale/info.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/info.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,125 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_INFO_HPP_INCLUDED
+#define BOOST_LOCALE_INFO_HPP_INCLUDED
+#include <boost/locale/config.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+#include <locale>
+#include <string>
+
+
+namespace boost {
+ namespace locale {
+
+ ///
+ /// \brief a facet that holds general information about locale
+ ///
+ /// This facet should be always created in order to make all Boost.Locale functions work
+ ///
+ class BOOST_LOCALE_DECL info : public std::locale::facet
+ {
+ public:
+ static std::locale::id id; ///< This member uniquely defines this facet, required by STL
+
+ ///
+ /// String information about the locale
+ ///
+ enum string_propery {
+ language_property, ///< ISO 639 language id
+ country_property, ///< ISO 3166 country id
+ variant_property, ///< Variant for locale
+ encoding_property, ///< encoding name
+ name_property ///< locale name
+ };
+
+ ///
+ /// Integer information about locale
+ ///
+ enum integer_property {
+ utf8_property ///< Non zero value if uses UTF-8 encoding
+ };
+
+
+ ///
+ /// Standard facet's constructor
+ ///
+ info(size_t refs = 0) : std::locale::facet(refs)
+ {
+ }
+ ///
+ /// Get language name
+ ///
+ std::string language() const
+ {
+ return get_string_property(language_property);
+ }
+ ///
+ /// Get country name
+ ///
+ std::string country() const
+ {
+ return get_string_property(country_property);
+ }
+ ///
+ /// Get locale variant
+ ///
+ std::string variant() const
+ {
+ return get_string_property(variant_property);
+ }
+ ///
+ /// Get encoding
+ ///
+ std::string encoding() const
+ {
+ return get_string_property(encoding_property);
+ }
+
+ ///
+ /// Get the name of the locale, like en_US.UTF-8
+ ///
+ std::string name() const
+ {
+ return get_string_property(name_property);
+ }
+
+ ///
+ /// True if the underlying encoding is UTF-8 (for char streams and strings)
+ ///
+ bool utf8() const
+ {
+ return get_integer_property(utf8_property) != 0;
+ }
+
+#if defined (__SUNPRO_CC) && defined (_RWSTD_VER)
+ std::locale::id& __get_id (void) const { return id; }
+#endif
+ protected:
+ ///
+ /// Get string property by its id \a v
+ ///
+ virtual std::string get_string_property(string_propery v) const = 0;
+ ///
+ /// Get integer property by its id \a v
+ ///
+ virtual int get_integer_property(integer_property v) const = 0;
+ };
+
+ }
+}
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+#endif
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/boost/locale/localization_backend.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/localization_backend.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,159 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_LOCALIZATION_BACKEND_HPP
+#define BOOST_LOCALE_LOCALIZATION_BACKEND_HPP
+#include <boost/locale/config.hpp>
+#include <boost/locale/generator.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+#include <string>
+#include <locale>
+#include <vector>
+#include <memory>
+
+namespace boost {
+ namespace locale {
+
+ ///
+ /// \brief this class represents a localization backend that can be used for localizing your application.
+ ///
+ /// Backends are usually registered inside the localization backends manager and allow transparent support
+ /// of different backends, so a user can switch the backend by simply linking the application to the correct one.
+ ///
+ /// Backends may support different tuning options, but these are the default options available to the user
+ /// for all of them
+ ///
+ /// -# \c locale - the name of the locale in POSIX format like en_US.UTF-8
+ /// -# \c use_ansi_encoding - select system locale using ANSI codepages rather then UTF-8 under Windows
+ /// by default
+ /// -# \c message_path - path to the location of message catalogs (vector of strings)
+ /// -# \c message_application - the name of applications that use message catalogs (vector of strings)
+ ///
+ /// Each backend can be installed with a different default priotiry so when you work with two different backends, you
+ /// can specify priotiry so this backend will be chosen according to their priority.
+ ///
+
+ class localization_backend {
+ localization_backend(localization_backend const &);
+ void operator=(localization_backend const &);
+ public:
+
+ localization_backend()
+ {
+ }
+
+ virtual ~localization_backend()
+ {
+ }
+
+ ///
+ /// Make a polymorphic copy of the backend
+ ///
+ virtual localization_backend *clone() const = 0;
+
+ ///
+ /// Set option for backend, for example "locale" or "encoding"
+ ///
+ virtual void set_option(std::string const &name,std::string const &value) = 0;
+
+ ///
+ /// Clear all options
+ ///
+ virtual void clear_options() = 0;
+
+ ///
+ /// Create a facet for category \a category and character type \a type
+ ///
+ virtual std::locale install(std::locale const &base,locale_category_type category,character_facet_type type = nochar_facet) = 0;
+
+ }; // localization_backend
+
+
+ ///
+ /// \brief Localization backend manager is a class that holds various backend and allows creation
+ /// of their combination or selection
+ ///
+
+ class BOOST_LOCALE_DECL localization_backend_manager {
+ public:
+ ///
+ /// New empty localization_backend_manager
+ ///
+ localization_backend_manager();
+ ///
+ /// Copy localization_backend_manager
+ ///
+ localization_backend_manager(localization_backend_manager const &);
+ ///
+ /// Assign localization_backend_manager
+ ///
+ localization_backend_manager const &operator=(localization_backend_manager const &);
+
+ ///
+ /// Destructor
+ ///
+ ~localization_backend_manager();
+
+ ///
+ /// Create new localization backend according to current settings.
+ ///
+ std::auto_ptr<localization_backend> get() const;
+
+ ///
+ /// Add new backend to the manager, each backend should be uniquely defined by its name.
+ ///
+ /// This library provides: "icu", "posix", "winapi" and "std" backends.
+ ///
+ void add_backend(std::string const &name,std::auto_ptr<localization_backend> backend);
+
+ ///
+ /// Clear backend
+ ///
+ void remove_all_backends();
+
+ ///
+ /// Get list of all available backends
+ ///
+ std::vector<std::string> get_all_backends() const;
+
+ ///
+ /// Select specific backend by name for a category \a category. It allows combining different
+ /// backends for user preferences.
+ ///
+ void select(std::string const &backend_name,locale_category_type category = all_categories);
+
+ ///
+ /// Set new global backend manager, the old one is returned.
+ ///
+ /// This function is thread safe
+ ///
+ static localization_backend_manager global(localization_backend_manager const &);
+ ///
+ /// Get global backend manager
+ ///
+ /// This function is thread safe
+ ///
+ static localization_backend_manager global();
+ private:
+ class impl;
+ std::auto_ptr<impl> pimpl_;
+ };
+
+ } // locale
+} // boost
+
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/boost/locale/message.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/message.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,807 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_MESSAGE_HPP_INCLUDED
+#define BOOST_LOCALE_MESSAGE_HPP_INCLUDED
+
+#include <boost/locale/config.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+#include <locale>
+#include <string>
+#include <vector>
+#include <set>
+#include <memory>
+#include <boost/locale/formatting.hpp>
+
+
+namespace boost {
+ namespace locale {
+ ///
+ /// \defgroup message Message Formatting (translation)
+ ///
+ ///This module provides message translation functionality, i.e. allow your application to speak native language
+ ///
+ /// @{
+ ///
+
+ /// \cond INTERNAL
+
+ template<typename CharType>
+ struct base_message_format: public std::locale::facet
+ {
+ };
+
+ /// \endcond
+
+ ///
+ /// \brief This facet provides message formatting abilities
+ ///
+ template<typename CharType>
+ class message_format : public base_message_format<CharType>
+ {
+ public:
+
+ ///
+ /// Character type
+ ///
+ typedef CharType char_type;
+ ///
+ /// String type
+ ///
+ typedef std::basic_string<CharType> string_type;
+
+ ///
+ /// Default constructor
+ ///
+ message_format(size_t refs = 0) :
+ base_message_format<CharType>(refs)
+ {
+ }
+
+ ///
+ /// This function returns a pointer to the string for a message defined by a \a context
+ /// and identification string \a id. Both create a single key for message lookup in
+ /// a domain defined by \a domain_id.
+ ///
+ /// If \a context is NULL it is not considered to be a part of the key
+ ///
+ /// If a translated string is found, it is returned, otherwise NULL is returned
+ ///
+ ///
+ virtual char_type const *get(int domain_id,char_type const *context,char_type const *id) const = 0;
+ ///
+ /// This function returns a pointer to the string for a plural message defined by a \a context
+ /// and identification string \a single_id.
+ ///
+ /// If \a context is NULL it is not considered to be a part of the key
+ ///
+ /// Both create a single key for message lookup in
+ /// a domain defined \a domain_id. \a n is used to pick the correct translation string for a specific
+ /// number.
+ ///
+ /// If a translated string is found, it is returned, otherwise NULL is returned
+ ///
+ ///
+ virtual char_type const *get(int domain_id,char_type const *context,char_type const *single_id,int n) const = 0;
+
+ ///
+ /// Convert a string that defines \a domain to the integer id used by \a get functions
+ ///
+ virtual int domain(std::string const &domain) const = 0;
+
+ ///
+ /// Convert the string \a msg to target locale's encoding. If \a msg is already
+ /// in target encoding it would be returned otherwise the converted
+ /// string is stored in temporary \a buffer and buffer.c_str() is returned.
+ ///
+ /// Note: for char_type that is char16_t, char32_t and wchar_t it is no-op, returns
+ /// msg
+ ///
+ virtual char_type const *convert(char_type const *msg,string_type &buffer) const = 0;
+
+#if defined (__SUNPRO_CC) && defined (_RWSTD_VER)
+ std::locale::id& __get_id (void) const { return id; }
+#endif
+ protected:
+ virtual ~message_format()
+ {
+ }
+
+ };
+
+ /// \cond INTERNAL
+
+ namespace details {
+ inline bool is_us_ascii_char(char c)
+ {
+ // works for null terminated strings regardless char "signness"
+ return 0<c && c<0x7F;
+ }
+ inline bool is_us_ascii_string(char const *msg)
+ {
+ while(*msg) {
+ if(!is_us_ascii_char(*msg++))
+ return false;
+ }
+ return true;
+ }
+
+ template<typename CharType>
+ struct string_cast_traits {
+ static CharType const *cast(CharType const *msg,std::basic_string<CharType> &/*unused*/)
+ {
+ return msg;
+ }
+ };
+
+ template<>
+ struct string_cast_traits<char> {
+ static char const *cast(char const *msg,std::string &buffer)
+ {
+ if(is_us_ascii_string(msg))
+ return msg;
+ buffer.reserve(strlen(msg));
+ char c;
+ while((c=*msg++)!=0) {
+ if(is_us_ascii_char(c))
+ buffer+=c;
+ }
+ return buffer.c_str();
+ }
+ };
+ } // details
+
+ /// \endcond
+
+ ///
+ /// \brief This class represents a message that can be converted to a specific locale message
+ ///
+ /// It holds the original ASCII string that is queried in the dictionary when converting to the output string.
+ /// The created string may be UTF-8, UTF-16, UTF-32 or other 8-bit encoded string according to the target
+ /// character type and locale encoding.
+ ///
+ template<typename CharType>
+ class basic_message {
+ public:
+
+ typedef CharType char_type; ///< The character this message object is used with
+ typedef std::basic_string<char_type> string_type; ///< The string type this object can be used with
+ typedef message_format<char_type> facet_type; ///< The type of the facet the messages are fetched with
+
+ ///
+ /// Create default empty message
+ ///
+ basic_message() :
+ n_(0),
+ c_id_(0),
+ c_context_(0),
+ c_plural_(0)
+ {
+ }
+
+ ///
+ /// Create a simple message from 0 terminated string. The string should exist
+ /// until the message is destroyed. Generally useful with static constant strings
+ ///
+ explicit basic_message(char_type const *id) :
+ n_(0),
+ c_id_(id),
+ c_context_(0),
+ c_plural_(0)
+ {
+ }
+
+ ///
+ /// Create a simple plural form message from 0 terminated strings. The strings should exist
+ /// until the message is destroyed. Generally useful with static constant strings.
+ ///
+ /// \a n is the number, \a single and \a plural are singular and plural forms of the message
+ ///
+ explicit basic_message(char_type const *single,char_type const *plural,int n) :
+ n_(n),
+ c_id_(single),
+ c_context_(0),
+ c_plural_(plural)
+ {
+ }
+
+ ///
+ /// Create a simple message from 0 terminated strings, with context
+ /// information. The string should exist
+ /// until the message is destroyed. Generally useful with static constant strings
+ ///
+ explicit basic_message(char_type const *context,char_type const *id) :
+ n_(0),
+ c_id_(id),
+ c_context_(context),
+ c_plural_(0)
+ {
+ }
+
+ ///
+ /// Create a simple plural form message from 0 terminated strings, with context. The strings should exist
+ /// until the message is destroyed. Generally useful with static constant strings.
+ ///
+ /// \a n is the number, \a single and \a plural are singular and plural forms of the message
+ ///
+ explicit basic_message(char_type const *context,char_type const *single,char_type const *plural,int n) :
+ n_(n),
+ c_id_(single),
+ c_context_(context),
+ c_plural_(plural)
+ {
+ }
+
+
+ ///
+ /// Create a simple message from a string.
+ ///
+ explicit basic_message(string_type const &id) :
+ n_(0),
+ c_id_(0),
+ c_context_(0),
+ c_plural_(0),
+ id_(id)
+ {
+ }
+
+ ///
+ /// Create a simple plural form message from strings.
+ ///
+ /// \a n is the number, \a single and \a plural are single and plural forms of the message
+ ///
+ explicit basic_message(string_type const &single,string_type const &plural,int number) :
+ n_(number),
+ c_id_(0),
+ c_context_(0),
+ c_plural_(0),
+ id_(single),
+ plural_(plural)
+ {
+ }
+
+ ///
+ /// Create a simple message from a string with context.
+ ///
+ explicit basic_message(string_type const &context,string_type const &id) :
+ n_(0),
+ c_id_(0),
+ c_context_(0),
+ c_plural_(0),
+ id_(id),
+ context_(context)
+ {
+ }
+
+ ///
+ /// Create a simple plural form message from strings.
+ ///
+ /// \a n is the number, \a single and \a plural are single and plural forms of the message
+ ///
+ explicit basic_message(string_type const &context,string_type const &single,string_type const &plural,int number) :
+ n_(number),
+ c_id_(0),
+ c_context_(0),
+ c_plural_(0),
+ id_(single),
+ context_(context),
+ plural_(plural)
+ {
+ }
+
+ ///
+ /// Copy an object
+ ///
+ basic_message(basic_message const &other) :
+ n_(other.n_),
+ c_id_(other.c_id_),
+ c_context_(other.c_context_),
+ c_plural_(other.c_plural_),
+ id_(other.id_),
+ context_(other.context_),
+ plural_(other.plural_)
+ {
+ }
+
+ ///
+ /// Assign other message object to this one
+ ///
+ basic_message const &operator=(basic_message const &other)
+ {
+ if(this==&other) {
+ return *this;
+ }
+ basic_message tmp(other);
+ swap(tmp);
+ return *this;
+ }
+
+ ///
+ /// Swap two message objects
+ ///
+ void swap(basic_message &other)
+ {
+ std::swap(n_,other.n_);
+ std::swap(c_id_,other.c_id_);
+ std::swap(c_context_,other.c_context_);
+ std::swap(c_plural_,other.c_plural_);
+
+ id_.swap(other.id_);
+ context_.swap(other.context_);
+ plural_.swap(other.plural_);
+ }
+
+ ///
+ /// Message class can be explicitly converted to string class
+ ///
+
+ operator string_type () const
+ {
+ return str();
+ }
+
+ ///
+ /// Translate message to a string in the default global locale, using default domain
+ ///
+ string_type str() const
+ {
+ std::locale loc;
+ return str(loc,0);
+ }
+
+ ///
+ /// Translate message to a string in the locale \a locale, using default domain
+ ///
+ string_type str(std::locale const &locale) const
+ {
+ return str(locale,0);
+ }
+
+ ///
+ /// Translate message to a string using locale \a locale and message domain \a domain_id
+ ///
+ string_type str(std::locale const &locale,std::string const &domain_id) const
+ {
+ int id=0;
+ if(std::has_facet<facet_type>(locale))
+ id=std::use_facet<facet_type>(locale).domain(domain_id);
+ return str(locale,id);
+ }
+
+ ///
+ /// Translate message to a string using the default locale and message domain \a domain_id
+ ///
+ string_type str(std::string const &domain_id) const
+ {
+ int id=0;
+ std::locale loc;
+ if(std::has_facet<facet_type>(loc))
+ id=std::use_facet<facet_type>(loc).domain(domain_id);
+ return str(loc,id);
+ }
+
+
+ ///
+ /// Translate message to a string using locale \a loc and message domain index \a id
+ ///
+ string_type str(std::locale const &loc,int id) const
+ {
+ string_type buffer;
+ char_type const *ptr = write(loc,id,buffer);
+ if(ptr == buffer.c_str())
+ return buffer;
+ else
+ buffer = ptr;
+ return buffer;
+ }
+
+
+ ///
+ /// Translate message and write to stream \a out, using imbued locale and domain set to the
+ /// stream
+ ///
+ void write(std::basic_ostream<char_type> &out) const
+ {
+ std::locale const &loc = out.getloc();
+ int id = ios_info::get(out).domain_id();
+ string_type buffer;
+ out << write(loc,id,buffer);
+ }
+
+ private:
+ char_type const *plural() const
+ {
+ if(c_plural_)
+ return c_plural_;
+ if(plural_.empty())
+ return 0;
+ return plural_.c_str();
+ }
+ char_type const *context() const
+ {
+ if(c_context_)
+ return c_context_;
+ if(context_.empty())
+ return 0;
+ return context_.c_str();
+ }
+
+ char_type const *id() const
+ {
+ return c_id_ ? c_id_ : id_.c_str();
+ }
+
+ char_type const *write(std::locale const &loc,int domain_id,string_type &buffer) const
+ {
+ char_type const *translated = 0;
+ static const char_type empty_string[1] = {0};
+
+ char_type const *id = this->id();
+ char_type const *context = this->context();
+ char_type const *plural = this->plural();
+
+ if(*id == 0)
+ return empty_string;
+
+ facet_type const *facet = 0;
+ if(std::has_facet<facet_type>(loc))
+ facet = &std::use_facet<facet_type>(loc);
+
+ if(facet) {
+ if(!plural) {
+ translated = facet->get(domain_id,context,id);
+ }
+ else {
+ translated = facet->get(domain_id,context,id,n_);
+ }
+ }
+
+ if(!translated) {
+ char_type const *msg = plural ? ( n_ == 1 ? id : plural) : id;
+
+ if(facet) {
+ translated = facet->convert(msg,buffer);
+ }
+ else {
+ translated = details::string_cast_traits<char_type>::cast(msg,buffer);
+ }
+ }
+ return translated;
+ }
+
+ /// members
+
+ int n_;
+ char_type const *c_id_;
+ char_type const *c_context_;
+ char_type const *c_plural_;
+ string_type id_;
+ string_type context_;
+ string_type plural_;
+ };
+
+
+ ///
+ /// Convenience typedef for char
+ ///
+ typedef basic_message<char> message;
+ ///
+ /// Convenience typedef for wchar_t
+ ///
+ typedef basic_message<wchar_t> wmessage;
+ #ifdef BOOST_HAS_CHAR16_T
+ ///
+ /// Convenience typedef for char16_t
+ ///
+ typedef basic_message<char16_t> u16message;
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ ///
+ /// Convenience typedef for char32_t
+ ///
+ typedef basic_message<char32_t> u32message;
+ #endif
+
+ ///
+ /// Translate message \a msg and write it to stream
+ ///
+ template<typename CharType>
+ std::basic_ostream<CharType> &operator<<(std::basic_ostream<CharType> &out,basic_message<CharType> const &msg)
+ {
+ msg.write(out);
+ return out;
+ }
+
+ ///
+ /// \anchor boost_locale_translate_family \name Indirect message translation function family
+ /// @{
+
+ ///
+ /// \brief Translate a message, \a msg is not copied
+ ///
+ template<typename CharType>
+ inline basic_message<CharType> translate(CharType const *msg)
+ {
+ return basic_message<CharType>(msg);
+ }
+ ///
+ /// \brief Translate a message in context, \a msg and \a context are not copied
+ ///
+ template<typename CharType>
+ inline basic_message<CharType> translate( CharType const *context,
+ CharType const *msg)
+ {
+ return basic_message<CharType>(context,msg);
+ }
+ ///
+ /// \brief Translate a plural message form, \a single and \a plural are not copied
+ ///
+ template<typename CharType>
+ inline basic_message<CharType> translate( CharType const *single,
+ CharType const *plural,
+ int n)
+ {
+ return basic_message<CharType>(single,plural,n);
+ }
+ ///
+ /// \brief Translate a plural message from in constext, \a context, \a single and \a plural are not copied
+ ///
+ template<typename CharType>
+ inline basic_message<CharType> translate( CharType const *context,
+ CharType const *single,
+ CharType const *plural,
+ int n)
+ {
+ return basic_message<CharType>(context,single,plural,n);
+ }
+
+ ///
+ /// \brief Translate a message, \a msg is copied
+ ///
+ template<typename CharType>
+ inline basic_message<CharType> translate(std::basic_string<CharType> const &msg)
+ {
+ return basic_message<CharType>(msg);
+ }
+
+ ///
+ /// \brief Translate a message in context,\a context and \a msg is copied
+ ///
+ template<typename CharType>
+ inline basic_message<CharType> translate( std::basic_string<CharType> const &context,
+ std::basic_string<CharType> const &msg)
+ {
+ return basic_message<CharType>(context,msg);
+ }
+ ///
+ /// \brief Translate a plural message form in constext, \a context, \a single and \a plural are copied
+ ///
+ template<typename CharType>
+ inline basic_message<CharType> translate( std::basic_string<CharType> const &context,
+ std::basic_string<CharType> const &single,
+ std::basic_string<CharType> const &plural,
+ int n)
+ {
+ return basic_message<CharType>(context,single,plural,n);
+ }
+
+ ///
+ /// \brief Translate a plural message form, \a single and \a plural are copied
+ ///
+
+ template<typename CharType>
+ inline basic_message<CharType> translate( std::basic_string<CharType> const &single,
+ std::basic_string<CharType> const &plural,
+ int n)
+ {
+ return basic_message<CharType>(single,plural,n);
+ }
+
+ /// @}
+
+ ///
+ /// \anchor boost_locale_gettext_family \name Direct message translation functions family
+ ///
+
+ ///
+ /// Translate message \a id according to locale \a loc
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> gettext(CharType const *id,
+ std::locale const &loc=std::locale())
+ {
+ return basic_message<CharType>(id).str(loc);
+ }
+ ///
+ /// Translate plural form according to locale \a loc
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> ngettext( CharType const *s,
+ CharType const *p,
+ int n,
+ std::locale const &loc=std::locale())
+ {
+ return basic_message<CharType>(s,p,n).str(loc);
+ }
+ ///
+ /// Translate message \a id according to locale \a loc in domain \a domain
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> dgettext( char const *domain,
+ CharType const *id,
+ std::locale const &loc=std::locale())
+ {
+ return basic_message<CharType>(id).str(loc,domain);
+ }
+
+ ///
+ /// Translate plural form according to locale \a loc in domain \a domain
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> dngettext( char const *domain,
+ CharType const *s,
+ CharType const *p,
+ int n,
+ std::locale const &loc=std::locale())
+ {
+ return basic_message<CharType>(s,p,n).str(loc,domain);
+ }
+ ///
+ /// Translate message \a id according to locale \a loc in context \a context
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> pgettext( CharType const *context,
+ CharType const *id,
+ std::locale const &loc=std::locale())
+ {
+ return basic_message<CharType>(context,id).str(loc);
+ }
+ ///
+ /// Translate plural form according to locale \a loc in context \a context
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> npgettext( CharType const *context,
+ CharType const *s,
+ CharType const *p,
+ int n,
+ std::locale const &loc=std::locale())
+ {
+ return basic_message<CharType>(context,s,p,n).str(loc);
+ }
+ ///
+ /// Translate message \a id according to locale \a loc in domain \a domain in context \a context
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> dpgettext( char const *domain,
+ CharType const *context,
+ CharType const *id,
+ std::locale const &loc=std::locale())
+ {
+ return basic_message<CharType>(context,id).str(loc,domain);
+ }
+ ///
+ /// Translate plural form according to locale \a loc in domain \a domain in context \a context
+ ///
+ template<typename CharType>
+ std::basic_string<CharType> dnpgettext(char const *domain,
+ CharType const *context,
+ CharType const *s,
+ CharType const *p,
+ int n,
+ std::locale const &loc=std::locale())
+ {
+ return basic_message<CharType>(context,s,p,n).str(loc,domain);
+ }
+
+ ///
+ /// \cond INTERNAL
+ ///
+
+ template<>
+ struct BOOST_LOCALE_DECL base_message_format<char> : public std::locale::facet
+ {
+ base_message_format(size_t refs = 0) : std::locale::facet(refs)
+ {
+ }
+ static std::locale::id id;
+ };
+
+ template<>
+ struct BOOST_LOCALE_DECL base_message_format<wchar_t> : public std::locale::facet
+ {
+ base_message_format(size_t refs = 0) : std::locale::facet(refs)
+ {
+ }
+ static std::locale::id id;
+ };
+
+ #ifdef BOOST_HAS_CHAR16_T
+
+ template<>
+ struct BOOST_LOCALE_DECL base_message_format<char16_t> : public std::locale::facet
+ {
+ base_message_format(size_t refs = 0) : std::locale::facet(refs)
+ {
+ }
+ static std::locale::id id;
+ };
+
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+
+ template<>
+ struct BOOST_LOCALE_DECL base_message_format<char32_t> : public std::locale::facet
+ {
+ base_message_format(size_t refs = 0) : std::locale::facet(refs)
+ {
+ }
+ static std::locale::id id;
+ };
+
+ #endif
+
+ /// \endcond
+
+ ///
+ /// @}
+ ///
+
+ namespace as {
+ /// \cond INTERNAL
+ namespace details {
+ struct set_domain {
+ std::string domain_id;
+ };
+ template<typename CharType>
+ std::basic_ostream<CharType> &operator<<(std::basic_ostream<CharType> &out, set_domain const &dom)
+ {
+ int id = std::use_facet<message_format<CharType> >(out.getloc()).domain(dom.domain_id);
+ ios_info::get(out).domain_id(id);
+ return out;
+ }
+ } // details
+ /// \endcond
+
+ ///
+ /// \addtogroup manipulators
+ ///
+ /// @{
+
+ ///
+ /// Manipulator for switching message domain in ostream,
+ ///
+ /// \note The returned object throws std::bad_cast if the I/O stream does not have \ref message_format facet installed
+ ///
+ inline
+ #ifdef BOOST_LOCALE_DOXYGEN
+ unspecified_type
+ #else
+ details::set_domain
+ #endif
+ domain(std::string const &id)
+ {
+ details::set_domain tmp = { id };
+ return tmp;
+ }
+ /// @}
+ } // as
+ } // locale
+} // boost
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+
+#endif
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/boost/locale/time_zone.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/time_zone.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,54 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_TIME_ZONE_HPP_INCLUDED
+#define BOOST_LOCALE_TIME_ZONE_HPP_INCLUDED
+
+#include <boost/locale/config.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4275 4251 4231 4660)
+#endif
+
+#include <string>
+
+
+namespace boost {
+ namespace locale {
+ ///
+ /// \addtogroup date_time
+ ///
+ /// @{
+
+ ///
+ /// \brief namespace that holds functions for operating with global
+ /// time zone
+ ///
+ namespace time_zone {
+ ///
+ /// Get global time zone identifier. If empty, system time zone is used
+ ///
+ BOOST_LOCALE_DECL std::string global();
+ ///
+ /// Set global time zone identifier returning previous one. If empty, system time zone is used
+ ///
+ BOOST_LOCALE_DECL std::string global(std::string const &new_tz);
+ }
+
+ /// @}
+
+ } // locale
+} // boost
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+
+#endif
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/boost/locale/util.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/locale/util.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,208 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_UTIL_HPP
+#define BOOST_LOCALE_UTIL_HPP
+#include <locale>
+#include <typeinfo>
+#include <boost/cstdint.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/assert.hpp>
+
+#include <vector>
+namespace boost {
+namespace locale {
+///
+/// \brief This namespace provides various utility function useful for Boost.Locale backends
+/// implementations
+///
+namespace util {
+
+ ///
+ /// \brief Return default system locale name in POSIX format.
+ ///
+ /// This function tries to detect the locale using, LC_CTYPE, LC_ALL and LANG environment
+ /// variables in this order and if all of them unset, in POSIX platforms it returns "C"
+ ///
+ /// On Windows additionally to check the above environment variables, this function
+ /// tries to creates locale name from ISO-339 and ISO-3199 country codes defined
+ /// for user default locale.
+ /// If \a use_utf8_on_windows is true it sets the encoding to UTF-8, otherwise, if system
+ /// locale supports ANSI code-page it defines the ANSI encoding like windows-1252, otherwise it fall-backs
+ /// to UTF-8 encoding if ANSI code-page is not available.
+ ///
+ BOOST_LOCALE_DECL
+ std::string get_system_locale(bool use_utf8_on_windows = false);
+
+ ///
+ /// \brief Installs information facet to locale in based on locale name \a name
+ ///
+ /// This function installs boost::locale::info facet into the locale \a in and returns
+ /// newly created locale.
+ ///
+ /// Note: all information is based only on parsing of string \a name;
+ ///
+ /// The name has following format: language[_COUNTRY][.encoding][\@variant]
+ /// Where language is ISO-639 language code like "en" or "ru", COUNTRY is ISO-3166
+ /// country identifier like "US" or "RU". the Encoding is a charracter set name
+ /// like UTF-8 or ISO-8859-1. Variant is backend specific variant like \c euro or
+ /// calendar=hebrew.
+ ///
+ /// If some parameters are missing they are specified as blanks, default encoding
+ /// is assumed to be US-ASCII and missing language is assumed to be "C"
+ ///
+ BOOST_LOCALE_DECL
+ std::locale create_info(std::locale const &in,std::string const &name);
+
+
+ ///
+ /// \brief This class represent a simple stateless converter from UCS-4 and to UCS-4 for
+ /// each single code point
+ ///
+ /// This class is used for creation of std::codecvt facet for converting utf-16/utf-32 encoding
+ /// to encoding supported by this converter
+ ///
+ /// Please note, this converter should be fully stateless. Fully stateless means it should
+ /// never assume that it is called in any specific order on the text. Even if the
+ /// encoding itself seems to be stateless like windows-1255 or shift-jis, some
+ /// encoders (most notably iconv) can actually compose several code-point into one or
+ /// decompose them in case composite characters are found. So be very careful when implementing
+ /// these converters for certain character set.
+ ///
+ class base_converter {
+ public:
+
+ ///
+ /// This value should be returned when an illegal input sequence or code-point is observed:
+ /// For example if a UCS-32 code-point is in the range reserved for UTF-16 surrogates
+ /// or an invalid UTF-8 sequence is found
+ ///
+ static const uint32_t illegal=0xFFFFFFFF;
+
+ ///
+ /// This value is returned in following cases: The of incomplete input sequence was found or
+ /// insufficient output buffer was provided so complete output could not be written.
+ ///
+ static const uint32_t incomplete=0xFFFFFFFE;
+
+ virtual ~base_converter()
+ {
+ }
+ ///
+ /// Return the maximal length that one Unicode code-point can be converted to, for example
+ /// for UTF-8 it is 4, for Shift-JIS it is 2 and ISO-8859-1 is 1
+ ///
+ virtual int max_len() const
+ {
+ return 1;
+ }
+ ///
+ /// Returns true if calling the functions from_unicode, to_unicode, and max_len is thread safe.
+ ///
+ /// Rule of thumb: if this class' implementation uses simple tables that are unchanged
+ /// or is purely algorithmic like UTF-8 - so it does not share any mutable bit for
+ /// independent to_unicode, from_unicode calls, you may set it to true, otherwise,
+ /// for example if you use iconv_t descriptor or UConverter as conversion object return false,
+ /// and this object will be cloned for each use.
+ ///
+ virtual bool is_thread_safe() const
+ {
+ return false;
+ }
+ ///
+ /// Create a polymorphic copy of this object, usually called only if is_thread_safe() return false
+ ///
+ virtual base_converter *clone() const
+ {
+ BOOST_ASSERT(typeid(*this)==typeid(base_converter));
+ return new base_converter();
+ }
+
+ ///
+ /// Convert a single character starting at begin and ending at most at end to Unicode code-point.
+ ///
+ /// if valid input sequence found in [\a begin,\a code_point_end) such as \a begin < \a code_point_end && \a code_point_end <= \a end
+ /// it is converted to its Unicode code point equivalent, \a begin is set to \a code_point_end
+ ///
+ /// if incomplete input sequence found in [\a begin,\a end), i.e. there my be such \a code_point_end that \a code_point_end > \a end
+ /// and [\a begin, \a code_point_end) would be valid input sequence, then \a incomplete is returned begin stays unchanged, for example
+ /// for UTF-8 conversion a *begin = 0xc2, \a begin +1 = \a end is such situation.
+ ///
+ /// if invalid input sequence found, i.e. there there is a sequence [\a begin, \a code_point_end) such as \a code_point_end <= \a end
+ /// that is illegal for this encoding, \a illegal is returned and begin stays unchanged. For example if *begin = 0xFF and begin < end
+ /// for UTF-8, then \a illegal is returned.
+ ///
+ ///
+ virtual uint32_t to_unicode(char const *&begin,char const *end)
+ {
+ if(begin == end)
+ return incomplete;
+ unsigned char cp = *begin;
+ if(cp <= 0x7F) {
+ begin++;
+ return cp;
+ }
+ return illegal;
+ }
+ ///
+ /// Convert a single code-point \a u into encoding and store it in [begin,end) range.
+ ///
+ /// If u is invalid Unicode code-point, or it can not be mapped correctly to represented character set,
+ /// \a illegal should be returned
+ ///
+ /// If u can be converted to a sequence of bytes c1, ... , cN (1<= N <= max_len() ) then
+ ///
+ /// -# If end - begin >= N, c1, ... cN are written starting at begin and N is returned
+ /// -# If end - begin < N, incomplete is returned, it is unspecified what would be
+ /// stored in bytes in range [begin,end)
+
+ virtual uint32_t from_unicode(uint32_t u,char *begin,char const *end)
+ {
+ if(begin==end)
+ return incomplete;
+ if(u >= 0x80)
+ return illegal;
+ *begin = static_cast<char>(u);
+ return 1;
+ }
+ };
+
+ ///
+ /// This function creates a \a base_converter that can be used for conversion between UTF-8 and
+ /// unicode code points
+ ///
+ BOOST_LOCALE_DECL std::auto_ptr<base_converter> create_utf8_converter();
+ ///
+ /// This function creates a \a base_converter that can be used for conversion between single byte
+ /// character encodings like ISO-8859-1, koi8-r, windows-1255 and Unicode code points,
+ ///
+ /// If \a encoding is not supported, empty pointer is returned. You should check if
+ /// std::auto_ptr<base_converter>::get() != 0
+ ///
+ BOOST_LOCALE_DECL std::auto_ptr<base_converter> create_simple_converter(std::string const &encoding);
+
+
+ ///
+ /// Install codecvt facet into locale \a in and return new locale that is based on \a in and uses new
+ /// facet.
+ ///
+ /// codecvt facet would convert between narrow and wide/char16_t/char32_t encodings using \a cvt converter.
+ /// If \a cvt is null pointer, always failure conversion would be used that fails on every first input or output.
+ ///
+ /// Note: the codecvt facet handles both UTF-16 and UTF-32 wide encodings, it knows to break and join
+ /// Unicode code-points above 0xFFFF to and from surrogate pairs correctly. \a cvt should be unaware
+ /// of wide encoding type
+ ///
+ BOOST_LOCALE_DECL
+ std::locale create_codecvt(std::locale const &in,std::auto_ptr<base_converter> cvt,character_facet_type type);
+
+} // util
+} // locale
+} // boost
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/build/Jamfile.v2
==============================================================================
--- (empty file)
+++ trunk/libs/locale/build/Jamfile.v2 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,287 @@
+# copyright John Maddock 2003, Artyom Beilis 2010
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt.
+
+
+
+project /boost/locale
+ : source-location ../src
+ ;
+
+import configure ;
+import os ;
+import toolset ;
+import project ;
+import feature ;
+
+# Features
+
+feature.feature boost.locale.iconv : on off : optional propagated ;
+feature.feature boost.locale.icu : on off : optional propagated ;
+feature.feature boost.locale.posix : on off : optional propagated ;
+feature.feature boost.locale.std : on off : optional propagated ;
+feature.feature boost.locale.winapi : on off : optional propagated ;
+
+# Configuration of libraries
+
+## iconv
+
+obj has_iconv_libc_obj : ../build/has_iconv.cpp ;
+exe has_iconv : has_iconv_libc_obj ;
+explicit has_iconv ;
+
+ICONV_PATH = [ modules.peek : ICONV_PATH ] ;
+lib iconv
+ :
+ : <search>$(ICONV_PATH)/lib <link>shared <runtime-link>shared
+ :
+ : <include>$(ICONV_PATH)/include
+ ;
+explicit iconv ;
+
+obj has_iconv_libc_ext : ../build/has_iconv.cpp iconv ;
+exe has_external_iconv : has_iconv_libc_ext iconv ;
+explicit has_external_iconv ;
+
+
+ICU_PATH = [ modules.peek : ICU_PATH ] ;
+ICU_LINK = [ modules.peek : ICU_LINK ] ;
+if $(ICU_LINK)
+{
+ ICU_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin <runtime-link>shared ;
+}
+else
+{
+ searched-lib icuuc : : <search>$(ICU_PATH)/lib <link>shared <runtime-link>shared ;
+ searched-lib icuuc : : <toolset>msvc <variant>debug <name>icuucd <search>$(ICU_PATH)/lib <link>shared <runtime-link>shared ;
+ searched-lib icuuc : : <name>this_is_an_invalid_library_name ;
+ searched-lib icudt : : <search>$(ICU_PATH)/lib <name>icudata <link>shared <runtime-link>shared ;
+ searched-lib icudt : : <search>$(ICU_PATH)/lib <name>icudt <toolset>msvc <link>shared <runtime-link>shared ;
+ searched-lib icudt : : <name>this_is_an_invalid_library_name ;
+ searched-lib icuin : : <search>$(ICU_PATH)/lib <name>icui18n <link>shared <runtime-link>shared ;
+ searched-lib icuin : : <toolset>msvc <variant>debug <name>icuind <search>$(ICU_PATH)/lib <link>shared <runtime-link>shared ;
+ searched-lib icuin : : <toolset>msvc <variant>release <name>icuin <search>$(ICU_PATH)/lib <link>shared <runtime-link>shared ;
+ searched-lib icuin : : <name>this_is_an_invalid_library_name ;
+ explicit icuuc icudt icuin ;
+
+ ICU_OPTS = <include>$(ICU_PATH)/include
+ <library>icuuc/<link>shared/<runtime-link>shared
+ <library>icudt/<link>shared/<runtime-link>shared
+ <library>icuin/<link>shared/<runtime-link>shared
+ <dll-path>$(ICU_PATH)/bin
+ <runtime-link>shared ;
+}
+exe has_icu : ../build/has_icu_test.cpp : $(ICU_OPTS) ;
+explicit has_icu ;
+
+
+# This function is called whenever the 'boost_locale' metatarget
+# below is generated and figures what external components we have,
+# what user wants, and what sources have to be compiled in the end.
+rule configure-full ( properties * : flags-only )
+{
+
+ local result ;
+ local flags-result ;
+
+ local found-iconv ;
+
+ if <boost.locale.iconv>on in $(properties)
+ || ! <boost.locale.iconv> in $(properties:G)
+ && ! <target-os>solaris in $(properties)
+ {
+ # See if iconv is bundled with standard library.
+ if [ configure.builds has_iconv : $(properties) : "iconv (libc)" ]
+ {
+ found-iconv = true ;
+ }
+ else
+ {
+ if [ configure.builds has_external_iconv : $(properties) : "iconv (separate)" ]
+ {
+ found-iconv = true ;
+ result += <library>iconv ;
+ }
+ }
+ }
+ if $(found-iconv)
+ {
+ flags-result += <define>BOOST_LOCALE_WITH_ICONV=1 ;
+ }
+
+ local found-icu ;
+ if ! <boost.locale.icu>off in $(properties)
+ {
+ if [ configure.builds has_icu : $(properties) : "icu" ]
+ {
+ found-icu = true ;
+ flags-result += <define>BOOST_LOCALE_WITH_ICU=1 $(ICU_OPTS) ;
+
+ for s in boundary codecvt collator conversion date_time formatter
+ icu_backend numeric time_zone
+ {
+ result += <source>icu/$(s).cpp ;
+ }
+ result += <library>../../thread/build//boost_thread ;
+ }
+ }
+
+ if ! $(found-iconv) && ! $(found-icu) && ! <target-os>windows in $(properties) && ! <target-os>cygwin in $(properties)
+ {
+ ECHO "error: Boost.Locale needs either iconv or ICU library to be built." ;
+ EXIT ;
+ }
+
+ if ! <boost.locale.std> in $(properties:G)
+ {
+ if <toolset>sun in $(properties)
+ {
+ properties += <boost.locale.std>off ;
+ }
+ else
+ {
+ properties += <boost.locale.std>on ;
+ }
+ }
+
+ if <boost.locale.std>off in $(properties)
+ {
+ flags-result += <define>BOOST_LOCALE_NO_STD_BACKEND=1 ;
+ }
+ else
+ {
+ STD_SOURCES =
+ codecvt
+ collate
+ converter
+ numeric
+ std_backend
+ ;
+ result += <source>std/$(STD_SOURCES).cpp ;
+ }
+
+ if ! <boost.locale.winapi> in $(properties:G)
+ {
+ if <target-os>windows in $(properties)
+ || <target-os>cygwin in $(properties)
+ {
+ properties += <boost.locale.winapi>on ;
+ }
+ else
+ {
+ properties += <boost.locale.winapi>off ;
+ }
+ }
+
+ if <boost.locale.winapi>off in $(properties)
+ {
+ flags-result += <define>BOOST_LOCALE_NO_WINAPI_BACKEND=1 ;
+ }
+ else
+ {
+ WINAPI_SOURCES =
+ collate
+ converter
+ numeric
+ win_backend
+ ;
+ result += <source>win32/$(WINAPI_SOURCES).cpp ;
+ }
+
+ if ( ! <boost.locale.winapi>off in $(properties) || ! <boost.locale.std>off in $(properties) )
+ && ( <target-os>windows in $(properties) || <target-os>cygwin in $(properties) )
+ {
+ result += <source>win32/lcid.cpp ;
+ }
+
+ if ! <boost.locale.posix> in $(properties:G)
+ {
+ if <target-os>linux in $(properties) || <target-os>darwin in $(properties)
+ {
+ properties += <boost.locale.posix>on ;
+ }
+ else
+ {
+ properties += <boost.locale.posix>off ;
+ }
+ }
+
+ if <boost.locale.posix>off in $(properties)
+ {
+ flags-result += <define>BOOST_LOCALE_NO_POSIX_BACKEND=1 ;
+ }
+ else
+ {
+ POSIX_SOURCES =
+ collate
+ converter
+ numeric
+ codecvt
+ posix_backend
+ ;
+ result += <source>posix/$(POSIX_SOURCES).cpp ;
+ }
+
+ if <boost.locale.posix>on in $(properties) || <boost.locale.std>on in $(properties) || <boost.locale.winapi>on in $(properties)
+ {
+ result += <source>util/gregorian.cpp ;
+ }
+ if "$(flags-only)" = "flags"
+ {
+ return $(flags-result) ;
+ }
+ else {
+ result += $(flags-result) ;
+ return $(result) ;
+ }
+}
+
+rule configure ( properties * )
+{
+ local result = [ configure-full $(properties) : "all" ] ;
+ return $(result) ;
+
+}
+
+rule configure-flags ( properties * )
+{
+ local result ;
+ result = [ configure-full $(properties) : "flags" ] ;
+ return $(result) ;
+
+}
+
+
+alias build_options : : : : <conditional>@configure ;
+alias build_flags : : : : <conditional>@configure-flags ;
+
+lib boost_locale
+ :
+ encoding/codepage.cpp
+ shared/date_time.cpp
+ shared/format.cpp
+ shared/formatting.cpp
+ shared/generator.cpp
+ shared/ids.cpp
+ shared/localization_backend.cpp
+ shared/message.cpp
+ shared/mo_lambda.cpp
+ util/codecvt_converter.cpp
+ util/default_locale.cpp
+ util/info.cpp
+ util/locale_data.cpp
+ :
+ # Don't link explicitly, not required
+ <define>BOOST_THREAD_NO_LIB=1
+ <link>shared:<define>BOOST_LOCALE_DYN_LINK=1
+ <threading>multi
+ # Meanwhile remove this
+ <conditional>@configure
+ ;
+
+boost-install boost_locale ;
+
+
+# vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/build/has_iconv.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/build/has_iconv.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,7 @@
+#include <iconv.h>
+
+int main()
+{
+ iconv_t d = iconv_open(0,0);
+ (void)(d);
+}

Added: trunk/libs/locale/build/has_icu_test.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/build/has_icu_test.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,29 @@
+/*
+ *
+ * Copyright (c) 2010
+ * John Maddock
+ *
+ * Use, modification and distribution are subject to the
+ * Boost Software License, Version 1.0. (See accompanying file
+ * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ *
+ */
+
+#include <unicode/uversion.h>
+#include <unicode/locid.h>
+#include <unicode/utypes.h>
+#include <unicode/uchar.h>
+#include <unicode/coll.h>
+
+#if defined(_MSC_VER) && !defined(_DLL)
+#error "Mixing ICU with a static runtime doesn't work"
+#endif
+
+int main()
+{
+ icu::Locale loc;
+ UErrorCode err = U_ZERO_ERROR;
+ UChar32 c = ::u_charFromName(U_UNICODE_CHAR_NAME, "GREEK SMALL LETTER ALPHA", &err);
+ return err;
+}
+

Added: trunk/libs/locale/doc/Doxyfile
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/Doxyfile 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,1635 @@
+# Doxyfile 1.7.1
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME = Boost.Locale
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = .
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+
+OUTPUT_LANGUAGE = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH = ../../..
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH = ../../..
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 8
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this
+# tag. The format is ext=language, where ext is a file extension, and language
+# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
+# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
+# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
+# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
+# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
+
+EXTENSION_MAPPING =
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen to replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING = YES
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT = NO
+
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penality.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will rougly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespace are hidden.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
+# will list include files with double quotes in the documentation
+# rather than with sharp brackets.
+
+FORCE_LOCAL_INCLUDES = NO
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
+# will sort the (brief and detailed) documentation of class members so that
+# constructors and destructors are listed first. If set to NO (the default)
+# the constructors will appear in the respective orders defined by
+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES = NO
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page.
+# This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. The create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option.
+# You can optionally specify a file name after the option, if omitted
+# DoxygenLayout.xml will be used as the name of the layout file.
+
+LAYOUT_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT = ../../../boost/locale/ \
+ ../../../boost/locale/boundary \
+ .
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
+# also the default input encoding. Doxygen uses libiconv (or the iconv built
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
+# the list of possible encodings.
+
+INPUT_ENCODING = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
+
+FILE_PATTERNS = *.hpp *.txt
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH = ../examples
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.
+# If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis.
+# Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match.
+# The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.
+# Otherwise they will link to the documentation.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER = header.html
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER = footer.html
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
+# Doxygen will adjust the colors in the stylesheet and background images
+# according to this color. Hue is specified as an angle on a colorwheel,
+# see http://en.wikipedia.org/wiki/Hue for more information.
+# For instance the value 0 represents red, 60 is yellow, 120 is green,
+# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
+# The allowed range is 0 to 359.
+
+HTML_COLORSTYLE_HUE = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
+# the colors in the HTML output. For a value of 0 the output will use
+# grayscales only. A value of 255 will produce the most vivid colors.
+
+HTML_COLORSTYLE_SAT = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
+# the luminance component of the colors in the HTML output. Values below
+# 100 gradually make the output lighter, whereas values above 100 make
+# the output darker. The value divided by 100 is the actual gamma applied,
+# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
+# and 100 does not change the gamma.
+
+HTML_COLORSTYLE_GAMMA = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting
+# this to NO can help when comparing the output of multiple runs.
+
+HTML_TIMESTAMP = NO
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS = NO
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files
+# will be generated that can be used as input for Apple's Xcode 3
+# integrated development environment, introduced with OSX 10.5 (Leopard).
+# To create a documentation set, doxygen will generate a Makefile in the
+# HTML output directory. Running make will produce the docset in that
+# directory and running "make install" will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+
+GENERATE_DOCSET = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
+# feed. A documentation feed provides an umbrella under which multiple
+# documentation sets from a single provider (such as a company or product suite)
+# can be grouped.
+
+DOCSET_FEEDNAME = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
+# should uniquely identify the documentation set bundle. This should be a
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID = org.doxygen.Project
+
+# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+
+# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
+
+DOCSET_PUBLISHER_NAME = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# content.
+
+CHM_INDEX_ENCODING =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
+# that can be used as input for Qt's qhelpgenerator to generate a
+# Qt Compressed Help (.qch) of the generated HTML documentation.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#namespace
+
+QHP_NAMESPACE = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
+# add. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#custom-filters
+
+QHP_CUST_FILTER_NAME =
+
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
+# Qt Help Project / Custom Filters</a>.
+
+QHP_CUST_FILTER_ATTRS =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's
+# filter section matches.
+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
+# Qt Help Project / Filter Attributes</a>.
+
+QHP_SECT_FILTER_ATTRS =
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file.
+
+QHG_LOCATION =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
+# will be generated, which together with the HTML files, form an Eclipse help
+# plugin. To install this plugin and make it available under the help contents
+# menu in Eclipse, the contents of the directory containing the HTML and XML
+# files needs to be copied into the plugins directory of eclipse. The name of
+# the directory within the plugins directory should be the same as
+# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
+# the help appears.
+
+GENERATE_ECLIPSEHELP = NO
+
+# A unique identifier for the eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have
+# this name.
+
+ECLIPSE_DOC_ID = org.doxygen.Project
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE = 4
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information.
+# If the tag value is set to YES, a side panel will be generated
+# containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+# Windows users are probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW = YES
+
+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
+# and Class Hierarchy pages using a tree view instead of an ordered list.
+
+USE_INLINE_TREES = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH = 250
+
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
+# links to external symbols imported via tag files in a separate window.
+
+EXT_LINKS_IN_WINDOW = NO
+
+# Use this tag to change the font size of Latex formulas included
+# as images in the HTML documentation. The default is 10. Note that
+# when you change the font size after a successful doxygen run you need
+# to manually remove any form_*.png images from the HTML output directory
+# to force them to be regenerated.
+
+FORMULA_FONTSIZE = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are
+# not supported properly for IE 6.0, but are supported on all modern browsers.
+# Note that when changing this option you need to delete any form_*.png files
+# in the HTML output before the changes have effect.
+
+FORMULA_TRANSPARENT = YES
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box
+# for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using
+# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
+# (GENERATE_DOCSET) there is already a search function so this one should
+# typically be disabled. For large projects the javascript based search engine
+# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
+
+SEARCHENGINE = NO
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a PHP enabled web server instead of at the web client
+# using Javascript. Doxygen will generate the search PHP script and index
+# file to put on the web server. The advantage of the server
+# based approach is that it scales better to large projects and allows
+# full text search. The disadvances is that it is more difficult to setup
+# and does not have live searching capabilities.
+
+SERVER_BASED_SEARCH = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+# Note that when enabling USE_PDFLATEX this option is only used for
+# generating bitmaps for formulas in the HTML output, but not in the
+# Makefile that is written to the output directory.
+
+LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS = YES
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES = NO
+
+# If LATEX_SOURCE_CODE is set to YES then doxygen will include
+# source code with syntax highlighting in the LaTeX output.
+# Note that which sources are shown also depends on other settings
+# such as SOURCE_BROWSER.
+
+LATEX_SOURCE_CODE = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader.
+# This is useful
+# if you want to understand what is going on.
+# On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION = YES
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF = YES
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED = BOOST_HAS_CHAR32_T \
+ BOOST_HAS_CHAR16_T \
+ BOOST_LOCALE_DECL= \
+ BOOST_LOCALE_DOXYGEN
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+#
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+#
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH =
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
+# allowed to run in parallel. When set to 0 (the default) doxygen will
+# base this on the number of processors available in the system. You can set it
+# explicitly to a value larger than 0 to get control over the balance
+# between CPU load and processing speed.
+
+DOT_NUM_THREADS = 0
+
+# By default doxygen will write a font called FreeSans.ttf to the output
+# directory and reference it in all dot files that doxygen generates. This
+# font does not include all possible unicode characters however, so when you need
+# these (or just want a differently looking font) you can specify the font name
+# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
+# which can be done by putting it in a standard location or by setting the
+# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
+# containing the font.
+
+DOT_FONTNAME = FreeSans
+
+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
+# The default size is 10pt.
+
+DOT_FONTSIZE = 10
+
+# By default doxygen will tell dot to use the output directory to look for the
+# FreeSans.ttf font (which doxygen will put there itself). If you specify a
+# different font using DOT_FONTNAME you can set the path where dot
+# can find it using this tag.
+
+DOT_FONTPATH =
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
+# doxygen will generate a call dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable call graphs
+# for selected functions only using the \callgraph command.
+
+CALL_GRAPH = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
+# doxygen will generate a caller dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable caller
+# graphs for selected functions only using the \callergraph command.
+
+CALLER_GRAPH = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the
+# number of direct children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
+
+DOT_TRANSPARENT = YES
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS = NO
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP = YES

Added: trunk/libs/locale/doc/appendix.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/appendix.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,18 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page appendix Appendix
+
+\section appendix_toc Table of Contents
+
+- \subpage rationale
+- \subpage faq
+- \subpage default_encoding_under_windows
+- \subpage running_examples_under_windows
+- \subpage gettext_for_windows
+- \subpage glossary
+- \subpage tested_compilers_and_paltforms
+- \subpage status_of_cpp0x_characters_support
+- \subpage special_thanks
+
+*/
+

Added: trunk/libs/locale/doc/boundary_analysys.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/boundary_analysys.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,495 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page boundary_analysys Boundary analysis
+
+- \ref boundary_analysys_basics
+- \ref boundary_analysys_segments
+ - \ref boundary_analysys_segments_basics
+ - \ref boundary_analysys_segments_rules
+ - \ref boundary_analysys_segments_search
+- \ref boundary_analysys_break
+ - \ref boundary_analysys_break_basics
+ - \ref boundary_analysys_break_rules
+ - \ref boundary_analysys_break_search
+
+
+\section boundary_analysys_basics Basics
+
+Boost.Locale provides a boundary analysis tool, allowing you to split text into characters,
+words, or sentences, and find appropriate places for line breaks.
+
+\note This task is not a trivial task.
+\par
+A Unicode code point and a character are not equivalent, for example:
+Hebrew word Shalom - "שָלוֹם" that consists of 4 characters and 6 code points (4 base letters and 2 diacritical marks)
+\par
+Words may not be separated by space characters in some languages like in Japanese or Chinese.
+
+Boost.Locale provides 2 major classes for boundary analysis:
+
+- \ref boost::locale::boundary::segment_index - an object that holds an index of segments in the text (like words, characters,
+ sentences). It provides an access to \ref boost::locale::boundary::segment "segment" objects via iterators.
+- \ref boost::locale::boundary::boundary_point_index - an object that holds an index of boundary points in the text.
+ It allows to iterate over the \ref boost::locale::boundary::boundary_point "boundary_point" objects.
+
+Each of the classes above use an iterator type as template parameter.
+Both of these classes accept in their constructor:
+
+- A flag that defines boundary analysis \ref boost::locale::boundary::boundary_type "boundary_type".
+- The pair of iterators that define the text range that should be analysed
+- A locale parameter (if not given the global one is used)
+
+For example:
+\code
+namespace ba=boost::locale::boundary;
+std::string text= ... ;
+std::locale loc = ... ;
+ba::segment_index<std::string::const_iterator> map(ba::word,text.begin(),text.end(),loc);
+\endcode
+
+Each of them provide a members \c begin(), \c end() and \c find() that allow to iterate
+over the selected segments or boundaries in the text or find a location of a segment or
+boundary for given iterator.
+
+
+Convenience a typedefs like \ref boost::locale::boundary::ssegment_index "ssegment_index"
+or \ref boost::locale::boundary::wcboundary_point_index "wcboundary_point_index" provided as well,
+where "w", "u16" and "u32" prefixes define a character type \c wchar_t,
+\c char16_t and \c char32_t and "c" and "s" prefixes define whether <tt>std::basic_string<CharType>::const_iterator</tt>
+or <tt>CharType const *</tt> are used.
+
+\section boundary_analysys_segments Iterating Over Segments
+\section boundary_analysys_segments_basics Basic Iteration
+
+The text segments analysis is done using \ref boost::locale::boundary::segment_index "segment_index" class.
+
+It provides a bidirectional iterator that returns \ref boost::locale::boundary::segment "segment" object.
+The segment object represents a pair of iterators that define this segment and a rule according to which it was selected.
+It can be automatically converted to \c std::basic_string object.
+
+To perform boundary analysis, we first create an index object and then iterate over it:
+
+For example:
+
+\code
+using namespace boost::locale::boundary;
+boost::locale::generator gen;
+std::string text="To be or not to be, that is the question."
+// Create mapping of text for token iterator using global locale.
+ssegment_index map(word,text.begin(),text.end(),gen("en_US.UTF-8"));
+// Print all "words" -- chunks of word boundary
+for(ssegment_index::iterator it=map.begin(),e=map.end();it!=e;++it)
+ std::cout <<"\""<< * it << "\", ";
+std::cout << std::endl;
+\endcode
+
+Would print:
+
+\verbatim
+"To", " ", "be", " ", "or", " ", "not", " ", "to", " ", "be", ",", " ", "that", " ", "is", " ", "the", " ", "question", ".",
+\endverbatim
+
+This sentence "生きるか死ぬか、それが問題だ。" (from Tatoeba database)
+would be split into following segments in \c ja_JP.UTF-8 (Japanese) locale:
+
+\verbatim
+"生", "きるか", "死", "ぬか", "、", "それが", "問題", "だ", "。",
+\endverbatim
+
+The boundary analysis that is done by Boost.Locale
+is much more complicated then just splitting the text according
+to white space characters.
+
+Of course it may be not per
+
+\section boundary_analysys_segments_rules Using Rules
+
+The segments selection can be customized using \ref boost::locale::boundary::segment_index::rule(rule_type) "rule()" and
+\ref boost::locale::boundary::segment_index::full_select(bool) "full_select()" member functions.
+
+By default segment_index's iterator return each text segment defined by two boundary points regardless
+the way they were selected. Thus in the example above we could see text segments like "." or " "
+that were selected as words.
+
+Using a \c rule() member function we can specify a binary mask of rules we want to use for selection of
+the boundary points using \ref bl_boundary_word_rules "word", \ref bl_boundary_line_rules "line"
+and \ref bl_boundary_sentence_rules "sentence" boundary rules.
+
+For example, by calling
+
+\code
+map.rule(word_any);
+\endcode
+
+Before starting the iteration process, specify a selection mask that fetches: numbers, letter, Kana letters and
+ideographic characters ignoring all non-word related characters like white space or punctuation marks.
+
+So the code:
+
+\code
+using namespace boost::locale::boundary;
+std::string text="To be or not to be, that is the question."
+// Create mapping of text for token iterator using global locale.
+ssegment_index map(word,text.begin(),text.end());
+// Define a rule
+map.rule(word_any);
+// Print all "words" -- chunks of word boundary
+for(ssegment_index::iterator it=map.begin(),e=map.end();it!=e;++it)
+ std::cout <<"\""<< * it << "\", ";
+std::cout << std::endl;
+\endcode
+
+Would print:
+
+\verbatim
+"To", "be", "or", "not", "to", "be", "that", "is", "the", "question",
+\endverbatim
+
+And the for given text="生きるか死ぬか、それが問題だ。" and rule(\ref boost::locale::boundary::word_ideo "word_ideo"), the example above would print.
+
+\verbatim
+"生", "死", "問題",
+\endverbatim
+
+You can access specific rules the segments where selected it using \ref boost::locale::boundary::segment::rule() "segment::rule()" member
+function. Using a bit-mask of rules.
+
+For example:
+
+\code
+boost::locale::generator gen;
+using namespace boost::locale::boundary;
+std::string text="生きるか死ぬか、それが問題だ。";
+ssegment_index map(word,text.begin(),text.end(),gen("ja_JP.UTF-8"));
+for(ssegment_index::iterator it=map.begin(),e=map.end();it!=e;++it) {
+ std::cout << "Segment " << *it << " contains: ";
+ if(it->rule() & word_none)
+ std::cout << "white space or punctuation marks ";
+ if(it->rule() & word_kana)
+ std::cout << "kana characters ";
+ if(it->rule() & word_ideo)
+ std::cout << "ideographic characters";
+ std::cout<< std::endl;
+}
+\endcode
+
+Would print
+
+\verbatim
+Segment 生 contains: ideographic characters
+Segment きるか contains: kana characters
+Segment æ­» contains: ideographic characters
+Segment ぬか contains: kana characters
+Segment 、 contains: white space or punctuation marks
+Segment それが contains: kana characters
+Segment 問題 contains: ideographic characters
+Segment だ contains: kana characters
+Segment 。 contains: white space or punctuation marks
+\endverbatim
+
+One important things that should be noted that each segment is defined
+by a pair of boundaries and the rule of its ending point defines
+if it is selected or not.
+
+In some cases it may be not what we actually look like.
+
+For example we have a text:
+
+\verbatim
+Hello! How
+are you?
+\endverbatim
+
+And we want to fetch all sentences from the text.
+
+The \ref bl_boundary_sentence_rules "sentence rules" have two options:
+
+- Split the text on the point where sentence terminator like ".!?" detected: \ref boost::locale::boundary::sentence_term "sentence_term"
+- Split the text on the point where sentence separator like "line feed" detected: \ref boost::locale::boundary::sentence_sep "sentence_sep"
+
+Naturally to ignore sentence separators we would call \ref boost::locale::boundary::segment_index::rule(rule_type v) "segment_index::rule(rule_type v)"
+with sentence_term parameter and then run the iterator.
+
+\code
+boost::locale::generator gen;
+using namespace boost::locale::boundary;
+std::string text= "Hello! How\n"
+ "are you?\n";
+ssegment_index map(sentence,text.begin(),text.end(),gen("en_US.UTF-8"));
+map.rule(sentence_term);
+for(ssegment_index::iterator it=map.begin(),e=map.end();it!=e;++it)
+ std::cout << "Sentence [" << *it << "]" << std::endl;
+\endcode
+
+However we would get the expected segments:
+\verbatim
+Sentence [Hello! ]
+Sentence [are you?
+]
+\endverbatim
+
+The reason is that "How\n" is still considered a sentence but selected by different
+rule.
+
+This behavior can be changed by setting \ref boost::locale::boundary::segment_index::full_select(bool) "segment_index::full_select(bool)"
+to \c true. It would force iterator to join the current segment with all previous segments that may not fit the required rule.
+
+So we add this line:
+
+\code
+map.full_select(true);
+\endcode
+
+Right after "map.rule(sentence_term);" and get expected output:
+
+\verbatim
+Sentence [Hello! ]
+Sentence [How
+are you?
+]
+\endverbatim
+
+\subsection boundary_analysys_segments_search Locating Segments
+
+Sometimes it is useful to find a segment that some specific iterator is pointing on.
+
+For example a user had clicked at specific point, we want to select a word on this
+location.
+
+\ref boost::locale::boundary::segment_index "segment_index" provides
+\ref boost::locale::boundary::segment_index::find() "find(base_iterator p)"
+member function for this purpose.
+
+This function returns the iterator to the segmet such that \a p points to.
+
+
+For example:
+
+\code
+text="to be or ";
+ssegment_index map(word,text.begin(),text.end(),gen("en_US.UTF-8"));
+ssegment_index::iterator p = map.find(text.begin() + 4);
+if(p!=map.end())
+ std::cout << *p << std::endl;
+\endcode
+
+Would print:
+
+\verbatim
+be
+\endverbatim
+
+\note
+
+if the iterator lays inside the segment this segment returned. If the segment does
+not fit the selection rules, then the segment following requested position
+is returned.
+
+For example: For \ref boost::locale::boundary::word "word" boundary analysis with \ref boost::locale::boundary::word_any "word_any" rule:
+
+- "t|o be or ", would point to "to" - the iterator in the middle of segment "to".
+- "to |be or ", would point to "be" - the iterator at the beginning of the segment "be"
+- "to| be or ", would point to "be" - the iterator does is not point to segment with required rule so next valid segment is selected "be".
+- "to be or| ", would point to end as not valid segment found.
+
+
+\section boundary_analysys_break Iterating Over Boundary Points
+\section boundary_analysys_break_basics Basic Iteration
+
+The \ref boost::locale::boundary::boundary_point_index "boundary_point_index" is similar to
+\ref boost::locale::boundary::segment_index "segment_index" in its interface but as a different role.
+Instead of returning text chunks (\ref boost::locale::boundary::segment "segment"s, it returns
+\ref boost::locale::boundary::boundary_point "boundary_point" object that
+represents a position in text - a base iterator used that is used for
+iteration of the source text C++ characters.
+The \ref boost::locale::boundary::boundary_point "boundary_point" object
+also provides a \ref boost::locale::boundary::boundary_point::rule() "rule()" member
+function that defines a rule this boundary was selected according to.
+
+\note The beginning and the ending of the text are considered boundary points, so even
+an empty text consists of at least one boundary point.
+
+Lets see an example of selecting first two sentences from a text:
+
+\code
+using namespace boost::locale::boundary;
+boost::locale::generator gen;
+
+// our text sample
+std::string const text="First sentence. Second sentence! Third one?";
+// Create an index
+sboundary_point_index map(sentence,text.begin(),text.end(),gen("en_US.UTF-8"));
+
+// Count two boundary points
+sboundary_point_index::iterator p = map.begin(),e=map.end();
+int count = 0;
+while(p!=e && count < 2) {
+ ++count;
+ ++p;
+}
+
+if(p!=e) {
+ std::cout << "First two sentences are: "
+ << std::string(text.begin(),p->iterator())
+ << std::endl;
+}
+else {
+ std::cout <<"There are less then two sentences in this "
+ <<"text: " << text << std::endl;
+}\endcode
+
+Would print:
+
+\verbatim
+First two sentences are: First sentence. Second sentence!
+\endverbatim
+
+\section boundary_analysys_break_rules Using Rules
+
+Similarly to the \ref boost::locale::boundary::segment_index "segment_index" the
+\ref boost::locale::boundary::boundary_point_index "boundary_point_index" provides
+a \ref boost::locale::boundary::boundary_point_index::rule(rule_type r) "rule(rule_type mask)"
+member function to filter boundary points that interest us.
+
+It allows to set \ref bl_boundary_word_rules "word", \ref bl_boundary_line_rules "line"
+and \ref bl_boundary_sentence_rules "sentence" rules for filtering boundary points.
+
+Lets change an example above a little:
+
+\code
+// our text sample
+std::string const text= "First sentence. Second\n"
+ "sentence! Third one?";
+\endcode
+
+If we run our program as is on the sample above we would get:
+\verbatim
+First two sentences are: First sentence. Second
+\endverbatim
+
+Which is not something that we really expected. As the "Second\n"
+is considered an independent sentence that was separated by
+a line separator "Line Feed".
+
+However, we can set set a rule \ref boost::locale::boundary::sentence_term "sentence_term"
+and the iterator would use only boundary points that are created
+by a sentence terminators like ".!?".
+
+So by adding:
+\code
+map.rule(sentence_term);
+\endcode
+
+Right after the generation of the index we would get the desired output:
+
+\verbatim
+First two sentences are: First sentence. Second
+sentence!
+\endverbatim
+
+You can also use \ref boost::locale::boundary::boundary_point::rule() "boundary_point::rule()" member
+function to learn about the reason this boundary point was created by comparing it with an appropriate
+mask.
+
+For example:
+
+\code
+using namespace boost::locale::boundary;
+boost::locale::generator gen;
+// our text sample
+std::string const text= "First sentence. Second\n"
+ "sentence! Third one?";
+sboundary_point_index map(sentence,text.begin(),text.end(),gen("en_US.UTF-8"));
+
+for(sboundary_point_index::iterator p = map.begin(),e=map.end();p!=e;++p) {
+ if(p->rule() & sentence_term)
+ std::cout << "There is a sentence terminator: ";
+ else if(p->rule() & sentence_sep)
+ std::cout << "There is a sentence separator: ";
+ if(p->rule()!=0) // print if some rule exists
+ std::cout << "[" << std::string(text.begin(),p->iterator())
+ << "|" << std::string(p->iterator(),text.end())
+ << "]\n";
+}
+\endcode
+
+Would give the following output:
+\verbatim
+There is a sentence terminator: [First sentence. |Second
+sentence! Third one?]
+There is a sentence separator: [First sentence. Second
+|sentence! Third one?]
+There is a sentence terminator: [First sentence. Second
+sentence! |Third one?]
+There is a sentence terminator: [First sentence. Second
+sentence! Third one?|]
+\endverbatim
+
+\subsection boundary_analysys_break_search Locating Boundary Points
+
+Sometimes it is useful to find a specific boundary point according to given
+iterator.
+
+\ref boost::locale::boundary::boundary_point_index "boundary_point_index" provides
+a \ref boost::locale::boundary::boundary_point_index::find() "iterator find(base_iterator p)" member
+function.
+
+It would return an iterator to a boundary point on \a p's location or at the
+location following it if \a p does not point to appropriate position.
+
+For example, for word boundary analysis:
+
+- If a base iterator points to "to |be", then the returned boundary point would be "to |be" (same position)
+- If a base iterator points to "t|o be", then the returned boundary point would be "to| be" (next valid position)
+
+For example if we want to select 6 words around specific boundary point we can use following code:
+
+\code
+using namespace boost::locale::boundary;
+boost::locale::generator gen;
+// our text sample
+std::string const text= "To be or not to be, that is the question.";
+
+// Create a mapping
+sboundary_point_index map(word,text.begin(),text.end(),gen("en_US.UTF-8"));
+// Ignore wite space
+map.rule(word_any);
+
+// define our arbitraty point
+std::string::const_iterator pos = text.begin() + 12; // "no|t";
+
+// Get the search range
+sboundary_point_index::iterator
+ begin =map.begin(),
+ end = map.end(),
+ it = map.find(pos); // find a boundary
+
+// go 3 words backward
+for(int count = 0;count <3 && it!=begin; count ++)
+ --it;
+
+// Save the start
+std::string::const_iterator start = *it;
+
+// go 6 words forward
+for(int count = 0;count < 6 && it!=end; count ++)
+ ++it;
+
+// make sure we at valid position
+if(it==end)
+ --it;
+
+// print the text
+std::cout << std::string(start,it->iterator()) << std::endl;
+\endcode
+
+That would print:
+
+\verbatim
+ be or not to be, that
+\endverbatim
+
+
+*/
+
+

Added: trunk/libs/locale/doc/building_boost_locale.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/building_boost_locale.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,209 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page building_boost_locale Building The library
+
+Boost.Locale presently supports CMake build system and Boost Build.
+
+\note You need Boost 1.46 and above to use Boost.Build
+
+- \ref building_boost_locale_bb
+- \ref building_boost_locale_cmake
+- \ref binary_compatibility
+
+
+\section building_boost_locale_bb Building With Boost.Build
+
+You need Boost 1.46 and above to use Boost.Build, it includes important
+patches that allow you to build the library correctly.
+
+\subsection bb_building_deps Dependencies
+
+- Boost 1.46 and above.
+- ICU library 3.6 or above is strongly recommended
+- If no ICU library is given, iconv support is required under POSIX platforms.
+
+\subsection bb_building_proc Building Process
+
+First of all we need to prepare our sources of Boost with Boost.Locale
+
+- Download latest version of Boost and extract its sources
+- Download the latest version of Boost.Locale and extract its sources
+- Copy boost and libs subdirectory of Boost.Locale sources into the location
+ of boost sources.
+- Bootstrap latest bjam version running bootstrap.sh or bootstrap.bat.
+
+Now all you need to do is invoke bjam command:
+
+\verbatim
+./bjam --with-locale stage
+\endverbatim
+
+Or on Windows
+\verbatim
+.\bjam --with-locale stage
+\endverbatim
+
+If you are using custom ICU build or you are using Microsoft Windows
+you need to provide a path to location of ICU library using \c -sICU_PATH option
+
+For example:
+
+- If your icu build is placed at \c /opt/icu46 such that the files are placed like\n
+ \c /opt/icu46/include/unicode/uversion.h\n
+ \c /opt/icu46/include/unicode/calendar.h\n
+ \c ... \n
+ \c /opt/icu46/lib/libicudata.so \n
+ \c /opt/icu46/lib/libicui18n.so \n
+ \c ... \n
+ then you need to provide an option \c -sICU_PATH=/opt/icu46
+ \verbatim
+ ./bjam --with-locale -sICU_PATH=/opt/icu46 stage
+ \endverbatim
+- If your icu build is placed at <tt>c:\\icu46</tt> such that the files are placed like \n
+ <tt>c:\\icu46\\include\\unicode\\uversion.h</tt> \n
+ <tt>c:\\icu46\\include\\unicode\\calendar.h</tt> \n
+ <tt>...</tt> \n
+ <tt>c:\\icu46\\bin\\icudt.dll</tt> \n
+ <tt>c:\\icu46\\bin\\icuin.dll</tt> \n
+ <tt>...</tt> \n
+ <tt>c:\\icu46\\lib\\icudt.lib</tt> \n
+ <tt>c:\\icu46\\lib\\icuin.lib</tt> \n
+ <tt>...</tt> \n
+ then you need to provide an option \c -sICU_PATH=c:\\icu46
+ \verbatim
+ .\bjam --with-locale -sICU_PATH=c:\icu46 stage
+ \endverbatim
+
+\note Don't forget to put both debug and release versions of ICU libraries in this path
+when using Microsoft Visual Studio so Boost.Build will link correctly debug and release
+versions of boost_locale library.
+
+\section bb_build_opts Build Options
+
+Boost.Locale supports following options with values \c off or \c on
+
+- \c boost.locale.icu=off disable build of ICU backend even if ICU library exists
+- \c boost.locale.iconv=off or \c boost.locale.iconv=on enable or disable use of iconv
+ library. It is off by default on Windows and Solaris
+- \c boost.locale.winapi=off - disable winapi backend, it is on by default on Windows and Cygwin
+- \c boost.locale.std=off or \c boost.locale.winapi=on Disable or enable std backends. \c std backend
+ is disabled by default when using Sun Studio.
+- \c boost.locale.posix=on or \c boost.locale.posix=off Enable or disable support of POSIX backend,
+ it is on by default on Linux and Mac OS X
+
+Also Boost.Locale supports following options
+
+- \c -sICU_PATH=/path/to/location/of/icu - the location of custom ICU library
+- \c -sICONV_PATH=/path/to/location/of/iconv - the location of custom iconv library
+
+
+For example:
+
+- Build the library on Windows with ICU backend only:
+ \verbatim
+ .\bjam boost.locale.winapi=off boost.locale.std=off -sICU_PATH=c:\icu46 --with-locale stage
+ \endverbatim
+- Build the library on Linux with std backend only
+ \verbatim
+ .\bjam boost.locale.posix=off boost.locale.icu=off --with-locale stage
+ \endverbatim
+
+\section bb_build_test Running Unit Tests
+
+You can run unit tests by invoking \c bjam with \c libs/locale/test project parameter
+\verbatim
+./bjam libs/locale/test
+\endverbatim
+
+\section building_boost_locale_cmake Building With CMake
+
+\note CMake build does not provide mangled library names like boost_locale-mt-gd.lib, so if you
+rely on auto-linking use Boost.Build.
+
+\subsection cmake_building_deps Dependencies
+
+- CMake 2.6 and above.
+- Boost 1.35 and above.
+- Boost.Thread (when using ICU or when using Boost < 1.43)
+- ICU library 3.6 or above is strongly recommended
+- If no ICU library is given, iconv support is required under POSIX platforms.
+
+\subsection cmake_building_proc Building Process
+
+The library build should be fairly simple for users familiar with CMake.
+
+\note
+
+- MSVC Users: use \c nmake for building the library, MSVC projects are not supported!
+- Windows users: don't forget to set the PATH environment variable to point to ICU's dlls.
+
+The simplest way to build the library is:
+
+- Extract its sources
+- Go to the sources directory
+- Create a subdirectory named "build"
+- Go into this directory and run:
+ \code
+ cmake ..
+ make
+ make test
+ \endcode
+ For windows you may need to specify:
+ \code
+ cmake -DCMAKE_INCLUDE_PATH=/path/to/icu/include:/path/to/boost/include -DCMAKE_LIBRARY_PATH=/path/to/icu/lib ..
+ \endcode
+ And then:
+ \code
+ nmake
+ nmake test
+ \endcode
+ Or
+ \code
+ make && make test
+ \endcode
+ Depending on your compiler.
+
+
+\section cmake_build_opts Build Options
+
+This options can be passed to CMake to configure the library to your needs.
+
+- \c DISABLE_SHARED - build only the static library
+- \c DISABLE_STATIC - build only the shared library
+- \c DISABLE_ICU - Disable the ICU backend (strongly discouraged)
+- \c DISABLE_STD_BACKED - Disable the "std" backend
+- \c DISABLE_POSIX_BACKEND - Disable the "posix" backend (ON by default on all but Linux and Mac OS X)
+- \c DISABLE_WINAPI_BACKEND - Disable the "winapi" backend (ON by default on POSIX platforms).
+- \c DISABLE_ICONV - Disable iconv-based conversion (ON by default on Windows)
+
+Useful CMake options:
+
+- \c CMAKE_INCLUDE_PATH - path to the boost library (if not system-wide)
+- \c CMAKE_INSTALL_PREFIX - installation path
+- \c CMAKE_BUILD_TYPE - default is Debug on Windows/MSVC and RelWithDebInfo on all other platforms.
+
+Examples:
+
+- Build Boost.Locale with only the "icu" backend on Linux
+ \code
+ cmake -DDISABLE_POSIX_BACKEND=ON -DDISABLE_STD_BACKEND=ON -DDISABLE_ICONV=ON ..
+ \endcode
+- Build Boost.Locale with the "winapi" and "std" backends on Windows
+ \code
+ cmake -G "NMake Makefiles" -DDISABLE_ICU_BACKEND=ON -DCMAKE_INCLUDE_PATH=c:/boost_1_43_0 ..
+ \endcode
+
+\section binary_compatibility Binary Compatibility
+
+Boost.Locale is built with binary compatibility in mind. Switching localization back ends on or off,
+or using iconv or not, does not affect binary compatibility. So if a dynamic library was built
+with all possible backends, other dynamic libraries compiled with, for example, only the \c std, \c posix
+or \c winapi backends would still be binary-compatible with it.
+
+However this definitely has an effect on some features. For example, if you
+try to use boundary analysis or a calendar facet when the library does not support the icu backend
+you would get an exception.
+
+*/
+
+

Added: trunk/libs/locale/doc/charset_handling.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/charset_handling.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,143 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page charset_handling Character Set Conversions
+
+\section codecvt Convenience Interface
+
+Boost.Locale provides \ref boost::locale::conv::to_utf() "to_utf", \ref boost::locale::conv::from_utf() "from_utf" and
+\ref boost::locale::conv::utf_to_utf() "utf_to_utf" functions in
+the \c boost::locale::conv namespace. They are simple and
+convenient functions to convert a string to and from
+UTF-8/16/32 strings and strings using other encodings.
+
+For example:
+
+\code
+std::string utf8_string = to_utf<char>(latin1_string,"Latin1");
+std::wstring wide_string = to_utf<wchar_t>(latin1_string,"Latin1");
+std::string latin1_string = from_utf(wide_string,"Latin1");
+std::string utf8_string2 = utf_to_utf<char>(wide_string);
+\endcode
+
+
+This function may use an explicit encoding name like "Latin1" or "ISO-8859-8",
+or use std::locale as a parameter to fetch this information from it.
+It also receives a policy parameter that tells it how to behave if the
+conversion can't be performed (i.e. an illegal or unsupported character is found).
+By default this function skips all illegal characters and tries to do the best it
+can, however, it is possible ask it to throw
+a \ref boost::locale::conv::conversion_error "conversion_error" exception
+by passing the \c stop flag to it:
+
+\code
+std::wstring s=to_utf<wchar_t>("\xFF\xFF","UTF-8",stop);
+// Throws because this string is illegal in UTF-8
+\endcode
+
+\section codecvt_codecvt std::codecvt facet
+
+Boost.Locale provides stream codepage conversion facets based on the \c std::codecvt facet.
+This allows conversion between wide-character encodings and 8-bit encodings like UTF-8, ISO-8859 or Shift-JIS.
+
+Most of compilers provide such facets, but:
+
+- Under Windows MSVC does not support UTF-8 encodings at all.
+- Under Linux the encodings are supported only if the required locales are generated. For example
+ it may be impossible to create a \c he_IL.CP1255 locale even when the \c he_IL locale is available.
+
+Thus Boost.Locale provides an option to generate code-page conversion facets for use with
+Boost.Iostreams filters or \c std::wfstream. For example:
+
+\code
+ std::locale loc= generator().generate("he_IL.UTF-8");
+ std::wofstream file.
+ file.imbue(loc);
+ file.open("hello.txt");
+ file << L"שלום!" << endl;
+\endcode
+
+Would create a file \c hello.txt encoded as UTF-8 with "שלום!" (shalom) in it.
+
+\section codecvt_iostreams_integration Integration with Boost.Iostreams
+
+You can use the \c std::codecvt facet directly, but this is quite tricky and
+requires accurate buffer and error management.
+
+You can use the \c boost::iostreams::code_converter class for stream-oriented
+conversions between the wide-character set and narrow locale character set.
+
+This is a sample program that converts wide to narrow characters for an arbitrary
+stream:
+
+\code
+#include <boost/iostreams/stream.hpp>
+#include <boost/iostreams/categories.hpp>
+#include <boost/iostreams/code_converter.hpp>
+
+#include <boost/locale.hpp>
+#include <iostream>
+
+namespace io = boost::iostreams;
+
+// Device that consumes the converted text,
+// In our case it just writes to standard output
+class consumer {
+public:
+ typedef char char_type;
+ typedef io::sink_tag category;
+ std::streamsize write(const char* s, std::streamsize n)
+ {
+ std::cout.write(s,n);
+ return n;
+ }
+};
+
+
+int main()
+{
+ // the device that converts wide characters
+ // to narrow
+ typedef io::code_converter<consumer> converter_device;
+ // the stream that uses this device
+ typedef io::stream<converter_device> converter_stream;
+
+
+ consumer cons;
+ // setup out converter to work
+ // with he_IL.UTF-8 locale
+ converter_device dev;
+ boost::locale::generator gen;
+ dev.imbue(gen("he_IL.UTF-8"));
+ dev.open(cons);
+ converter_stream stream;
+ stream.open(dev);
+ // Now wide characters that are written
+ // to the stream would be given to
+ // our consumer as narrow characters
+ // in UTF-8 encoding
+ stream << L"שלום" << std::flush;
+}
+
+\endcode
+
+
+\section codecvt_limitations Limitations of std::codecvt
+
+The Standard does not provide any information about \c std::mbstate_t that could be used to save
+intermediate code-page conversion states. It leaves the definition up to the compiler implementation, making it
+impossible to reimplement <tt>std::codecvt<wchar_t,char,mbstate_t></tt> for stateful encodings.
+Thus, Boost.Locale's \c codecvt facet implementation may be used with stateless encodings like UTF-8,
+ISO-8859, and Shift-JIS, but not with stateful encodings like UTF-7 or SCSU.
+
+\b Recommendation: Prefer the Unicode UTF-8 encoding for \c char based strings and files in your application.
+
+\note
+
+The implementation of codecvt for single byte encodings like ISO-8859-X and for UTF-8 is very efficent
+and would allow fast conversion of the content, however its performance may be sub-optimal for
+double-width encodings like Shift-JIS, due to the stateless problem described above.
+
+
+*/
+
+

Added: trunk/libs/locale/doc/collation.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/collation.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,44 @@
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page collation Collation
+
+Boost.Locale provides a \ref boost::locale::collator "collator" class, derived from \c std::collate, that adds support for
+primary, secondary, tertiary, quaternary and identical comparison levels. They can be approximately defined as:
+
+-# Primary -- ignore accents and character case, comparing base letters only. For example "facade" and "Façade" are the same.
+-# Secondary -- ignore character case but consider accents. "facade" and "façade" are different but "Façade" and "façade" are the same.
+-# Tertiary -- consider both case and accents: "Façade" and "façade" are different. Ignore punctuation.
+-# Quaternary -- consider all case, accents, and punctuation. The words must be identical in terms of Unicode representation.
+-# Identical -- as quaternary, but compare code points as well.
+
+There are two ways of using the \ref boost::locale::collator "collator" facet: directly, by calling its member functions \ref boost::locale::collator::compare() "compare", \ref boost::locale::collator::transform() "transform" and \ref
+boost::locale::collator::hash() "hash", or indirectly by using the \ref boost::locale::comparator "comparator" template
+class in STL algorithms.
+
+For example:
+
+\code
+ wstring a=L"Façade", b=L"facade";
+ bool eq = 0 == use_facet<collator<wchar_t> >(loc).compare(collator_base::secondary,a,b);
+ wcout << a <<L" and "<<b<<L" are " << (eq ? L"identical" : L"different")<<endl;
+\endcode
+
+\c std::locale is designed to be useful as a comparison class in STL collections and algorithms.
+To get similar functionality with comparison levels, you must use the comparator class.
+
+\code
+ std::map<std::string,std::string,comparator<char,collator_base::secondary> > strings;
+ // Now strings uses the default system locale for string comparison
+\endcode
+
+You can also set a specific locale or level when creating and using the \ref boost::locale::comparator "comparator" class:
+
+\code
+ comparator<char> comp(some_locale,some_level);
+ std::map<std::string,std::string,comparator<char> > strings(comp);
+\endcode
+
+*/
+
+

Added: trunk/libs/locale/doc/conversions.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/conversions.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,92 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page conversions Text Conversions
+
+There is a set of functions that perform basic string conversion operations:
+upper, lower and \ref term_title_case "title case" conversions, \ref term_case_folding "case folding"
+and Unicode \ref term_normalization "normalization". These are \ref boost::locale::to_upper "to_upper" , \ref boost::locale::to_lower "to_lower", \ref boost::locale::to_title "to_title", \ref boost::locale::fold_case "fold_case" and \ref boost::locale::normalize "normalize".
+
+All these functions receive an \c std::locale object as parameter or use a global locale by default.
+
+Global locale is used in all examples below.
+
+\section conversions_case Case Handing
+
+For example:
+\code
+ std::string grussen = "grüßEN";
+ std::cout <<"Upper "<< boost::locale::to_upper(grussen) << std::endl
+ <<"Lower "<< boost::locale::to_lower(grussen) << std::endl
+ <<"Title "<< boost::locale::to_title(grussen) << std::endl
+ <<"Fold "<< boost::locale::fold_case(grussen) << std::endl;
+\endcode
+
+Would print:
+
+\verbatim
+Upper GRÃœSSEN
+Lower grüßen
+Title Grüßen
+Fold grüssen
+\endverbatim
+
+You may notice that there are existing functions \c to_upper and \c to_lower in the Boost.StringAlgo library.
+The difference is that these function operate over an entire string instead of performing incorrect character-by-character conversions.
+
+For example:
+
+\code
+ std::wstring grussen = L"grüßen";
+ std::wcout << boost::algorithm::to_upper_copy(grussen) << " " << boost::locale::to_upper(grussen) << std::endl;
+\endcode
+
+Would give in output:
+
+\verbatim
+GRÜßEN GRÜSSEN
+\endverbatim
+
+Where a letter "ß" was not converted correctly to double-S in first case because of a limitation of \c std::ctype facet.
+
+This is even more problematic in case of UTF-8 encodings where non US-ASCII are not converted at all.
+For example, this code
+
+\code
+ std::string grussen = "grüßen";
+ std::cout << boost::algorithm::to_upper_copy(grussen) << " " << boost::locale::to_upper(grussen) << std::endl;
+\endcode
+
+Would modify ASCII characters only
+
+\verbatim
+GRüßEN GRÜSSEN
+\endverbatim
+
+\section conversions_normalization Unicode Normalization
+
+Unicode normalization is the process of converting strings to a standard form, suitable for text processing and
+comparison. For example, character "ü" can be represented by a single code point or a combination of the character "u" and the
+diaeresis "¨". Normalization is an important part of Unicode text processing.
+
+Unicode defines four normalization forms. Each specific form is selected by a flag passed
+to \ref boost::locale::normalize() "normalize" function:
+
+- NFD - Canonical decomposition - boost::locale::norm_nfd
+- NFC - Canonical decomposition followed by canonical composition - boost::locale::norm_nfc or boost::locale::norm_default
+- NFKD - Compatibility decomposition - boost::locale::norm_nfkd
+- NFKC - Compatibility decomposition followed by canonical composition - boost::locale::norm_nfkc
+
+For more details on normalization forms, read this article.
+
+\section conversions_notes Notes
+
+- \ref boost::locale::normalize() "normalize" operates only on Unicode-encoded strings, i.e.: UTF-8, UTF-16 and UTF-32 depending on the
+ character width. So be careful when using non-UTF encodings as they may be treated incorrectly.
+- \ref boost::locale::fold_case() "fold_case" is generally a locale-independent operation, but it receives a locale as a parameter to
+ determine the 8-bit encoding.
+- All of these functions can work with an STL string, a NUL terminated string, or a range defined by two pointers. They always
+ return a newly created STL string.
+- The length of the string may change, see the above example.
+*/
+
+

Added: trunk/libs/locale/doc/dates_times_timezones.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/dates_times_timezones.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,203 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page dates_times_timezones Working with dates, times, timezones and calendars.
+
+\section dates_times_timezones_intro Introduction
+
+There are several important flaws in the standard C, C++ and Boost libraries that handle dates and time:
+
+-# The biggest flaw of most libraries that provide operations over dates is the fact that they only support
+ the Gregorian calendar. \c boost::date_time , \c std::tm , and standard functions like \c localtime and \c gmtime,
+ all assume the Gregorian calendar.
+-# The information about local start of week is not provided.
+ \n
+ For example the standard C and C++ library has \c mktime and \c localtime, but they do not give
+ user the information about the first day of week. This information is locale dependent.
+ It is Monday in France and it is Sunday in United States.
+
+Boost.Locale provides generic \ref boost::locale::date_time "date_time", and \ref boost::locale::calendar "calendar" classes
+that allow you to perform operations on dates and times for non-Gregorian calendars such as Hebrew, Islamic, Japanese and others.
+
+\ref using_localization_backends "Non-ICU based backends" support the Gregorian calendar only.
+Unlike \c boost::date_time, they are fully aware of the local first day of week. Thus,
+if the current day of week is Monday, then setting "current day of week" to Sunday would move the actual date 6 days
+forward in Russian or French locales and move one day backward in USA and Israeli locales.
+
+\section dates_times_timezones_dt Handling Dates and Time
+
+- \ref boost::locale::calendar -- represents generic information about the calendar, independent from a specific time point. For example, you can get the maximum number of days in a month for a specific calendar.
+- \ref boost::locale::date_time -- represents a time point. It is constructed from a calendar and allows manipulation of various time periods.
+- \ref boost::locale::period -- holds a list of functions that represent various periods, such as month, year, day, and hour, allowing
+manipulation of dates and times. You can add periods, multiply them by integers, get or set them, or add them to
+\ref boost::locale::date_time "date_time" objects.
+
+
+For example:
+
+\code
+ using namespace boost::locale;
+ date_time now; // Create date_time class with default calendar initialized to current time
+ date_time tomorrow = now + period::day();
+ cout << "Let's meet tomorrow at " << as::date << tomorrow << endl;
+ date_time some_point = period::year(1995) + period::january() + period::day(1);
+ // Set some_point's date to 1995-Jan-1.
+ cout << "The "<< as::date << some_point << " is the "
+ << as::ordinal << some_point / period::day_of_week_local() << " day of the week" << endl;
+\endcode
+
+You can calculate the difference between dates by dividing the difference by a period:
+
+\code
+ date_time now;
+ cout << " There are " << (now + 2 * period::month() - now) / period::day() << " days "
+ "between " << as::date << now << " and " << now + 2*period::month() << endl;
+\endcode
+
+You can also use different syntax (less operator overloading)
+
+\code
+ date_time now;
+ cout << " There are " << period::day(now + period::month(2) - now) << " days "
+ "between " << as::date << now << " and " << now + period::month(2) << endl;
+\endcode
+
+
+
+\ref boost::locale::date_time "date_time" -- provides the member functions \ref boost::locale::date_time::minimum() "minimum" and
+\ref boost::locale::date_time::maximum() "maximum" to get the information about smallest and largest
+possible values of a certain period for a specific time.
+
+For example, for February the <tt>maximum(period::day())</tt> would be 28 (or 29 for a leap year), and for January it would be 31.
+
+\note Be very careful with assumptions about calendars. For example, in the Hebrew calendar, the
+number of months is different for leap years and non-leap years.
+
+We recommend you to look at the \c calendar.cpp example provided with this library to get an understanding of how
+to manipulate dates and times using these classes.
+
+To convert between various calendar dates, you may get the current POSIX time via the
+\ref boost::locale::date_time::time "time" member function.
+
+For example:
+
+\code
+ using namespace boost::locale;
+ using namespace boost::locale::period;
+ generator gen;
+ // Create locales with Hebrew and Gregorian (default) calendars.
+ std::locale l_hebrew=gen("en_US.UTF-8_at_calendar=hebrew");
+ std::locale l_gregorian=gen("en_US.UTF-8");
+
+ // Create a Gregorian date from fields
+ date_time greg(year(2010) + february() + day(5),l_gregorian);
+ // Assign a time point taken from the Gregorian date to date_time with
+ // the Hebrew calendar
+ date_time heb(greg.time(),l_hebrew);
+ // Now we can query the year.
+ std::cout << "Hebrew year is " << heb / year << std::endl;
+\endcode
+
+\note
+
+Non-ICU based backends support the same date-time range as \c mktime and \c localtime C library functions.
+
+- Unix 32 bit: dates between 1901 and 2038
+- Unix 64 bit: dates from 1 BC
+- Windows: dates from 1970. If the \c time_t is 32 bits wide (mingw), then the upper limit is year 2038
+
+\section dates_times_timezones_tz Time Zone
+
+The current operating system's time zone is used by default, however the time zone can be modified at
+several different levels:
+
+-# Calendar level: you can specify a timezone when creating a new instance of \ref boost::locale::calendar
+ in its constructor.
+-# iostream level: you can use \ref boost::locale::as::time_zone "as::time_zone" manipulator to set a specific
+ time zone to the iostream so all dates and times would be represented in this time zone
+-# You can specify the default global time zone by calling: \ref boost::locale::time_zone::global(std::string const &).
+ This time zone would be the default one for newly created iostream object and calendar instances.
+
+\note
+
+\ref using_localization_backends "Non-ICU based backends" support only two kinds of time zones:
+
+-# The current OS time zone, as it is handled by \c localtime and \c mktime the standard
+ library functions - the default time zone
+-# Simple time zone in format "GMT+HH:MM" - the time zone represented using fixed shift from
+ the UTC without support of daylight saving time.
+
+
+\section dates_times_timezones_io I/O Operations on date_time objects
+
+Writing a \ref boost::locale::date_time "date_time" is equivalent
+to:
+
+- Applying \ref boost::locale::as::datetime "as::datetime" manipulator on the stream
+- Writing POSIX time as number that is fetched by calling \ref boost::locale::date_time::time()
+ "date_time::time()" function.
+- Reverting the manipulator effect back.
+
+For example this code:
+
+\code
+using namespace boost::locale;
+date_time now;
+std::cout << now << std::endl;
+\endcode
+
+Would print in the default format, something like:
+
+\verbatim
+2/3/2011 12:00 am
+\endverbatim
+
+However if you need to change the default behavior (for example show only date),
+then you need to use specific iostream manipulator in order to display current date or time,
+it would override the default formatting.
+
+For example
+
+\code
+using namespace boost::locale;
+date_time now;
+std::cout << as::date << now << std::endl;
+\endcode
+
+Would print something like:
+
+\verbatim
+2/3/2011
+\endverbatim
+
+This is important to remember that \c date_time object is always rendered and parsed in the context
+of the \c iostream's locale and time zone and not in the context of specific \c date_time object.
+
+\section dates_times_timezones_qna Questions and Answers
+
+
+<b>Why should I use Boost.Locale over Boost.DateTime when I need Gregorian calendar only?</b>
+
+- Boost.DateTime is locale agnostic library and ignores the fact that the first day of week
+ varies by the locale.
+- Boost.Locale provides a unified access to date and time in time zone aware way.
+ It represents a time as universal scalar - the POSIX time and over that builds dates,
+ local times and time-zones handling.
+ \n
+ For example, <tt>date_time(some_time.time() + 3600)</tt> may be not equal to
+ <tt>some_time + hour()</tt>, because of the daylight savings time.
+
+<b>Why don't you use Boost.DateTime time zone support?</b>
+
+Boost.DateTime's time zone support is broken. Time zones can not be represented with
+a simple table of rules where daylight saving depend only on certain n'th day of week in month.
+The daylight savings time may vary by year, political issues and many other things.
+
+Most of the modern operating systems (Linux, *BSD, Mac OS X, OpenVMS) and many important software packages
+(ICU, Java, Python) use so called Olson database in order to handle daylight saving time
+correctly.
+
+If you need full time zone database support, then you should use ICU library.
+
+*/
+
+

Added: trunk/libs/locale/doc/default_encoding_under_windows.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/default_encoding_under_windows.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,57 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page default_encoding_under_windows Default Encoding under Microsoft Windows
+
+All modern operating systems use Unicode.
+
+- Unix operating system family use UTF-8 encoding by default.
+- Microsoft Windows had migrated to Wide/UTF-16 API.
+ The narrow encodings had been deprecated and the native OS API became so called "Wide API"
+
+As a result of radically different approaches, it is very hard to write portable Unicode aware applications.
+
+Boost Locale fully supports both narrow and wide API. The default character
+encoding is assumed to be UTF-8 on Windows.
+
+So if the default operating system Locale is "English_USA.1252" the default
+locale for Boost.Locale on Windows would be "en_US.UTF-8".
+
+When the created locale object is installed globally then any libraries
+that use \c std::codecvt for conversion between narrow API and the native
+wide API would handle UTF-8 correctly.
+
+A good example of such library is Boost.Filesystem v3.
+
+For example
+
+\code
+#include <boost/locale.hpp>
+#include <boost/filesystem/path.hpp>
+#include <boost/filesystem/fstream.hpp>
+
+int main()
+{
+ // Create and install global locale
+ std::locale::global(boost::locale::generator().generate(""));
+ // Make boost.filesystem use it
+ boost::filesystem::path::imbue(std::locale());
+ // Now Works perfectly fine with UTF-8!
+ boost::filesystem::ofstream hello("שלום.txt");
+}
+
+\endcode
+
+However such behavior may break existing software that assumes that the current
+encoding is single byte encodings like code page 1252.
+
+\ref boost::locale::generator class has a property \ref boost::locale::generator::use_ansi_encoding() "use_ansi_encoding()"
+that allows to change the behavior to legacy one and select an ANSI code page as
+default system encoding.
+
+So, when the current locale is "English_USA.1252" and the \c use_ansi_encoding is turned on
+then the default locale would be "en_US.windows-1252"
+
+\note \c winapi backend does not support ANSI encodings, thus UTF-8 encoding is always used for narrow characters.
+
+*/
+

Added: trunk/libs/locale/doc/faq.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/faq.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,42 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page faq Frequently Asked Questions
+
+- \anchor faq_bad_cast <b>I try to use some Boost.Locale functions and I get an \c std::bad_cast exception thrown?</b>
+ \n
+ \n
+ \b Answer: You probably try to use incorrect \c std::locale object. All Boost.Locale tools relay on \c std::locale object's facets.
+ The locale object should be generated with \ref boost::locale::generator "generator" class and then passed to
+ the function or alternatively global locale should be set using \c std::locale::global() function such that
+ global locale (and default created one) would have required facets to use.
+- \anchor faq_number <b>I had installed global locale and try to write something to stream but still get wrong output?</b>
+ For example:
+ \code
+ #include <boost/locale.hpp>
+ #include <iostream>
+ int main()
+ {
+ boost::locale::generator gen;
+ std::locale::global(gen(""));
+ std::cout << boost::locale::as::date << std::time(0) << std::endl;
+ }
+ \endcode
+ Prints a number instead of a date.
+ \n
+ \b Answer: You forget to imbue the locale to the stream. Changing the global locale does not affect the
+ locale in existing \c iostream objects. Thus because \c std::out and other global streams were created
+ before changing the global locale Boost.Locale manipulators have no effect. You need to write:
+ \code
+ #include <boost/locale.hpp>
+ #include <iostream>
+ int main()
+ {
+ boost::locale::generator gen;
+ std::locale l = gen("");
+ std::locale::global(l);
+ std::cout.imbue(l);
+ std::cout << boost::locale::as::date << std::time(0) << std::endl;
+ }
+ \endcode
+
+*/

Added: trunk/libs/locale/doc/footer.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/footer.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,5 @@
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/formatting_and_parsing.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/formatting_and_parsing.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,154 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+
+\page formatting_and_parsing Numbers, Time and Currency formatting and parsing
+
+All formatting and parsing is performed via the standard I/O streams. Each of the above information types is represented as a number.
+The formatting information is set using iostream manipulators. All manipulators are placed in the boost::locale::as namespace.
+
+For example:
+
+\code
+ cout << as::currency << 123.45 << endl;
+ // display 123.45 in local currency representation.
+ cin >> as::currency >> x ;
+ // Parse currency representation and store it in x
+\endcode
+
+There is a special manipulator \c as::posix that "unsets" locale-specific settings and returns them to the default \c iostream formatting
+and parsing methods. Please note, such formats may still be localized by the default \c std::num_put and \c std::num_get facets.
+
+\section numbers_formatting Numbers and number manipulators
+
+Here are the manipulators for number formatting:
+
+- \c as::number -- format number according to local specifications, it takes into account various \c std::ios_base flags like scientific
+ format and precision.
+ \n
+- \c as::percent -- format number as "percent" format. For example:
+ \code
+ cout << as::percent << 0.25 <<endl;
+ \endcode
+ Would create an output that may look like this:
+ \verbatim
+ 25%
+ \endverbatim
+ \n
+- \c as::spellout -- spell the number. For example, under the English locale, 103 may be displayed as "one hundred three".
+ \b Note: not all locales provide rules for spelling numbers. In such a case the number would be displayed in decimal format.
+ \n
+- \c as::ordinal -- display an order-of element. For example "2" would be displayed as "2nd" under the English locale. As in
+ the above case, not all locales provide ordinal rules.
+
+\section currency_formatting Currency formatting
+
+These are the manipulators for currency formatting:
+
+- \c as::currency -- set the format to currency mode.
+- \c as::currency_iso -- change the currency format to international, like "USD" instead of "$". This flag is supported
+ when using ICU 4.2 and above.
+- \c as::currency_national -- change currency format to national, like "$".
+- \c as::currency_default -- return to the default (national) currency format.
+
+\note \c as::currency_XYZ manipulators have no effect on general formatting, only on the currency format. You must use both currency
+and number manipulators to use a non-default format.
+
+\section date_and_time_formatting Date and Time formatting
+
+Dates and times are represented as POSIX time. When date-time formatting is turned on in the \c iostream, each number is treated as a
+POSIX time. The number may be an integer or a double.
+
+There are four major manipulators for Date and Time formatting:
+
+- \c as::date -- date only
+- \c as::time -- time only
+- \c as::datetime -- both date and time
+- \c as::ftime -- parameterized manipulator that allows specification of time in the format that is used in the \c strftime function.
+ \b Note: not all formatting flags of \c strftime are supported.
+
+For example:
+
+\code
+ time_t now=time(0);
+ cout << "Today is "<< as::date << now << " and tomorrow is " << now+24*3600 << endl;
+ cout << "Current time is "<< as::time << now << endl;
+ cout << "The current weekday is "<< as::ftime("%A") << now << endl;
+\endcode
+
+More fine-grained control of date-time formatting is also available:
+
+- \c as::time_default , \c as::time_short , \c as::time_medium , \c as::time_long , \c as::time_full -- change time formatting.
+- \c as::date_default , \c as::date_short , \c as::date_medium , \c as::date_long , \c as::date_full -- change date formatting.
+
+These manipulators, when used together with the \c as::date, \c as::time, or \c as::datetime manipulators, change the date-time representation.
+The default format is medium.
+
+
+By default, the date and time are shown in the local time zone. This behavior may be changed with the following manipulators:
+
+- \c as::gmt -- display date and time in GMT.
+- \c as::local_time -- display in local time zone (default).
+- \c as::time_zone -- parameterized manipulator that sets the time-zone ID for date-time formatting and parsing. It
+ takes a string parameter that represents the time zone ID.
+
+For example:
+
+\code
+ double now=time(0);
+ cout << as::datetime << as::local_time << "Local time is: "<< now << endl;
+ cout << as::gmt << "GMT Time is: "<< now <<endl;
+ cout << as::time_zone("EST") << "Eastern Standard Time is: "<< now <<endl;
+\endcode
+
+There is a list of supported \c strftime flags by ICU backend:
+
+- \c \%a -- Abbreviated weekday (Sun.)
+- \c \%A -- Full weekday (Sunday)
+- \c \%b -- Abbreviated month (Jan.)
+- \c \%B -- Full month (January)
+- \c \%c -- Locale date-time format. \b Note: prefer using \c as::datetime
+- \c \%d -- Day of Month [01,31]
+- \c \%e -- Day of Month [1,31]
+- \c \%h -- Same as \c \%b
+- \c \%H -- 24 clock hour [00,23]
+- \c \%I -- 12 clock hour [01,12]
+- \c \%j -- Day of year [1,366]
+- \c \%m -- Month [01,12]
+- \c \%M -- Minute [00,59]
+- \c \%n -- New Line
+- \c \%p -- AM/PM in locale representation
+- \c \%r -- Time with AM/PM, same as \c \%I:\%M:\%S \%p
+- \c \%R -- Same as \c \%H:\%M
+- \c \%S -- Second [00,61]
+- \c \%t -- Tab character
+- \c \%T -- Same as \c \%H:\%M:\%S
+- \c \%x -- Local date representation. **Note:** prefer using \c as::date
+- \c \%X -- Local time representation. **Note:** prefer using \c as::time
+- \c \%y -- Year [00,99]
+- \c \%Y -- 4 digits year. (2009)
+- \c \%Z -- Time Zone
+- \c \%\% -- Percent symbol
+
+Unsupported \c strftime flags are: \c \%C , \c \%u , \c \%U , \c \%V , \c \%w , \c \%W . Also, the \c O and \c E modifiers are not supported.
+
+
+\b General \b recommendations
+
+- Prefer using generic date-time manipulators rather than specifying the full format using \c as::ftime.
+- Remember that current calendars may be not Gregorian.
+
+
+\section formatting_internals Internals
+
+Formatting information is stored in a stream class by using the \c xalloc, \c pword, and \c register_callback member functions
+of \c std::ios_base . All the information is stored and managed using a special object bound to \c iostream, and the manipulators just
+change its state.
+
+When a number is written to or read from the stream, a custom Boost.Locale facet accesses the object and checks the required formatting
+information. Then it creates a special object that actually formats the number and caches it in the \c iostream. The
+next time a number is written to the stream, the same formatter would be used unless some flags had changed and formatter object is
+invalid.
+
+*/
+
+

Added: trunk/libs/locale/doc/gendoc.sh
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/gendoc.sh 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,2 @@
+#!/bin/bash
+rm -fr html && doxygen && cp index.template.html html/index.html

Added: trunk/libs/locale/doc/gettext_for_windows.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/gettext_for_windows.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,88 @@
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page gettext_for_windows Using Gettext Tools on Windows
+
+In order to get the Gettext tools like \c msgfmt, \c msgmerge, \c xgettext for Windows you have
+basically several options:
+
+- Download the package from CppCMS project (where the Boost.Locale was developed originally)
+- Download the a set of packages from MinGW project
+- Build it on your own
+- Use Cygwin's packages
+
+\section gettext_for_windows_cppcms Getting gettext utilities from CppCMS project
+
+Boost.Locale was developed for needs of CppCMS project
+and thus CppCMS hosts a convince package for Windows users of pre-build, statically liked \c gettext
+runtime utilities like \c xgettext, \c msgfmt, etc.
+
+So you can download a zip file \c gettext-tools-static-XXX.zip from a CppCMS downloads page
+under boost_locale/gettext_for_windows.
+
+Extract the file and use the executable files inside.
+
+\section gettext_for_windows_mingw Getting Gettext via MinGW project
+
+MinGW project provides GNU tools for Windows, including GNU compilers and various runtime utilities.
+Thus you can always install full MinGW distribution including gettext tools. However, if you
+a want minimalistic runtime version that allows you to extract messages and create catalogs
+you need to download several packages manually.
+
+In order to install Gettext via MinGW distributing you need to download, a GCC's runtime,
+iconv library and gettext itself.
+
+So visit a downloads page of MinGW project
+and download following files (chose the latest versions of each package):
+
+- From: \c MinGW/BaseSystem/GCC/Version4/gcc-xxx/ \n
+ File: \c libgcc-xxx-mingw32-dll-1.tar.lzma
+- From \c MinGW/Gettext/gettext-yyy/ \n
+ Files: \c gettext-yyy-mingw32-dev.tar.lzma,
+ \c libgettextpo-yyy-mingw32-dll-0.tar.lzma,
+ \c libintl-yyy-mingw32-dll-8.tar.lzma
+- From \c MinGW/libiconv/libiconv-zzz/ \n
+ Files: \c libiconv-zzz-mingw32-dll-2.tar.lzma, \c libcharset-zzz-mingw32-dll-1.tar.lzma
+
+For example, at June 23, 2011 it was:
+
+- GNU Runtime: \c libgcc-4.5.2-1-mingw32-dll-1.tar.lzma
+- \c iconv: \c libiconv-1.13.1-1-mingw32-dll-2.tar.lzma and \c libcharset-1.13.1-1-mingw32-dll-1.tar.lzma
+- \c gettext: \c libintl-0.17-1-mingw32-dll-8.tar.lzma, \c libgettextpo-0.17-1-mingw32-dll-0.tar.lzma and \c gettext-0.17-1-mingw32-dev.tar.lzma.
+
+After you download the packages, extract all the files to the same directory using tools like
+\c 7zip and you'll get all the executables and \c dll's you need under \c bin subdirectory.
+
+\note the version on MinGW site is slightly outdated (0.17.1) while gettext provides currently 0.18.1.
+
+\section gettext_for_windows_build Building latest version on your own.
+
+You can build your own version of GNU Gettext using MinGW environment, you'll need to have up-to-date gcc compiler
+and the shell, you'll need to install iconv first and then build a gettext with it.
+
+Basic and simplest way would be to open a MinGW shell
+
+Build \c iconv:
+
+\code
+cd libiconv-SOMEVERSION
+./configure --prefix=c:/mygettext --disable-shared
+make
+make install
+cd ..
+cd gettext-SOMEVERSION
+./configure --prefix=c:/mygettext --disable-shared --with-libiconv-prefix=c:/mygettext
+make
+make install
+\endcode
+
+And now you have in <tt>c:\\mygettext\\bin</tt> all appropriate executable files
+to use.
+
+\section gettext_for_windows_cygwin Using Cygwin
+
+If you already have Cygwin - just use gettext tools provided with it.
+
+*/
+
+

Added: trunk/libs/locale/doc/glossary.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/glossary.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,71 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page glossary Glossary
+
+- \anchor term_bmp <b>Basic Multilingual Plane (BMP)</b> -- a part of
+ the <i>Universal Character Set</i> with code points in the range U-0000--U-FFFF.
+ The most commonly used UCS characters lay in this plane, including all Western, Cyrillic, Hebrew, Thai, Arabic and CJK characters.
+ However there are many characters that lay outside the BMP and they are absolutely required for correct support of East Asian languages.
+- \b Code \b Point -- a unique number that represents a "character" in the Universal Character Set. Code points lay in the range of
+ 0-0x10FFFF, and are usually displayed as U+XXXX or U+XXXXXX, where X represents a hexadecimal digit.
+- \anchor term_collation \b Collation -- a sorting order for text, usually alphabetical. It can differ between languages and countries, even for the same
+ characters.
+- \b Encoding - a representation of a character set. Some encodings are capable of representing the full UCS range, like UTF-8, and
+ others can only represent a subset of it -- ISO-8859-8 represents only a small subset of about 250 characters of the UCS.
+ \n
+ Non-Unicode encodings are still very popular, for example the Latin-1 (or ISO-8859-1) encoding covers most of the characters for
+ Western European languages and significantly simplifies the processing of text for applications designed to handle only such languages.
+ \n
+ For Boost.Locale you should provide an eight-bit (\c std::string) encoding as part of the locale name, like \c en_US.UTF-8 or
+ \c he_IL.cp1255 . \c UTF-8 is recommended.
+- \b Facet - or \c std::locale::facet -- a base class that every object that describes a specific locale is derived from. Facets can be
+ added to a locale to provide additional culture information.
+- \b Formatting - representation of various values according to locale preferences. For example, a number 1234.5 (C representation)
+ should be displayed as 1,234.5 in the US locale and 1.234,5 in the Russian locale. The date November 1st, 2005 would be represented as
+ 11/01/2005 in the United States, and 01.11.2005 in Russia. This is an important part of localization.
+ \n
+ For example: does "You have to bring 134,230 kg of rice on 04/01/2010" means "134 tons of rice on the first of April" or "134 kg 230 g
+ of rice on January 4th"? That is quite different.
+- \b Gettext - The GNU localization library used for message formatting. Today it is the de-facto standard localization library in the
+ Open Source world. Boost.Locale message formatting is entirely built on Gettext message catalogs.
+- \b Locale - a set of parameters that define specific preferences for users in different cultures. It is generally defined by language,
+ country, variants, and encoding, and provides information like: collation order, date-time formatting, message formatting, number
+ formatting and many others. In C++, locale information is represented by the \c std::locale class.
+- \b Message \b Formatting -- the representation of user interface strings in the user's language. The process of translation of UI
+ strings is generally done using some dictionary provided by the program's translator.
+- \b Message \b Domain -- in \a gettext terms, the keyword that represents a message catalog. This is usually an application name. When
+ \a gettext and Boost.Locale search for a specific message catalog, they search in the specified path for a file named after the domain.
+- \anchor term_normalization
+ \b Normalization - Unicode normalization is the process of converting strings to a standard form, suitable for text processing and
+ comparison. For example, character "ü" can be represented by a single code point or a combination of the character "u" and the
+ diaeresis "¨". Normalization is an important part of Unicode text processing.
+ \n
+ Normalization is not locale-dependent, but because it is an important part of Unicode processing, it is included in the Boost.Locale
+ library.
+- \b UCS-2 - a fixed-width Unicode encoding, capable of representing only code points in the <i>Basic Multilingual Plane (BMP)</i>.
+ It is a legacy encoding and is not recommended for use.
+- \b Unicode -- the industry standard that defines the representation and manipulation of text suitable for most languages and countries.
+ It should not be confused with the <i>Universal Character Set</i>, it is a much larger standard that also defines algorithms like
+ bidirectional display order, Arabic shaping, etc.
+- <b>Universal Character Set (UCS)</b> - an international standard that defines a set of characters for many scripts and their
+ \a code \a points.
+- \b UTF-8 - a variable-width Unicode transformation format. Each UCS code point is represented as a sequence of between 1 and 4 octets
+ that can be easily distinguished. It includes ASCII as a subset. It is the most popular Unicode encoding for web applications, data
+ transfer and storage, and is the de-facto standard encoding for most POSIX operation systems.
+- \b UTF-16 - a variable-width Unicode transformation format. Each UCS code point is represented as a sequence of one or two 16-bit words.
+ It is a very popular encoding for platforms such as the Win32 API, Java, C#, Python, etc. However, it is frequently confused with the
+ _UCS-2_ fixed-width encoding, which can only represent characters in the <i>Basic Multilingual Plane (BMP)</i>.
+ \n
+ This encoding is used for \c std::wstring under the Win32 platform, where <tt>sizeof(wchar_t)==2</tt>.
+- \b UTF-32/UCS-4 - a fixed-width Unicode transformation format, where each code point is represented as a single 32-bit word. It has
+ the advantage of simple code point representation, but is wasteful in terms of memory usage. It is used for \c std::wstring encoding
+ for most POSIX platforms, where <tt>sizeof(wchar_t)==4</tt>.
+- \anchor term_case_folding <b>Case Folding</b> - is a process of converting a text to case independent representation.
+ For example case folding for a word "Grüßen" is "grüssen" - where the letter "ß" is represented in case independent way as "ss".
+- \anchor term_title_case <b>Title Case</b> -
+ Is a text conversion where the words are capitalized. For example "hello world" is converted
+ to "Hello World"
+
+*/
+
+

Added: trunk/libs/locale/doc/header.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/header.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>$title</title>
+<link href="$relpath$tabs.css" rel="stylesheet" type="text/css"/>
+<link href="$relpath$doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>

Added: trunk/libs/locale/doc/html/annotated.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/annotated.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Class List</h1> </div>
+</div>
+<div class="contents">
+Here are the classes, structs, unions and interfaces with brief descriptions:<table>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">boost::locale::util::base_converter</a></td><td class="indexvalue">This class represent a simple stateless converter from UCS-4 and to UCS-4 for each single code point </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format&lt; CharType &gt;</a></td><td class="indexvalue">Printf like class that allows type-safe and locale aware message formatting </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td class="indexvalue">This class represents a message that can be converted to a specific locale message </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a></td><td class="indexvalue">This facet generates an index for boundary analysis for a given text </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></td><td class="indexvalue">This class represents a boundary point in the text </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td class="indexvalue">This class holds an index of <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary points</a> and allows iterating over them </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html">boost::locale::boundary::break_info</a></td><td class="indexvalue">This structure is used for representing boundary point that follows the offset </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td class="indexvalue">This class provides an access to general calendar information </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1calendar__facet.html">boost::locale::calendar_facet</a></td><td class="indexvalue">Facet that generates calendar for specific locale </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td class="indexvalue">Collation facet </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a></td><td class="indexvalue">Base class that includes collation level flags </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1locale_1_1comparator.html">boost::locale::comparator&lt; CharType, default_level &gt;</a></td><td class="indexvalue">This class can be used in STL algorithms and containers for comparison of strings with a level other than primary </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1conv_1_1conversion__error.html">boost::locale::conv::conversion_error</a></td><td class="indexvalue">The excepton that is thrown in case of conversion error </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1converter.html">boost::locale::converter&lt; Char &gt;</a></td><td class="indexvalue">The facet that implements text manipulation </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a></td><td class="indexvalue">This class provides base flags for text manipulation. It is used as base for converter facet </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td class="indexvalue">This class represents a date time and allows to perform various operation according to the locale settings </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1date__time__duration.html">boost::locale::date_time_duration</a></td><td class="indexvalue">This class represents a period: a pair of two <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> objects </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1date__time__error.html">boost::locale::date_time_error</a></td><td class="indexvalue">This error is thrown in case of invalid state that occurred </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">boost::locale::date_time_period</a></td><td class="indexvalue">This class represents a pair of period_type and the integer values that describes its amount. For example 3 days or 4 years </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">boost::locale::date_time_period_set</a></td><td class="indexvalue">This class that represents a set of periods, </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">boost::locale::gnu_gettext::messages_info::domain</a></td><td class="indexvalue">This type represents GNU Gettext domain name for the messages </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td class="indexvalue">Major class used for locale generation </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a></td><td class="indexvalue">Smart pointer similar to std::auto_ptr but it is non-copyable and the underlying object has the same constness as the pointer itself (unlike an ordinary pointer) </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td class="indexvalue">Facet that holds general information about locale </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html">boost::locale::conv::invalid_charset_error</a></td><td class="indexvalue">This exception is thrown in case of use of unsupported or invalid character set </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td class="indexvalue">This class holds an external data - beyond existing fmtflags that std::ios_base holds </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1localization__backend.html">boost::locale::localization_backend</a></td><td class="indexvalue">This class represents a localization backend that can be used for localizing your application </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">boost::locale::localization_backend_manager</a></td><td class="indexvalue">Localization backend manager is a class that holds various backend and allows creation of their combination or selection </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format&lt; CharType &gt;</a></td><td class="indexvalue">This facet provides message formatting abilities </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a></td><td class="indexvalue">This structure holds all information required for creating gnu-gettext message catalogs, </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">boost::locale::period::period_type</a></td><td class="indexvalue">This class holds a type that represents certain period of time like year, hour, second and so on </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1locale_1_1posix__time.html">boost::locale::posix_time</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td class="indexvalue">Segment object that represents a pair of two iterators that define the range where this segment exits and a rule that defines it </td></tr>
+ <tr><td class="indexkey"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td class="indexvalue">This class holds an index of segments in the text range and allows to iterate over them </td></tr>
+</table>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/appendix.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/appendix.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Appendix</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Appendix </h1> </div>
+</div>
+<div class="contents">
+<h2><a class="anchor" id="appendix_toc"></a>
+Table of Contents</h2>
+<ul>
+<li><a class="el" href="rationale.html">Design Rationale</a></li>
+<li><a class="el" href="faq.html">Frequently Asked Questions</a></li>
+<li><a class="el" href="default_encoding_under_windows.html">Default Encoding under Microsoft Windows</a></li>
+<li><a class="el" href="running_examples_under_windows.html">Running Examples under Microsoft Windows</a></li>
+<li><a class="el" href="gettext_for_windows.html">Using Gettext Tools on Windows</a></li>
+<li><a class="el" href="glossary.html">Glossary</a></li>
+<li><a class="el" href="tested_compilers_and_paltforms.html">Tested Compilers and Platforms</a></li>
+<li><a class="el" href="status_of_cpp0x_characters_support.html">Status of C++0x char16_t/char32_t support</a></li>
+<li><a class="el" href="special_thanks.html">Special Thanks</a> </li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/bc_s.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/boundary_8cpp-example.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/boundary_8cpp-example.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boundary.cpp</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boundary.cpp</h1> </div>
+</div>
+<div class="contents">
+<p>Example of using segment_index</p>
+<div class="fragment"><pre class="fragment"><span class="comment">//</span>
+<span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<span class="comment">//</span>
+<span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<span class="comment">//</span>
+<span class="preprocessor">#include &lt;boost/locale.hpp&gt;</span>
+<span class="preprocessor">#include &lt;iostream&gt;</span>
+<span class="preprocessor">#include &lt;cassert&gt;</span>
+<span class="preprocessor">#include &lt;ctime&gt;</span>
+
+<span class="keywordtype">int</span> main()
+{
+ <span class="keyword">using namespace </span>boost::locale;
+ <span class="keyword">using namespace </span>std;
+
+ <a name="_a0"></a><a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">generator</a> gen;
+ <span class="comment">// Make system default locale global</span>
+ std::locale loc = gen(<span class="stringliteral">&quot;&quot;</span>);
+ locale::global(loc);
+ cout.imbue(loc);
+
+
+ <span class="keywordtype">string</span> text=<span class="stringliteral">&quot;Hello World! あにま! Linux2.6 and Windows7 is word and number. שָלוֹם עוֹלָם!&quot;</span>;
+
+ cout&lt;&lt;text&lt;&lt;endl;
+
+ <a name="_a1"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">boundary::ssegment_index</a> index(<a name="a2"></a><a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6" title="Analyse the text for word boundaries.">boundary::word</a>,text.begin(),text.end());
+ <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">boundary::ssegment_index::iterator</a> p,e;
+
+ <span class="keywordflow">for</span>(p=index.begin(),e=index.end();p!=e;++p) {
+ cout&lt;&lt;<span class="stringliteral">&quot;Part [&quot;</span>&lt;&lt;*p&lt;&lt;<span class="stringliteral">&quot;] has &quot;</span>;
+ <span class="keywordflow">if</span>(p-&gt;rule() &amp; <a name="a3"></a><a class="code" href="group__boundary.html#gaac78a3a6b9e671e253a2591cb56a479b" title="Word that appear to be a number.">boundary::word_number</a>)
+ cout&lt;&lt;<span class="stringliteral">&quot;number(s) &quot;</span>;
+ <span class="keywordflow">if</span>(p-&gt;rule() &amp; <a name="a4"></a><a class="code" href="group__boundary.html#ga8b7e6ce2fcb185845fa85a1a4c42b3c4" title="Word that contains letters, excluding kana and ideographic characters.">boundary::word_letter</a>)
+ cout&lt;&lt;<span class="stringliteral">&quot;letter(s) &quot;</span>;
+ <span class="keywordflow">if</span>(p-&gt;rule() &amp; <a name="a5"></a><a class="code" href="group__boundary.html#ga52d8c63e1f3f8c898c645352206a78ef" title="Word that contains kana characters.">boundary::word_kana</a>)
+ cout&lt;&lt;<span class="stringliteral">&quot;kana character(s) &quot;</span>;
+ <span class="keywordflow">if</span>(p-&gt;rule() &amp; <a name="a6"></a><a class="code" href="group__boundary.html#ga705ab96f9e62810c8ed977c90d404ef8" title="Word that contains ideographic characters.">boundary::word_ideo</a>)
+ cout&lt;&lt;<span class="stringliteral">&quot;ideographic character(s) &quot;</span>;
+ <span class="keywordflow">if</span>(p-&gt;rule() &amp; <a name="a7"></a><a class="code" href="group__boundary.html#ga90cf4f01b95658f659685377226677e7" title="Not a word, like white space or punctuation mark.">boundary::word_none</a>)
+ cout&lt;&lt;<span class="stringliteral">&quot;no word characters&quot;</span>;
+ cout&lt;&lt;endl;
+ }
+
+ index.map(<a name="a8"></a><a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641ae80c964112541d88af9b875dafb6605d" title="Analyse the text for character boundaries.">boundary::character</a>,text.begin(),text.end());
+
+ <span class="keywordflow">for</span>(p=index.begin(),e=index.end();p!=e;++p) {
+ cout&lt;&lt;<span class="stringliteral">&quot;|&quot;</span> &lt;&lt;*p ;
+ }
+ cout&lt;&lt;<span class="stringliteral">&quot;|\n\n&quot;</span>;
+
+ index.map(<a name="a9"></a><a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a72895419fdd7219b3695cf0abd602ea4" title="Analyse the text for positions suitable for line breaks.">boundary::line</a>,text.begin(),text.end());
+
+ <span class="keywordflow">for</span>(p=index.begin(),e=index.end();p!=e;++p) {
+ cout&lt;&lt;<span class="stringliteral">&quot;|&quot;</span> &lt;&lt;*p ;
+ }
+ cout&lt;&lt;<span class="stringliteral">&quot;|\n\n&quot;</span>;
+
+ index.map(<a name="a10"></a><a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a88aa1509eace7589f5df87d4694871e9" title="Analyse the text for Find sentence boundaries.">boundary::sentence</a>,text.begin(),text.end());
+
+ <span class="keywordflow">for</span>(p=index.begin(),e=index.end();p!=e;++p) {
+ cout&lt;&lt;<span class="stringliteral">&quot;|&quot;</span> &lt;&lt;*p ;
+ }
+ cout&lt;&lt;<span class="stringliteral">&quot;|\n\n&quot;</span>;
+
+}
+
+<span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div> </div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/boundary_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/boundary_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/boundary.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/boundary.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_BOUNDARY_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_BOUNDARY_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/boundary/types.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#include &lt;boost/locale/boundary/facets.hpp&gt;</span>
+<a name="l00013"></a>00013 <span class="preprocessor">#include &lt;boost/locale/boundary/segment.hpp&gt;</span>
+<a name="l00014"></a>00014 <span class="preprocessor">#include &lt;boost/locale/boundary/boundary_point.hpp&gt;</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include &lt;boost/locale/boundary/index.hpp&gt;</span>
+<a name="l00016"></a>00016
+<a name="l00017"></a>00017 <span class="preprocessor">#endif</span>
+<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/boundary__point_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/boundary__point_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,187 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/boundary/boundary_point.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/boundary/boundary_point.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_BOUNDARY_BOUNDARY_POINT_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_BOUNDARY_BOUNDARY_POINT_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/boundary/types.hpp&gt;</span>
+<a name="l00012"></a>00012
+<a name="l00013"></a>00013 <span class="keyword">namespace </span>boost {
+<a name="l00014"></a>00014 <span class="keyword">namespace </span>locale {
+<a name="l00015"></a><a class="code" href="namespaceboost_1_1locale_1_1boundary.html">00015</a> <span class="keyword">namespace </span>boundary {
+<a name="l00016"></a>00016
+<a name="l00020"></a>00020
+<a name="l00047"></a>00047 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> IteratorType&gt;
+<a name="l00048"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">00048</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point</a> {
+<a name="l00049"></a>00049 <span class="keyword">public</span>:
+<a name="l00053"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">00053</a> <span class="keyword">typedef</span> IteratorType iterator_type;
+<a name="l00054"></a>00054
+<a name="l00058"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#aabbbee60c2c97ffd95210206a86c9298">00058</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#aabbbee60c2c97ffd95210206a86c9298">boundary_point</a>() : rule_(0) {}
+<a name="l00059"></a>00059
+<a name="l00063"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a653a1c0d7480006ff647a656c74521df">00063</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#aabbbee60c2c97ffd95210206a86c9298">boundary_point</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a> p,<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> r) :
+<a name="l00064"></a>00064 iterator_(p),
+<a name="l00065"></a>00065 rule_(r)
+<a name="l00066"></a>00066 {
+<a name="l00067"></a>00067 }
+<a name="l00071"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a5ea18137618a1a84ff0b75c3b166c495">00071</a> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af279d5382e1b28c2ce82035c1929ea66">iterator</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a> i)
+<a name="l00072"></a>00072 {
+<a name="l00073"></a>00073 iterator_ = i;
+<a name="l00074"></a>00074 }
+<a name="l00078"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a757b28e11c66f9871d3f51fe93a51bdb">00078</a> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a75e2f04f0f7c1065470f722d1f2e004b">rule</a>(<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> r)
+<a name="l00079"></a>00079 {
+<a name="l00080"></a>00080 rule_ = r;
+<a name="l00081"></a>00081 }
+<a name="l00085"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af279d5382e1b28c2ce82035c1929ea66">00085</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af279d5382e1b28c2ce82035c1929ea66">iterator</a>()<span class="keyword"> const </span>
+<a name="l00086"></a>00086 <span class="keyword"> </span>{
+<a name="l00087"></a>00087 <span class="keywordflow">return</span> iterator_;
+<a name="l00088"></a>00088 }
+<a name="l00092"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a75e2f04f0f7c1065470f722d1f2e004b">00092</a> <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a75e2f04f0f7c1065470f722d1f2e004b">rule</a>()<span class="keyword"> const</span>
+<a name="l00093"></a>00093 <span class="keyword"> </span>{
+<a name="l00094"></a>00094 <span class="keywordflow">return</span> rule_;
+<a name="l00095"></a>00095 }
+<a name="l00099"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a058ffbcbd43fc41a40a4a1cf5be987f2">00099</a> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a058ffbcbd43fc41a40a4a1cf5be987f2">operator==</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point</a> <span class="keyword">const</span> &amp;other)<span class="keyword"> const</span>
+<a name="l00100"></a>00100 <span class="keyword"> </span>{
+<a name="l00101"></a>00101 <span class="keywordflow">return</span> iterator_ == other.iterator_ &amp;&amp; rule_ = other.rule_;
+<a name="l00102"></a>00102 }
+<a name="l00106"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a4347b22dd7edb8af49d1316a6f86d0c2">00106</a> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a4347b22dd7edb8af49d1316a6f86d0c2">operator!=</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point</a> <span class="keyword">const</span> &amp;other)<span class="keyword"> const</span>
+<a name="l00107"></a>00107 <span class="keyword"> </span>{
+<a name="l00108"></a>00108 <span class="keywordflow">return</span> !(*<span class="keyword">this</span>==other);
+<a name="l00109"></a>00109 }
+<a name="l00113"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a87a96a1745184ff7495db87943aca424">00113</a> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a058ffbcbd43fc41a40a4a1cf5be987f2">operator==</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a> <span class="keyword">const</span> &amp;other)<span class="keyword"> const</span>
+<a name="l00114"></a>00114 <span class="keyword"> </span>{
+<a name="l00115"></a>00115 <span class="keywordflow">return</span> iterator_ == other;
+<a name="l00116"></a>00116 }
+<a name="l00120"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a4cd03f39d75bb054be9a0ae23189fa7a">00120</a> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a4347b22dd7edb8af49d1316a6f86d0c2">operator!=</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a> <span class="keyword">const</span> &amp;other)<span class="keyword"> const</span>
+<a name="l00121"></a>00121 <span class="keyword"> </span>{
+<a name="l00122"></a>00122 <span class="keywordflow">return</span> iterator_ != other;
+<a name="l00123"></a>00123 }
+<a name="l00124"></a>00124
+<a name="l00128"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#aa2dc88b4d02151aea939a01b7fc88730">00128</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#aa2dc88b4d02151aea939a01b7fc88730">operator iterator_type </a>()<span class="keyword">const</span>
+<a name="l00129"></a>00129 <span class="keyword"> </span>{
+<a name="l00130"></a>00130 <span class="keywordflow">return</span> iterator_;
+<a name="l00131"></a>00131 }
+<a name="l00132"></a>00132
+<a name="l00133"></a>00133 <span class="keyword">private</span>:
+<a name="l00134"></a>00134 <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a> iterator_;
+<a name="l00135"></a>00135 <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> rule_;
+<a name="l00136"></a>00136
+<a name="l00137"></a>00137 };
+<a name="l00141"></a>00141 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;
+<a name="l00142"></a><a class="code" href="group__boundary.html#ga43283ecda927605b1b802a3c3306bfb1">00142</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga43283ecda927605b1b802a3c3306bfb1">operator==</a>(BaseIterator <span class="keyword">const</span> &amp;l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point&lt;BaseIterator&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00143"></a>00143 {
+<a name="l00144"></a>00144 <span class="keywordflow">return</span> r==l;
+<a name="l00145"></a>00145 }
+<a name="l00149"></a>00149 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;
+<a name="l00150"></a><a class="code" href="group__boundary.html#ga11ff477ceecc7cbc274d998c3676126e">00150</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga11ff477ceecc7cbc274d998c3676126e">operator!=</a>(BaseIterator <span class="keyword">const</span> &amp;l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point&lt;BaseIterator&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00151"></a>00151 {
+<a name="l00152"></a>00152 <span class="keywordflow">return</span> r!=l;
+<a name="l00153"></a>00153 }
+<a name="l00154"></a>00154
+<a name="l00156"></a>00156
+<a name="l00157"></a><a class="code" href="namespaceboost_1_1locale_1_1boundary.html#ae8869288e9cc33aa283078654ef0dae2">00157</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point&lt;std::string::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">sboundary_point</a>;
+<a name="l00158"></a><a class="code" href="namespaceboost_1_1locale_1_1boundary.html#a7828f6884b8a654b9b14fc1ab96ce0d9">00158</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point&lt;std::wstring::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">wsboundary_point</a>;
+<a name="l00159"></a>00159 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR16_T</span>
+<a name="l00160"></a><a class="code" href="namespaceboost_1_1locale_1_1boundary.html#a64be9f4ec7ff991f73fc793a80f1fadc">00160</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point&lt;std::u16string::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">u16sboundary_point</a>;
+<a name="l00161"></a>00161 <span class="preprocessor"> #endif</span>
+<a name="l00162"></a>00162 <span class="preprocessor"></span><span class="preprocessor"> #ifdef BOOST_HAS_CHAR32_T</span>
+<a name="l00163"></a><a class="code" href="namespaceboost_1_1locale_1_1boundary.html#a9eb3d6aa912102a115dc6ff80fe9c22d">00163</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point&lt;std::u32string::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">u32sboundary_point</a>;
+<a name="l00164"></a>00164 <span class="preprocessor"> #endif</span>
+<a name="l00165"></a>00165 <span class="preprocessor"></span>
+<a name="l00166"></a><a class="code" href="namespaceboost_1_1locale_1_1boundary.html#ade880ec8623692375afbfd460d28163c">00166</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point&lt;char const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">cboundary_point</a>;
+<a name="l00167"></a><a class="code" href="namespaceboost_1_1locale_1_1boundary.html#a1c06a716653700b74922e4cc9df0da1b">00167</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point&lt;wchar_t const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">wcboundary_point</a>;
+<a name="l00168"></a>00168 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR16_T</span>
+<a name="l00169"></a><a class="code" href="namespaceboost_1_1locale_1_1boundary.html#a79a665091fadab07227c0b129ddcde9d">00169</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point&lt;char16_t const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">u16cboundary_point</a>;
+<a name="l00170"></a>00170 <span class="preprocessor"> #endif</span>
+<a name="l00171"></a>00171 <span class="preprocessor"></span><span class="preprocessor"> #ifdef BOOST_HAS_CHAR32_T</span>
+<a name="l00172"></a><a class="code" href="namespaceboost_1_1locale_1_1boundary.html#aaa106d43f8b06fec14964e19c55356fb">00172</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point&lt;char32_t const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">u32cboundary_point</a>;
+<a name="l00173"></a>00173 <span class="preprocessor"> #endif</span>
+<a name="l00174"></a>00174 <span class="preprocessor"></span>
+<a name="l00175"></a>00175
+<a name="l00176"></a>00176 } <span class="comment">// boundary</span>
+<a name="l00177"></a>00177 } <span class="comment">// locale</span>
+<a name="l00178"></a>00178 } <span class="comment">// boost</span>
+<a name="l00179"></a>00179
+<a name="l00180"></a>00180
+<a name="l00181"></a>00181 <span class="preprocessor">#endif</span>
+<a name="l00182"></a>00182 <span class="preprocessor"></span>
+<a name="l00183"></a>00183 <span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/boundary_analysys.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/boundary_analysys.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,386 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Boundary analysis</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="using_boost_locale.html">Using Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Boundary analysis </h1> </div>
+</div>
+<div class="contents">
+<ul>
+<li><a class="el" href="boundary_analysys.html#boundary_analysys_basics">Basics</a></li>
+<li><a class="el" href="boundary_analysys.html#boundary_analysys_segments">Iterating Over Segments</a><ul>
+<li><a class="el" href="boundary_analysys.html#boundary_analysys_segments_basics">Basic Iteration</a></li>
+<li><a class="el" href="boundary_analysys.html#boundary_analysys_segments_rules">Using Rules</a></li>
+<li><a class="el" href="boundary_analysys.html#boundary_analysys_segments_search">Locating Segments</a></li>
+</ul>
+</li>
+<li><a class="el" href="boundary_analysys.html#boundary_analysys_break">Iterating Over Boundary Points</a><ul>
+<li><a class="el" href="boundary_analysys.html#boundary_analysys_break_basics">Basic Iteration</a></li>
+<li><a class="el" href="boundary_analysys.html#boundary_analysys_break_rules">Using Rules</a></li>
+<li><a class="el" href="boundary_analysys.html#boundary_analysys_break_search">Locating Boundary Points</a></li>
+</ul>
+</li>
+</ul>
+<h2><a class="anchor" id="boundary_analysys_basics"></a>
+Basics</h2>
+<p>Boost.Locale provides a boundary analysis tool, allowing you to split text into characters, words, or sentences, and find appropriate places for line breaks.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>This task is not a trivial task. </dd></dl>
+<dl class="user"><dt><b></b></dt><dd>A Unicode code point and a character are not equivalent, for example: Hebrew word Shalom - "שָלוֹם" that consists of 4 characters and 6 code points (4 base letters and 2 diacritical marks) </dd></dl>
+<dl class="user"><dt><b></b></dt><dd>Words may not be separated by space characters in some languages like in Japanese or Chinese.</dd></dl>
+<p>Boost.Locale provides 2 major classes for boundary analysis:</p>
+<ul>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a> - an object that holds an index of segments in the text (like words, characters, sentences). It provides an access to <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a> objects via iterators.</li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a> - an object that holds an index of boundary points in the text. It allows to iterate over the <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a> objects.</li>
+</ul>
+<p>Each of the classes above use an iterator type as template parameter. Both of these classes accept in their constructor:</p>
+<ul>
+<li>A flag that defines boundary analysis <a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a>.</li>
+<li>The pair of iterators that define the text range that should be analysed</li>
+<li>A locale parameter (if not given the global one is used)</li>
+</ul>
+<p>For example: </p>
+<div class="fragment"><pre class="fragment"><span class="keyword">namespace </span>ba=boost::locale::boundary;
+std::string text= ... ;
+std::locale loc = ... ;
+ba::segment_index&lt;std::string::const_iterator&gt; map(<a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6" title="Analyse the text for word boundaries.">ba::word</a>,text.begin(),text.end(),loc);
+</pre></div><p>Each of them provide a members <code>begin()</code>, <code>end()</code> and <code>find()</code> that allow to iterate over the selected segments or boundaries in the text or find a location of a segment or boundary for given iterator.</p>
+<p>Convenience a typedefs like <a class="el" href="group__boundary.html#gad4785439a3f03ee455c93830b8f1366c">ssegment_index</a> or <a class="el" href="group__boundary.html#gabcb5bcc788909afeb8c68d857284cb59">wcboundary_point_index</a> provided as well, where "w", "u16" and "u32" prefixes define a character type <code>wchar_t</code>, <code>char16_t</code> and <code>char32_t</code> and "c" and "s" prefixes define whether <code>std::basic_string&lt;CharType&gt;::const_iterator</code> or <code>CharType const *</code> are used.</p>
+<h2><a class="anchor" id="boundary_analysys_segments"></a>
+Iterating Over Segments</h2>
+<h2><a class="anchor" id="boundary_analysys_segments_basics"></a>
+Basic Iteration</h2>
+<p>The text segments analysis is done using <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a> class.</p>
+<p>It provides a bidirectional iterator that returns <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a> object. The segment object represents a pair of iterators that define this segment and a rule according to which it was selected. It can be automatically converted to <code>std::basic_string</code> object.</p>
+<p>To perform boundary analysis, we first create an index object and then iterate over it:</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"><span class="keyword">using namespace </span>boost::locale::boundary;
+<a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">boost::locale::generator</a> gen;
+std::string text=<span class="stringliteral">&quot;To be or not to be, that is the question.&quot;</span>
+<span class="comment">// Create mapping of text for token iterator using global locale.</span>
+<a class="code" href="group__boundary.html#gad4785439a3f03ee455c93830b8f1366c">ssegment_index</a> map(<a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6" title="Analyse the text for word boundaries.">word</a>,text.begin(),text.end(),gen(<span class="stringliteral">&quot;en_US.UTF-8&quot;</span>));
+<span class="comment">// Print all &quot;words&quot; -- chunks of word boundary</span>
+<span class="keywordflow">for</span>(<a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">ssegment_index::iterator</a> it=map.begin(),e=map.end();it!=e;++it)
+ std::cout &lt;&lt;<span class="stringliteral">&quot;\&quot;&quot;</span>&lt;&lt; * it &lt;&lt; <span class="stringliteral">&quot;\&quot;, &quot;</span>;
+std::cout &lt;&lt; std::endl;
+</pre></div><p>Would print:</p>
+<div class="fragment"><pre class="fragment">
+"To", " ", "be", " ", "or", " ", "not", " ", "to", " ", "be", ",", " ", "that", " ", "is", " ", "the", " ", "question", ".",
+</pre></div><p>This sentence "生きるか死ぬか、それが問題だ。" (from Tatoeba database) would be split into following segments in <code>ja_JP.UTF-8</code> (Japanese) locale:</p>
+<div class="fragment"><pre class="fragment">
+"生", "きるか", "死", "ぬか", "、", "それが", "問題", "だ", "。",
+</pre></div><p>The boundary analysis that is done by Boost.Locale is much more complicated then just splitting the text according to white space characters.</p>
+<p>Of course it may be not per</p>
+<h2><a class="anchor" id="boundary_analysys_segments_rules"></a>
+Using Rules</h2>
+<p>The segments selection can be customized using <a class="el" href="group__boundary.html#gad19735180401edb15acbdbbeb21e5a73">rule()</a> and <a class="el" href="group__boundary.html#ga205fd51daa439a18527675e663a0802f">full_select()</a> member functions.</p>
+<p>By default segment_index's iterator return each text segment defined by two boundary points regardless the way they were selected. Thus in the example above we could see text segments like "." or " " that were selected as words.</p>
+<p>Using a <code>rule()</code> member function we can specify a binary mask of rules we want to use for selection of the boundary points using <a class="el" href="group__boundary.html#bl_boundary_word_rules">word</a>, <a class="el" href="group__boundary.html#bl_boundary_line_rules">line</a> and <a class="el" href="group__boundary.html#bl_boundary_sentence_rules">sentence</a> boundary rules.</p>
+<p>For example, by calling</p>
+<div class="fragment"><pre class="fragment">map.rule(<a class="code" href="group__boundary.html#ga3ab98808dbb1cc4a346dcc2554c9d8dc" title="Any word including numbers, 0 is special flag, equivalent to 15.">word_any</a>);
+</pre></div><p>Before starting the iteration process, specify a selection mask that fetches: numbers, letter, Kana letters and ideographic characters ignoring all non-word related characters like white space or punctuation marks.</p>
+<p>So the code:</p>
+<div class="fragment"><pre class="fragment"><span class="keyword">using namespace </span>boost::locale::boundary;
+std::string text=<span class="stringliteral">&quot;To be or not to be, that is the question.&quot;</span>
+<span class="comment">// Create mapping of text for token iterator using global locale.</span>
+<a class="code" href="group__boundary.html#gad4785439a3f03ee455c93830b8f1366c">ssegment_index</a> map(<a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6" title="Analyse the text for word boundaries.">word</a>,text.begin(),text.end());
+<span class="comment">// Define a rule</span>
+map.rule(<a class="code" href="group__boundary.html#ga3ab98808dbb1cc4a346dcc2554c9d8dc" title="Any word including numbers, 0 is special flag, equivalent to 15.">word_any</a>);
+<span class="comment">// Print all &quot;words&quot; -- chunks of word boundary</span>
+<span class="keywordflow">for</span>(<a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">ssegment_index::iterator</a> it=map.begin(),e=map.end();it!=e;++it)
+ std::cout &lt;&lt;<span class="stringliteral">&quot;\&quot;&quot;</span>&lt;&lt; * it &lt;&lt; <span class="stringliteral">&quot;\&quot;, &quot;</span>;
+std::cout &lt;&lt; std::endl;
+</pre></div><p>Would print:</p>
+<div class="fragment"><pre class="fragment">
+"To", "be", "or", "not", "to", "be", "that", "is", "the", "question",
+</pre></div><p>And the for given text="生きるか死ぬか、それが問題だ。" and rule(<a class="el" href="group__boundary.html#ga705ab96f9e62810c8ed977c90d404ef8">word_ideo</a>), the example above would print.</p>
+<div class="fragment"><pre class="fragment">
+"生", "死", "問題",
+</pre></div><p>You can access specific rules the segments where selected it using <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a5b36a522d7013306617dbcccc9919343">segment::rule()</a> member function. Using a bit-mask of rules.</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"><a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">boost::locale::generator</a> gen;
+<span class="keyword">using namespace </span>boost::locale::boundary;
+std::string text=<span class="stringliteral">&quot;生きるか死ぬか、それが問題だ。&quot;</span>;
+<a class="code" href="group__boundary.html#gad4785439a3f03ee455c93830b8f1366c">ssegment_index</a> map(<a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6" title="Analyse the text for word boundaries.">word</a>,text.begin(),text.end(),gen(<span class="stringliteral">&quot;ja_JP.UTF-8&quot;</span>));
+<span class="keywordflow">for</span>(<a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">ssegment_index::iterator</a> it=map.begin(),e=map.end();it!=e;++it) {
+ std::cout &lt;&lt; <span class="stringliteral">&quot;Segment &quot;</span> &lt;&lt; *it &lt;&lt; <span class="stringliteral">&quot; contains: &quot;</span>;
+ <span class="keywordflow">if</span>(it-&gt;rule() &amp; <a class="code" href="group__boundary.html#ga90cf4f01b95658f659685377226677e7" title="Not a word, like white space or punctuation mark.">word_none</a>)
+ std::cout &lt;&lt; <span class="stringliteral">&quot;white space or punctuation marks &quot;</span>;
+ <span class="keywordflow">if</span>(it-&gt;rule() &amp; <a class="code" href="group__boundary.html#ga52d8c63e1f3f8c898c645352206a78ef" title="Word that contains kana characters.">word_kana</a>)
+ std::cout &lt;&lt; <span class="stringliteral">&quot;kana characters &quot;</span>;
+ <span class="keywordflow">if</span>(it-&gt;rule() &amp; <a class="code" href="group__boundary.html#ga705ab96f9e62810c8ed977c90d404ef8" title="Word that contains ideographic characters.">word_ideo</a>)
+ std::cout &lt;&lt; <span class="stringliteral">&quot;ideographic characters&quot;</span>;
+ std::cout&lt;&lt; std::endl;
+}
+</pre></div><p>Would print</p>
+<div class="fragment"><pre class="fragment">
+Segment 生 contains: ideographic characters
+Segment きるか contains: kana characters
+Segment æ­» contains: ideographic characters
+Segment ぬか contains: kana characters
+Segment 、 contains: white space or punctuation marks
+Segment それが contains: kana characters
+Segment 問題 contains: ideographic characters
+Segment だ contains: kana characters
+Segment 。 contains: white space or punctuation marks
+</pre></div><p>One important things that should be noted that each segment is defined by a pair of boundaries and the rule of its ending point defines if it is selected or not.</p>
+<p>In some cases it may be not what we actually look like.</p>
+<p>For example we have a text:</p>
+<div class="fragment"><pre class="fragment">
+Hello! How
+are you?
+</pre></div><p>And we want to fetch all sentences from the text.</p>
+<p>The <a class="el" href="group__boundary.html#bl_boundary_sentence_rules">sentence rules</a> have two options:</p>
+<ul>
+<li>Split the text on the point where sentence terminator like ".!?" detected: <a class="el" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b">sentence_term</a></li>
+<li>Split the text on the point where sentence separator like "line feed" detected: <a class="el" href="group__boundary.html#gaf67883341dd3d8f786e7281d40790000">sentence_sep</a></li>
+</ul>
+<p>Naturally to ignore sentence separators we would call <a class="el" href="group__boundary.html#gad19735180401edb15acbdbbeb21e5a73">segment_index::rule(rule_type v)</a> with sentence_term parameter and then run the iterator.</p>
+<div class="fragment"><pre class="fragment"><a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">boost::locale::generator</a> gen;
+<span class="keyword">using namespace </span>boost::locale::boundary;
+std::string text= <span class="stringliteral">&quot;Hello! How\n&quot;</span>
+ <span class="stringliteral">&quot;are you?\n&quot;</span>;
+<a class="code" href="group__boundary.html#gad4785439a3f03ee455c93830b8f1366c">ssegment_index</a> map(<a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a88aa1509eace7589f5df87d4694871e9" title="Analyse the text for Find sentence boundaries.">sentence</a>,text.begin(),text.end(),gen(<span class="stringliteral">&quot;en_US.UTF-8&quot;</span>));
+map.rule(<a class="code" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b" title="The sentence was terminated with a sentence terminator like &amp;quot;.&amp;quot;, &amp;quot;!&amp;quot; possible fol...">sentence_term</a>);
+<span class="keywordflow">for</span>(<a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">ssegment_index::iterator</a> it=map.begin(),e=map.end();it!=e;++it)
+ std::cout &lt;&lt; <span class="stringliteral">&quot;Sentence [&quot;</span> &lt;&lt; *it &lt;&lt; <span class="stringliteral">&quot;]&quot;</span> &lt;&lt; std::endl;
+</pre></div><p>However we would get the expected segments: </p>
+<div class="fragment"><pre class="fragment">
+Sentence [Hello! ]
+Sentence [are you?
+]
+</pre></div><p>The reason is that "How\n" is still considered a sentence but selected by different rule.</p>
+<p>This behavior can be changed by setting <a class="el" href="group__boundary.html#ga205fd51daa439a18527675e663a0802f">segment_index::full_select(bool)</a> to <code>true</code>. It would force iterator to join the current segment with all previous segments that may not fit the required rule.</p>
+<p>So we add this line:</p>
+<div class="fragment"><pre class="fragment">map.full_select(<span class="keyword">true</span>);
+</pre></div><p>Right after "map.rule(sentence_term);" and get expected output:</p>
+<div class="fragment"><pre class="fragment">
+Sentence [Hello! ]
+Sentence [How
+are you?
+]
+</pre></div><h3><a class="anchor" id="boundary_analysys_segments_search"></a>
+Locating Segments</h3>
+<p>Sometimes it is useful to find a segment that some specific iterator is pointing on.</p>
+<p>For example a user had clicked at specific point, we want to select a word on this location.</p>
+<p><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a> provides <a class="el" href="group__boundary.html#ga2480236106971797460187777f2a4411">find(base_iterator p)</a> member function for this purpose.</p>
+<p>This function returns the iterator to the segmet such that <em>p</em> points to.</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment">text=<span class="stringliteral">&quot;to be or &quot;</span>;
+<a class="code" href="group__boundary.html#gad4785439a3f03ee455c93830b8f1366c">ssegment_index</a> map(<a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6" title="Analyse the text for word boundaries.">word</a>,text.begin(),text.end(),gen(<span class="stringliteral">&quot;en_US.UTF-8&quot;</span>));
+ssegment_index::iterator p = map.find(text.begin() + 4);
+<span class="keywordflow">if</span>(p!=map.end())
+ std::cout &lt;&lt; *p &lt;&lt; std::endl;
+</pre></div><p>Would print:</p>
+<div class="fragment"><pre class="fragment">
+be
+</pre></div><dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<p>if the iterator lays inside the segment this segment returned. If the segment does not fit the selection rules, then the segment following requested position is returned.</p>
+<p>For example: For <a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6">word</a> boundary analysis with <a class="el" href="group__boundary.html#ga3ab98808dbb1cc4a346dcc2554c9d8dc">word_any</a> rule:</p>
+<ul>
+<li>"t|o be or ", would point to "to" - the iterator in the middle of segment "to".</li>
+<li>"to |be or ", would point to "be" - the iterator at the beginning of the segment "be"</li>
+<li>"to| be or ", would point to "be" - the iterator does is not point to segment with required rule so next valid segment is selected "be".</li>
+<li>"to be or| ", would point to end as not valid segment found.</li>
+</ul>
+<h2><a class="anchor" id="boundary_analysys_break"></a>
+Iterating Over Boundary Points</h2>
+<h2><a class="anchor" id="boundary_analysys_break_basics"></a>
+Basic Iteration</h2>
+<p>The <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a> is similar to <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a> in its interface but as a different role. Instead of returning text chunks (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>s, it returns <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a> object that represents a position in text - a base iterator used that is used for iteration of the source text C++ characters. The <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a> object also provides a <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a757b28e11c66f9871d3f51fe93a51bdb">rule()</a> member function that defines a rule this boundary was selected according to.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>The beginning and the ending of the text are considered boundary points, so even an empty text consists of at least one boundary point.</dd></dl>
+<p>Lets see an example of selecting first two sentences from a text:</p>
+<div class="fragment"><pre class="fragment"><span class="keyword">using namespace </span>boost::locale::boundary;
+<a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">boost::locale::generator</a> gen;
+
+<span class="comment">// our text sample</span>
+std::string <span class="keyword">const</span> text=<span class="stringliteral">&quot;First sentence. Second sentence! Third one?&quot;</span>;
+<span class="comment">// Create an index </span>
+<a class="code" href="group__boundary.html#ga485e82cdd9debd15dc4fd6f57be10727" title="convenience typedef">sboundary_point_index</a> map(<a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a88aa1509eace7589f5df87d4694871e9" title="Analyse the text for Find sentence boundaries.">sentence</a>,text.begin(),text.end(),gen(<span class="stringliteral">&quot;en_US.UTF-8&quot;</span>));
+
+<span class="comment">// Count two boundary points</span>
+<a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">sboundary_point_index::iterator</a> p = map.begin(),e=map.end();
+<span class="keywordtype">int</span> count = 0;
+<span class="keywordflow">while</span>(p!=e &amp;&amp; count &lt; 2) {
+ ++count;
+ ++p;
+}
+
+<span class="keywordflow">if</span>(p!=e) {
+ std::cout &lt;&lt; <span class="stringliteral">&quot;First two sentences are: &quot;</span>
+ &lt;&lt; std::string(text.begin(),p-&gt;iterator())
+ &lt;&lt; std::endl;
+}
+<span class="keywordflow">else</span> {
+ std::cout &lt;&lt;<span class="stringliteral">&quot;There are less then two sentences in this &quot;</span>
+ &lt;&lt;<span class="stringliteral">&quot;text: &quot;</span> &lt;&lt; text &lt;&lt; std::endl;
+}
+</pre></div><p>Would print:</p>
+<div class="fragment"><pre class="fragment">
+First two sentences are: First sentence. Second sentence!
+</pre></div><h2><a class="anchor" id="boundary_analysys_break_rules"></a>
+Using Rules</h2>
+<p>Similarly to the <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a> the <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a> provides a <a class="el" href="group__boundary.html#ga56e63913f51109e05a24a7136472a975">rule(rule_type mask)</a> member function to filter boundary points that interest us.</p>
+<p>It allows to set <a class="el" href="group__boundary.html#bl_boundary_word_rules">word</a>, <a class="el" href="group__boundary.html#bl_boundary_line_rules">line</a> and <a class="el" href="group__boundary.html#bl_boundary_sentence_rules">sentence</a> rules for filtering boundary points.</p>
+<p>Lets change an example above a little:</p>
+<div class="fragment"><pre class="fragment"><span class="comment">// our text sample</span>
+std::string <span class="keyword">const</span> text= <span class="stringliteral">&quot;First sentence. Second\n&quot;</span>
+ <span class="stringliteral">&quot;sentence! Third one?&quot;</span>;
+</pre></div><p>If we run our program as is on the sample above we would get: </p>
+<div class="fragment"><pre class="fragment">
+First two sentences are: First sentence. Second
+</pre></div><p>Which is not something that we really expected. As the "Second\n" is considered an independent sentence that was separated by a line separator "Line Feed".</p>
+<p>However, we can set set a rule <a class="el" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b">sentence_term</a> and the iterator would use only boundary points that are created by a sentence terminators like ".!?".</p>
+<p>So by adding: </p>
+<div class="fragment"><pre class="fragment">map.rule(<a class="code" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b" title="The sentence was terminated with a sentence terminator like &amp;quot;.&amp;quot;, &amp;quot;!&amp;quot; possible fol...">sentence_term</a>);
+</pre></div><p>Right after the generation of the index we would get the desired output:</p>
+<div class="fragment"><pre class="fragment">
+First two sentences are: First sentence. Second
+sentence!
+</pre></div><p>You can also use <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a757b28e11c66f9871d3f51fe93a51bdb">boundary_point::rule()</a> member function to learn about the reason this boundary point was created by comparing it with an appropriate mask.</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"><span class="keyword">using namespace </span>boost::locale::boundary;
+<a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">boost::locale::generator</a> gen;
+<span class="comment">// our text sample</span>
+std::string <span class="keyword">const</span> text= <span class="stringliteral">&quot;First sentence. Second\n&quot;</span>
+ <span class="stringliteral">&quot;sentence! Third one?&quot;</span>;
+<a class="code" href="group__boundary.html#ga485e82cdd9debd15dc4fd6f57be10727" title="convenience typedef">sboundary_point_index</a> map(<a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a88aa1509eace7589f5df87d4694871e9" title="Analyse the text for Find sentence boundaries.">sentence</a>,text.begin(),text.end(),gen(<span class="stringliteral">&quot;en_US.UTF-8&quot;</span>));
+
+<span class="keywordflow">for</span>(<a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">sboundary_point_index::iterator</a> p = map.begin(),e=map.end();p!=e;++p) {
+ <span class="keywordflow">if</span>(p-&gt;rule() &amp; <a class="code" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b" title="The sentence was terminated with a sentence terminator like &amp;quot;.&amp;quot;, &amp;quot;!&amp;quot; possible fol...">sentence_term</a>)
+ std::cout &lt;&lt; <span class="stringliteral">&quot;There is a sentence terminator: &quot;</span>;
+ <span class="keywordflow">else</span> <span class="keywordflow">if</span>(p-&gt;rule() &amp; <a class="code" href="group__boundary.html#gaf67883341dd3d8f786e7281d40790000" title="The sentence does not contain terminator like &amp;quot;.&amp;quot;, &amp;quot;!&amp;quot; but ended with hard separa...">sentence_sep</a>)
+ std::cout &lt;&lt; <span class="stringliteral">&quot;There is a sentence separator: &quot;</span>;
+ <span class="keywordflow">if</span>(p-&gt;rule()!=0) <span class="comment">// print if some rule exists</span>
+ std::cout &lt;&lt; <span class="stringliteral">&quot;[&quot;</span> &lt;&lt; std::string(text.begin(),p-&gt;iterator())
+ &lt;&lt; <span class="stringliteral">&quot;|&quot;</span> &lt;&lt; std::string(p-&gt;iterator(),text.end())
+ &lt;&lt; <span class="stringliteral">&quot;]\n&quot;</span>;
+}
+</pre></div><p>Would give the following output: </p>
+<div class="fragment"><pre class="fragment">
+There is a sentence terminator: [First sentence. |Second
+sentence! Third one?]
+There is a sentence separator: [First sentence. Second
+|sentence! Third one?]
+There is a sentence terminator: [First sentence. Second
+sentence! |Third one?]
+There is a sentence terminator: [First sentence. Second
+sentence! Third one?|]
+</pre></div><h3><a class="anchor" id="boundary_analysys_break_search"></a>
+Locating Boundary Points</h3>
+<p>Sometimes it is useful to find a specific boundary point according to given iterator.</p>
+<p><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a> provides a <a class="el" href="group__boundary.html#ga0bb71a287afca990e85b17246568492d">iterator find(base_iterator p)</a> member function.</p>
+<p>It would return an iterator to a boundary point on <em>p's</em> location or at the location following it if <em>p</em> does not point to appropriate position.</p>
+<p>For example, for word boundary analysis:</p>
+<ul>
+<li>If a base iterator points to "to |be", then the returned boundary point would be "to |be" (same position)</li>
+<li>If a base iterator points to "t|o be", then the returned boundary point would be "to| be" (next valid position)</li>
+</ul>
+<p>For example if we want to select 6 words around specific boundary point we can use following code:</p>
+<div class="fragment"><pre class="fragment"><span class="keyword">using namespace </span>boost::locale::boundary;
+<a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">boost::locale::generator</a> gen;
+<span class="comment">// our text sample</span>
+std::string <span class="keyword">const</span> text= <span class="stringliteral">&quot;To be or not to be, that is the question.&quot;</span>;
+
+<span class="comment">// Create a mapping</span>
+<a class="code" href="group__boundary.html#ga485e82cdd9debd15dc4fd6f57be10727" title="convenience typedef">sboundary_point_index</a> map(<a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6" title="Analyse the text for word boundaries.">word</a>,text.begin(),text.end(),gen(<span class="stringliteral">&quot;en_US.UTF-8&quot;</span>));
+<span class="comment">// Ignore wite space</span>
+map.rule(<a class="code" href="group__boundary.html#ga3ab98808dbb1cc4a346dcc2554c9d8dc" title="Any word including numbers, 0 is special flag, equivalent to 15.">word_any</a>);
+
+<span class="comment">// define our arbitraty point</span>
+std::string::const_iterator pos = text.begin() + 12; <span class="comment">// &quot;no|t&quot;;</span>
+
+<span class="comment">// Get the search range</span>
+<a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">sboundary_point_index::iterator</a>
+ begin =map.begin(),
+ end = map.end(),
+ it = map.find(pos); <span class="comment">// find a boundary</span>
+
+<span class="comment">// go 3 words backward</span>
+<span class="keywordflow">for</span>(<span class="keywordtype">int</span> count = 0;count &lt;3 &amp;&amp; it!=begin; count ++)
+ --it;
+
+<span class="comment">// Save the start</span>
+std::string::const_iterator start = *it;
+
+<span class="comment">// go 6 words forward</span>
+<span class="keywordflow">for</span>(<span class="keywordtype">int</span> count = 0;count &lt; 6 &amp;&amp; it!=end; count ++)
+ ++it;
+
+<span class="comment">// make sure we at valid position</span>
+<span class="keywordflow">if</span>(it==end)
+ --it;
+
+<span class="comment">// print the text</span>
+std::cout &lt;&lt; std::string(start,it-&gt;iterator()) &lt;&lt; std::endl;
+</pre></div><p>That would print:</p>
+<div class="fragment"><pre class="fragment">
+ be or not to be, that
+</pre></div> </div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/building_boost_locale.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/building_boost_locale.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,228 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Building The library</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Building The library </h1> </div>
+</div>
+<div class="contents">
+<p>Boost.Locale presently supports CMake build system and Boost Build.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>You need Boost 1.46 and above to use Boost.Build</dd></dl>
+<ul>
+<li><a class="el" href="building_boost_locale.html#building_boost_locale_bb">Building With Boost.Build</a></li>
+<li><a class="el" href="building_boost_locale.html#building_boost_locale_cmake">Building With CMake</a></li>
+<li><a class="el" href="building_boost_locale.html#binary_compatibility">Binary Compatibility</a></li>
+</ul>
+<h2><a class="anchor" id="building_boost_locale_bb"></a>
+Building With Boost.Build</h2>
+<p>You need Boost 1.46 and above to use Boost.Build, it includes important patches that allow you to build the library correctly.</p>
+<h3><a class="anchor" id="bb_building_deps"></a>
+Dependencies</h3>
+<ul>
+<li>Boost 1.46 and above.</li>
+<li>ICU library 3.6 or above is strongly recommended</li>
+<li>If no ICU library is given, iconv support is required under POSIX platforms.</li>
+</ul>
+<h3><a class="anchor" id="bb_building_proc"></a>
+Building Process</h3>
+<p>First of all we need to prepare our sources of Boost with Boost.Locale</p>
+<ul>
+<li>Download latest version of Boost and extract its sources</li>
+<li>Download the latest version of Boost.Locale and extract its sources</li>
+<li>Copy boost and libs subdirectory of Boost.Locale sources into the location of boost sources.</li>
+<li>Bootstrap latest bjam version running bootstrap.sh or bootstrap.bat.</li>
+</ul>
+<p>Now all you need to do is invoke bjam command:</p>
+<div class="fragment"><pre class="fragment">
+./bjam --with-locale stage
+</pre></div><p>Or on Windows </p>
+<div class="fragment"><pre class="fragment">
+.\bjam --with-locale stage
+</pre></div><p>If you are using custom ICU build or you are using Microsoft Windows you need to provide a path to location of ICU library using <code>-sICU_PATH</code> option</p>
+<p>For example:</p>
+<ul>
+<li>If your icu build is placed at <code>/opt/icu46</code> such that the files are placed like<br/>
+ <code>/opt/icu46/include/unicode/uversion</code>.h<br/>
+ <code>/opt/icu46/include/unicode/calendar</code>.h<br/>
+ <code></code>... <br/>
+ <code>/opt/icu46/lib/libicudata</code>.so <br/>
+ <code>/opt/icu46/lib/libicui18n</code>.so <br/>
+ <code></code>... <br/>
+ then you need to provide an option <code>-sICU_PATH=/opt/icu46</code> <div class="fragment"><pre class="fragment">
+ ./bjam --with-locale -sICU_PATH=/opt/icu46 stage
+ </pre></div></li>
+<li>If your icu build is placed at <code>c:\icu46</code> such that the files are placed like <br/>
+ <code>c:\icu46\include\unicode\uversion.h</code> <br/>
+ <code>c:\icu46\include\unicode\calendar.h</code> <br/>
+ <code>...</code> <br/>
+ <code>c:\icu46\bin\icudt.dll</code> <br/>
+ <code>c:\icu46\bin\icuin.dll</code> <br/>
+ <code>...</code> <br/>
+ <code>c:\icu46\lib\icudt.lib</code> <br/>
+ <code>c:\icu46\lib\icuin.lib</code> <br/>
+ <code>...</code> <br/>
+ then you need to provide an option <code>-sICU_PATH=c</code>:\icu46 <div class="fragment"><pre class="fragment">
+ .\bjam --with-locale -sICU_PATH=c:\icu46 stage
+ </pre></div></li>
+</ul>
+<dl class="note"><dt><b>Note:</b></dt><dd>Don't forget to put both debug and release versions of ICU libraries in this path when using Microsoft Visual Studio so Boost.Build will link correctly debug and release versions of boost_locale library.</dd></dl>
+<h2><a class="anchor" id="bb_build_opts"></a>
+Build Options</h2>
+<p>Boost.Locale supports following options with values <code>off</code> or <code>on</code> </p>
+<ul>
+<li><code>boost.locale.icu=off</code> disable build of ICU backend even if ICU library exists</li>
+<li><code>boost.locale.iconv=off</code> or <code>boost.locale.iconv=on</code> enable or disable use of iconv library. It is off by default on Windows and Solaris</li>
+<li><code>boost.locale.winapi=off</code> - disable winapi backend, it is on by default on Windows and Cygwin</li>
+<li><code>boost.locale.std=off</code> or <code>boost.locale.winapi=on</code> Disable or enable std backends. <code>std</code> backend is disabled by default when using Sun Studio.</li>
+<li><code>boost.locale.posix=on</code> or <code>boost.locale.posix=off</code> Enable or disable support of POSIX backend, it is on by default on Linux and Mac OS X</li>
+</ul>
+<p>Also Boost.Locale supports following options</p>
+<ul>
+<li><code>-sICU_PATH=/path/to/location/of/icu</code> - the location of custom ICU library</li>
+<li><code>-sICONV_PATH=/path/to/location/of/iconv</code> - the location of custom iconv library</li>
+</ul>
+<p>For example:</p>
+<ul>
+<li>Build the library on Windows with ICU backend only: <div class="fragment"><pre class="fragment">
+ .\bjam boost.locale.winapi=off boost.locale.std=off -sICU_PATH=c:\icu46 --with-locale stage
+ </pre></div></li>
+<li>Build the library on Linux with std backend only <div class="fragment"><pre class="fragment">
+ .\bjam boost.locale.posix=off boost.locale.icu=off --with-locale stage
+ </pre></div></li>
+</ul>
+<h2><a class="anchor" id="bb_build_test"></a>
+Running Unit Tests</h2>
+<p>You can run unit tests by invoking <code>bjam</code> with <code>libs/locale/test</code> project parameter </p>
+<div class="fragment"><pre class="fragment">
+./bjam libs/locale/test
+</pre></div><h2><a class="anchor" id="building_boost_locale_cmake"></a>
+Building With CMake</h2>
+<dl class="note"><dt><b>Note:</b></dt><dd>CMake build does not provide mangled library names like boost_locale-mt-gd.lib, so if you rely on auto-linking use Boost.Build.</dd></dl>
+<h3><a class="anchor" id="cmake_building_deps"></a>
+Dependencies</h3>
+<ul>
+<li>CMake 2.6 and above.</li>
+<li>Boost 1.35 and above.</li>
+<li>Boost.Thread (when using ICU or when using Boost &lt; 1.43)</li>
+<li>ICU library 3.6 or above is strongly recommended</li>
+<li>If no ICU library is given, iconv support is required under POSIX platforms.</li>
+</ul>
+<h3><a class="anchor" id="cmake_building_proc"></a>
+Building Process</h3>
+<p>The library build should be fairly simple for users familiar with CMake.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<ul>
+<li>MSVC Users: use <code>nmake</code> for building the library, MSVC projects are not supported!</li>
+<li>Windows users: don't forget to set the PATH environment variable to point to ICU's dlls.</li>
+</ul>
+<p>The simplest way to build the library is:</p>
+<ul>
+<li>Extract its sources</li>
+<li>Go to the sources directory</li>
+<li>Create a subdirectory named "build"</li>
+<li>Go into this directory and run: <div class="fragment"><pre class="fragment"> cmake ..
+ make
+ make test
+</pre></div> For windows you may need to specify: <div class="fragment"><pre class="fragment"> cmake -DCMAKE_INCLUDE_PATH=/path/to/icu/include:/path/to/boost/include -DCMAKE_LIBRARY_PATH=/path/to/icu/lib ..
+</pre></div> And then: <div class="fragment"><pre class="fragment"> nmake
+ nmake test
+</pre></div> Or <div class="fragment"><pre class="fragment"> make &amp;&amp; make test
+</pre></div> Depending on your compiler.</li>
+</ul>
+<h2><a class="anchor" id="cmake_build_opts"></a>
+Build Options</h2>
+<p>This options can be passed to CMake to configure the library to your needs.</p>
+<ul>
+<li><code>DISABLE_SHARED</code> - build only the static library</li>
+<li><code>DISABLE_STATIC</code> - build only the shared library</li>
+<li><code>DISABLE_ICU</code> - Disable the ICU backend (strongly discouraged)</li>
+<li><code>DISABLE_STD_BACKED</code> - Disable the "std" backend</li>
+<li><code>DISABLE_POSIX_BACKEND</code> - Disable the "posix" backend (ON by default on all but Linux and Mac OS X)</li>
+<li><code>DISABLE_WINAPI_BACKEND</code> - Disable the "winapi" backend (ON by default on POSIX platforms).</li>
+<li><code>DISABLE_ICONV</code> - Disable iconv-based conversion (ON by default on Windows)</li>
+</ul>
+<p>Useful CMake options:</p>
+<ul>
+<li><code>CMAKE_INCLUDE_PATH</code> - path to the boost library (if not system-wide)</li>
+<li><code>CMAKE_INSTALL_PREFIX</code> - installation path</li>
+<li><code>CMAKE_BUILD_TYPE</code> - default is Debug on Windows/MSVC and RelWithDebInfo on all other platforms.</li>
+</ul>
+<p>Examples:</p>
+<ul>
+<li>Build Boost.Locale with only the "icu" backend on Linux <div class="fragment"><pre class="fragment"> cmake -DDISABLE_POSIX_BACKEND=ON -DDISABLE_STD_BACKEND=ON -DDISABLE_ICONV=ON ..
+</pre></div></li>
+<li>Build Boost.Locale with the "winapi" and "std" backends on Windows <div class="fragment"><pre class="fragment"> cmake -G <span class="stringliteral">&quot;NMake Makefiles&quot;</span> -DDISABLE_ICU_BACKEND=ON -DCMAKE_INCLUDE_PATH=c:/boost_1_43_0 ..
+</pre></div></li>
+</ul>
+<h2><a class="anchor" id="binary_compatibility"></a>
+Binary Compatibility</h2>
+<p>Boost.Locale is built with binary compatibility in mind. Switching localization back ends on or off, or using iconv or not, does not affect binary compatibility. So if a dynamic library was built with all possible backends, other dynamic libraries compiled with, for example, only the <code>std</code>, <code>posix</code> or <code>winapi</code> backends would still be binary-compatible with it.</p>
+<p>However this definitely has an effect on some features. For example, if you try to use boundary analysis or a calendar facet when the library does not support the icu backend you would get an exception. </p>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/calendar_8cpp-example.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/calendar_8cpp-example.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: calendar.cpp</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>calendar.cpp</h1> </div>
+</div>
+<div class="contents">
+<p>Example of using date_time functions for generating calendar for current year.</p>
+<div class="fragment"><pre class="fragment"><span class="comment">//</span>
+<span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<span class="comment">//</span>
+<span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<span class="comment">//</span>
+<span class="preprocessor">#include &lt;boost/locale.hpp&gt;</span>
+<span class="preprocessor">#include &lt;iostream&gt;</span>
+<span class="preprocessor">#include &lt;iomanip&gt;</span>
+<span class="preprocessor">#include &lt;ctime&gt;</span>
+
+<span class="keywordtype">int</span> main()
+{
+ <span class="keyword">using namespace </span>boost::locale;
+
+ <a name="_a0"></a><a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">generator</a> gen;
+ std::locale::global(gen(<span class="stringliteral">&quot;&quot;</span>));
+ std::cout.imbue(std::locale());
+ <span class="comment">// Setup environment</span>
+
+ <a name="_a1"></a><a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">boost::locale::date_time</a> now;
+
+ <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> start=now;
+
+ <span class="comment">// Set the first day of the first month of this year</span>
+ start.set(<a name="a2"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">period::month</a>(),now.minimum(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">period::month</a>()));
+ start.set(<a name="a3"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">period::day</a>(),start.minimum(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">period::day</a>()));
+
+ <span class="keywordtype">int</span> current_year = <a name="a4"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a9ea8d1453bed512ee16bea3199fd92af">period::year</a>(now);
+
+
+ <span class="comment">// Display current year</span>
+ std::cout &lt;&lt; <a name="a5"></a><a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<span class="stringliteral">&quot;{1,ftime=&#39;%Y&#39;}&quot;</span>) % now &lt;&lt; std::endl;
+
+ <span class="comment">//</span>
+ <span class="comment">// Run forward untill current year is the date</span>
+ <span class="comment">//</span>
+ <span class="keywordflow">for</span>(now=start; <a class="code" href="namespaceboost_1_1locale_1_1period.html#a9ea8d1453bed512ee16bea3199fd92af">period::year</a>(now) == current_year;) {
+
+ <span class="comment">// Print heading of month</span>
+ <span class="keywordflow">if</span>(<a name="_a6"></a><a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a>().is_gregorian())
+ std::cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<span class="stringliteral">&quot;{1,ftime=&#39;%B&#39;}&quot;</span>) % now &lt;&lt;std::endl;
+ <span class="keywordflow">else</span>
+ std::cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<span class="stringliteral">&quot;{1,ftime=&#39;%B&#39;} ({1,ftime=&#39;%Y-%m-%d&#39;,locale=en} - {2,locale=en,ftime=&#39;%Y-%m-%d&#39;})&quot;</span>)
+ % now
+ % <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>(now,now.maximum(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">period::day</a>())*<a class="code" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">period::day</a>()) &lt;&lt; std::endl;
+
+ <span class="keywordtype">int</span> first = <a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a>().first_day_of_week();
+
+ <span class="comment">// Print weeks days</span>
+ <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0;i&lt;7;i++) {
+ <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> tmp(now,<a name="a7"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">period::day_of_week</a>() * (first + i));
+ std::cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<span class="stringliteral">&quot;{1,w=8,ftime=&#39;%a&#39;} &quot;</span>) % tmp;
+ }
+ std::cout &lt;&lt; std::endl;
+
+ <span class="keywordtype">int</span> current_month = now / <a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">period::month</a>();
+ <span class="keywordtype">int</span> <a name="a8"></a><a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84ae9b554a2955deddf714757788819edf9" title="Skip illegal/unconvertable characters.">skip</a> = now / <a name="a9"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a57d6b8f97bd6604e13c6982ed0953678">period::day_of_week_local</a>() - 1;
+ <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0;i&lt;skip*9;i++)
+ std::cout &lt;&lt; <span class="charliteral">&#39; &#39;</span>;
+ <span class="keywordflow">for</span>(;now / <a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">period::month</a>() == current_month ;now += <a class="code" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">period::day</a>()) {
+ std::cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<span class="stringliteral">&quot;{1,w=8,ftime=&#39;%e&#39;} &quot;</span>) % now;
+ <span class="keywordflow">if</span>(now / <a class="code" href="namespaceboost_1_1locale_1_1period.html#a57d6b8f97bd6604e13c6982ed0953678">period::day_of_week_local</a>() == 7)
+ std::cout &lt;&lt; std::endl;
+ }
+ std::cout &lt;&lt; std::endl;
+ }
+
+}
+<span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div> </div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/charset_handling.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/charset_handling.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Character Set Conversions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="using_boost_locale.html">Using Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Character Set Conversions </h1> </div>
+</div>
+<div class="contents">
+<h2><a class="anchor" id="codecvt"></a>
+Convenience Interface</h2>
+<p>Boost.Locale provides <a class="el" href="group__codepage.html#gad659f9c9c8b291e2ac6af24c49b42e43">to_utf</a>, <a class="el" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a> and <a class="el" href="group__codepage.html#ga2de4d9d38004e5d7146abf2bd6a3df0b">utf_to_utf</a> functions in the <code><a class="el" href="namespaceboost_1_1locale_1_1conv.html" title="Namespace that contains all functions related to character set conversion.">boost::locale::conv</a></code> namespace. They are simple and convenient functions to convert a string to and from UTF-8/16/32 strings and strings using other encodings.</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment">std::string utf8_string = to_utf&lt;char&gt;(latin1_string,<span class="stringliteral">&quot;Latin1&quot;</span>);
+std::wstring wide_string = to_utf&lt;wchar_t&gt;(latin1_string,<span class="stringliteral">&quot;Latin1&quot;</span>);
+std::string latin1_string = <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(wide_string,<span class="stringliteral">&quot;Latin1&quot;</span>);
+std::string utf8_string2 = utf_to_utf&lt;char&gt;(wide_string);
+</pre></div><p>This function may use an explicit encoding name like "Latin1" or "ISO-8859-8", or use std::locale as a parameter to fetch this information from it. It also receives a policy parameter that tells it how to behave if the conversion can't be performed (i.e. an illegal or unsupported character is found). By default this function skips all illegal characters and tries to do the best it can, however, it is possible ask it to throw a <a class="el" href="classboost_1_1locale_1_1conv_1_1conversion__error.html">conversion_error</a> exception by passing the <code>stop</code> flag to it:</p>
+<div class="fragment"><pre class="fragment">std::wstring s=to_utf&lt;wchar_t&gt;(<span class="stringliteral">&quot;\xFF\xFF&quot;</span>,<span class="stringliteral">&quot;UTF-8&quot;</span>,stop);
+<span class="comment">// Throws because this string is illegal in UTF-8</span>
+</pre></div><h2><a class="anchor" id="codecvt_codecvt"></a>
+std::codecvt facet</h2>
+<p>Boost.Locale provides stream codepage conversion facets based on the <code>std::codecvt</code> facet. This allows conversion between wide-character encodings and 8-bit encodings like UTF-8, ISO-8859 or Shift-JIS.</p>
+<p>Most of compilers provide such facets, but:</p>
+<ul>
+<li>Under Windows MSVC does not support UTF-8 encodings at all.</li>
+<li>Under Linux the encodings are supported only if the required locales are generated. For example it may be impossible to create a <code>he_IL.CP1255</code> locale even when the <code>he_IL</code> locale is available.</li>
+</ul>
+<p>Thus Boost.Locale provides an option to generate code-page conversion facets for use with Boost.Iostreams filters or <code>std::wfstream</code>. For example:</p>
+<div class="fragment"><pre class="fragment"> std::locale loc= generator().generate(<span class="stringliteral">&quot;he_IL.UTF-8&quot;</span>);
+ std::wofstream file.
+ file.imbue(loc);
+ file.open(<span class="stringliteral">&quot;hello.txt&quot;</span>);
+ file &lt;&lt; L<span class="stringliteral">&quot;שלום!&quot;</span> &lt;&lt; endl;
+</pre></div><p>Would create a file <code>hello.txt</code> encoded as UTF-8 with "שלום!" (shalom) in it.</p>
+<h2><a class="anchor" id="codecvt_iostreams_integration"></a>
+Integration with Boost.Iostreams</h2>
+<p>You can use the <code>std::codecvt</code> facet directly, but this is quite tricky and requires accurate buffer and error management.</p>
+<p>You can use the <code>boost::iostreams::code_converter</code> class for stream-oriented conversions between the wide-character set and narrow locale character set.</p>
+<p>This is a sample program that converts wide to narrow characters for an arbitrary stream:</p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">#include &lt;boost/iostreams/stream.hpp&gt;</span>
+<span class="preprocessor">#include &lt;boost/iostreams/categories.hpp&gt;</span>
+<span class="preprocessor">#include &lt;boost/iostreams/code_converter.hpp&gt;</span>
+
+<span class="preprocessor">#include &lt;boost/locale.hpp&gt;</span>
+<span class="preprocessor">#include &lt;iostream&gt;</span>
+
+<span class="keyword">namespace </span>io = boost::iostreams;
+
+<span class="comment">// Device that consumes the converted text,</span>
+<span class="comment">// In our case it just writes to standard output</span>
+<span class="keyword">class </span>consumer {
+<span class="keyword">public</span>:
+ <span class="keyword">typedef</span> <span class="keywordtype">char</span> char_type;
+ <span class="keyword">typedef</span> io::sink_tag category;
+ std::streamsize write(<span class="keyword">const</span> <span class="keywordtype">char</span>* s, std::streamsize n)
+ {
+ std::cout.write(s,n);
+ <span class="keywordflow">return</span> n;
+ }
+};
+
+
+<span class="keywordtype">int</span> main()
+{
+ <span class="comment">// the device that converts wide characters</span>
+ <span class="comment">// to narrow</span>
+ <span class="keyword">typedef</span> io::code_converter&lt;consumer&gt; converter_device;
+ <span class="comment">// the stream that uses this device</span>
+ <span class="keyword">typedef</span> io::stream&lt;converter_device&gt; converter_stream;
+
+
+ consumer cons;
+ <span class="comment">// setup out converter to work</span>
+ <span class="comment">// with he_IL.UTF-8 locale </span>
+ converter_device dev;
+ <a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">boost::locale::generator</a> gen;
+ dev.imbue(gen(<span class="stringliteral">&quot;he_IL.UTF-8&quot;</span>));
+ dev.open(cons);
+ converter_stream stream;
+ stream.open(dev);
+ <span class="comment">// Now wide characters that are written</span>
+ <span class="comment">// to the stream would be given to</span>
+ <span class="comment">// our consumer as narrow characters </span>
+ <span class="comment">// in UTF-8 encoding</span>
+ stream &lt;&lt; L<span class="stringliteral">&quot;שלום&quot;</span> &lt;&lt; std::flush;
+}
+</pre></div><h2><a class="anchor" id="codecvt_limitations"></a>
+Limitations of std::codecvt</h2>
+<p>The Standard does not provide any information about <code>std::mbstate_t</code> that could be used to save intermediate code-page conversion states. It leaves the definition up to the compiler implementation, making it impossible to reimplement <code>std::codecvt&lt;wchar_t,char,mbstate_t&gt;</code> for stateful encodings. Thus, Boost.Locale's <code>codecvt</code> facet implementation may be used with stateless encodings like UTF-8, ISO-8859, and Shift-JIS, but not with stateful encodings like UTF-7 or SCSU.</p>
+<p><b>Recommendation:</b> Prefer the Unicode UTF-8 encoding for <code>char</code> based strings and files in your application.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<p>The implementation of codecvt for single byte encodings like ISO-8859-X and for UTF-8 is very efficent and would allow fast conversion of the content, however its performance may be sub-optimal for double-width encodings like Shift-JIS, due to the stateless problem described above. </p>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1abstract__calendar-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1abstract__calendar-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::abstract_calendar Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5ab5d1af0b2698fee942a1486dfcc6552b">absolute_maximum</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a28694319e58f559df9ca41b22f03427e">absolute_minimum</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a3d2648e95466623ba20502281e0208af">actual_maximum</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a5aa2c2d439c6e801e3bc48a35972932b">actual_minimum</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#afb8e3a4d2ad93274ec119dc3dd0b103a">adjust_value</a>(period::marks::period_mark p, update_type u, int difference)=0</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5">calendar_option_type</a> enum name</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a73bc2d023be4c6ac6a6f441f74ded2f9">clone</a>() const =0</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a83d87ff10ff6107dfd0405f1e8757ef8">current</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a7bd4c26f5a4260f6d9c91c615efc4b46">difference</a>(abstract_calendar const *other, period::marks::period_mark p) const =0</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a0c034dd6f135b7d9b6faad08d49715a8">get_option</a>(calendar_option_type opt) const =0</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a8900097c0b687393b053bc0420070815">get_time</a>() const =0</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a51f4b91d0dc2f9afa3920a771307d92f">get_timezone</a>() const =0</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a7eacfa5d8f37dfc839d0239c2fcdf64e">get_value</a>(period::marks::period_mark p, value_type v) const =0</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a75e80e0a10af4b2b8eb2fcab72e4b200">greatest_minimum</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5a69f0c20e321e3b914883869466122c61">is_dst</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5add910815d1ad0e97275b781223e869a9">is_gregorian</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a388661725182373d2f92b709034f85c9">least_maximum</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95aac5f9cb6e12a121b47b51434a3655c81">move</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#aa06fef77acaa6104e3cd2bc80ccc76d9">normalize</a>()=0</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95a704e0e917603c2a88de22f3426a3e20b">roll</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#aa20ae19bca185cc0fa4ab69d7f3c5883">same</a>(abstract_calendar const *other) const =0</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a9265206013005d9ac30cf723a7ffe032">set_option</a>(calendar_option_type opt, int v)=0</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#acb01268c84f27a8a736b715ab9e9557a">set_time</a>(posix_time const &amp;p)=0</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#aa17f0fd2e88d3da8fe7b12e98ad2d6c3">set_timezone</a>(std::string const &amp;tz)=0</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a15067ccf90a19e640051a30a6d3a2a7f">set_value</a>(period::marks::period_mark p, int value)=0</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95">update_type</a> enum name</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5">value_type</a> enum name</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><b>~abstract_calendar</b>() (defined in <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a>)</td><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></td><td><code> [inline, virtual]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1abstract__calendar.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1abstract__calendar.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,518 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::abstract_calendar Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Types &#124;
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::abstract_calendar Class Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::abstract_calendar" -->
+<p><code>#include &lt;<a class="el" href="date__time__facet_8hpp_source.html">boost/locale/date_time_facet.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5">value_type</a> { <br/>
+&nbsp;&nbsp;<a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a28694319e58f559df9ca41b22f03427e">absolute_minimum</a>,
+<a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a5aa2c2d439c6e801e3bc48a35972932b">actual_minimum</a>,
+<a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a75e80e0a10af4b2b8eb2fcab72e4b200">greatest_minimum</a>,
+<a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a83d87ff10ff6107dfd0405f1e8757ef8">current</a>,
+<br/>
+&nbsp;&nbsp;<a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a388661725182373d2f92b709034f85c9">least_maximum</a>,
+<a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a3d2648e95466623ba20502281e0208af">actual_maximum</a>,
+<a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5ab5d1af0b2698fee942a1486dfcc6552b">absolute_maximum</a>
+<br/>
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95">update_type</a> { <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95aac5f9cb6e12a121b47b51434a3655c81">move</a>,
+<a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95a704e0e917603c2a88de22f3426a3e20b">roll</a>
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5">calendar_option_type</a> { <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5add910815d1ad0e97275b781223e869a9">is_gregorian</a>,
+<a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5a69f0c20e321e3b914883869466122c61">is_dst</a>
+ }</td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a73bc2d023be4c6ac6a6f441f74ded2f9">clone</a> () const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a15067ccf90a19e640051a30a6d3a2a7f">set_value</a> (<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">period::marks::period_mark</a> p, int value)=0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#aa06fef77acaa6104e3cd2bc80ccc76d9">normalize</a> ()=0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a7eacfa5d8f37dfc839d0239c2fcdf64e">get_value</a> (<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">period::marks::period_mark</a> p, <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5">value_type</a> v) const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#acb01268c84f27a8a736b715ab9e9557a">set_time</a> (<a class="el" href="structboost_1_1locale_1_1posix__time.html">posix_time</a> const &amp;p)=0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structboost_1_1locale_1_1posix__time.html">posix_time</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a8900097c0b687393b053bc0420070815">get_time</a> () const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a9265206013005d9ac30cf723a7ffe032">set_option</a> (<a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5">calendar_option_type</a> opt, int v)=0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a0c034dd6f135b7d9b6faad08d49715a8">get_option</a> (<a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5">calendar_option_type</a> opt) const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#afb8e3a4d2ad93274ec119dc3dd0b103a">adjust_value</a> (<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">period::marks::period_mark</a> p, <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95">update_type</a> u, int difference)=0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a7bd4c26f5a4260f6d9c91c615efc4b46">difference</a> (<a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a> const *other, <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">period::marks::period_mark</a> p) const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#aa17f0fd2e88d3da8fe7b12e98ad2d6c3">set_timezone</a> (std::string const &amp;tz)=0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a51f4b91d0dc2f9afa3920a771307d92f">get_timezone</a> () const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#aa20ae19bca185cc0fa4ab69d7f3c5883">same</a> (<a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a> const *other) const =0</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This class defines generic calendar class, it is used by <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> and calendar objects internally. It is less useful for end users, but it is build for localization backend implementation </p>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="a5f1927f4c71fafa4712265e6b68958b5"></a><!-- doxytag: member="boost::locale::abstract_calendar::calendar_option_type" ref="a5f1927f4c71fafa4712265e6b68958b5" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5">boost::locale::abstract_calendar::calendar_option_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Information about calendar </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a5f1927f4c71fafa4712265e6b68958b5add910815d1ad0e97275b781223e869a9"></a><!-- doxytag: member="is_gregorian" ref="a5f1927f4c71fafa4712265e6b68958b5add910815d1ad0e97275b781223e869a9" args="" -->is_gregorian</em>&nbsp;</td><td>
+<p>Check if the calendar is Gregorian. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a5f1927f4c71fafa4712265e6b68958b5a69f0c20e321e3b914883869466122c61"></a><!-- doxytag: member="is_dst" ref="a5f1927f4c71fafa4712265e6b68958b5a69f0c20e321e3b914883869466122c61" args="" -->is_dst</em>&nbsp;</td><td>
+<p>Check if the current time is in daylight time savings. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a92cf9485b91d60b70ef00e183bdf4e95"></a><!-- doxytag: member="boost::locale::abstract_calendar::update_type" ref="a92cf9485b91d60b70ef00e183bdf4e95" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95">boost::locale::abstract_calendar::update_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>A way to update the value </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a92cf9485b91d60b70ef00e183bdf4e95aac5f9cb6e12a121b47b51434a3655c81"></a><!-- doxytag: member="move" ref="a92cf9485b91d60b70ef00e183bdf4e95aac5f9cb6e12a121b47b51434a3655c81" args="" -->move</em>&nbsp;</td><td>
+<p>Change the value up or down effecting others for example 1990-12-31 + 1 day = 1991-01-01. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a92cf9485b91d60b70ef00e183bdf4e95a704e0e917603c2a88de22f3426a3e20b"></a><!-- doxytag: member="roll" ref="a92cf9485b91d60b70ef00e183bdf4e95a704e0e917603c2a88de22f3426a3e20b" args="" -->roll</em>&nbsp;</td><td>
+<p>Change the value up or down not effecting others for example 1990-12-31 + 1 day = 1990-12-01. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="af786b3e65294d70769f2826ef95c7bd5"></a><!-- doxytag: member="boost::locale::abstract_calendar::value_type" ref="af786b3e65294d70769f2826ef95c7bd5" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5">boost::locale::abstract_calendar::value_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Type that defines how to fetch the value </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="af786b3e65294d70769f2826ef95c7bd5a28694319e58f559df9ca41b22f03427e"></a><!-- doxytag: member="absolute_minimum" ref="af786b3e65294d70769f2826ef95c7bd5a28694319e58f559df9ca41b22f03427e" args="" -->absolute_minimum</em>&nbsp;</td><td>
+<p>Absolute possible minimum for the value, for example for day is 1. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="af786b3e65294d70769f2826ef95c7bd5a5aa2c2d439c6e801e3bc48a35972932b"></a><!-- doxytag: member="actual_minimum" ref="af786b3e65294d70769f2826ef95c7bd5a5aa2c2d439c6e801e3bc48a35972932b" args="" -->actual_minimum</em>&nbsp;</td><td>
+<p>Actual minimal value for this period. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="af786b3e65294d70769f2826ef95c7bd5a75e80e0a10af4b2b8eb2fcab72e4b200"></a><!-- doxytag: member="greatest_minimum" ref="af786b3e65294d70769f2826ef95c7bd5a75e80e0a10af4b2b8eb2fcab72e4b200" args="" -->greatest_minimum</em>&nbsp;</td><td>
+<p>Maximal minimum value that can be for this period. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="af786b3e65294d70769f2826ef95c7bd5a83d87ff10ff6107dfd0405f1e8757ef8"></a><!-- doxytag: member="current" ref="af786b3e65294d70769f2826ef95c7bd5a83d87ff10ff6107dfd0405f1e8757ef8" args="" -->current</em>&nbsp;</td><td>
+<p>Current value of this period. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="af786b3e65294d70769f2826ef95c7bd5a388661725182373d2f92b709034f85c9"></a><!-- doxytag: member="least_maximum" ref="af786b3e65294d70769f2826ef95c7bd5a388661725182373d2f92b709034f85c9" args="" -->least_maximum</em>&nbsp;</td><td>
+<p>The last maximal value for this period, For example for Gregorian calendar day it is 28 </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="af786b3e65294d70769f2826ef95c7bd5a3d2648e95466623ba20502281e0208af"></a><!-- doxytag: member="actual_maximum" ref="af786b3e65294d70769f2826ef95c7bd5a3d2648e95466623ba20502281e0208af" args="" -->actual_maximum</em>&nbsp;</td><td>
+<p>Actual maximum, for it can be 28, 29, 30, 31 for day according to current month. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="af786b3e65294d70769f2826ef95c7bd5ab5d1af0b2698fee942a1486dfcc6552b"></a><!-- doxytag: member="absolute_maximum" ref="af786b3e65294d70769f2826ef95c7bd5ab5d1af0b2698fee942a1486dfcc6552b" args="" -->absolute_maximum</em>&nbsp;</td><td>
+<p>Maximal value, for Gregorian day it would be 31. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="afb8e3a4d2ad93274ec119dc3dd0b103a"></a><!-- doxytag: member="boost::locale::abstract_calendar::adjust_value" ref="afb8e3a4d2ad93274ec119dc3dd0b103a" args="(period::marks::period_mark p, update_type u, int difference)=0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void boost::locale::abstract_calendar::adjust_value </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">period::marks::period_mark</a>&nbsp;</td>
+ <td class="paramname"> <em>p</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95">update_type</a>&nbsp;</td>
+ <td class="paramname"> <em>u</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>difference</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Adjust period's <em>p</em> value by <em>difference</em> items using a update_type <em>u</em>. Note: not all values are adjustable </p>
+
+</div>
+</div>
+<a class="anchor" id="a73bc2d023be4c6ac6a6f441f74ded2f9"></a><!-- doxytag: member="boost::locale::abstract_calendar::clone" ref="a73bc2d023be4c6ac6a6f441f74ded2f9" args="() const =0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a>* boost::locale::abstract_calendar::clone </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Make a polymorphic copy of the calendar </p>
+
+</div>
+</div>
+<a class="anchor" id="a7bd4c26f5a4260f6d9c91c615efc4b46"></a><!-- doxytag: member="boost::locale::abstract_calendar::difference" ref="a7bd4c26f5a4260f6d9c91c615efc4b46" args="(abstract_calendar const *other, period::marks::period_mark p) const =0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual int boost::locale::abstract_calendar::difference </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a> const *&nbsp;</td>
+ <td class="paramname"> <em>other</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">period::marks::period_mark</a>&nbsp;</td>
+ <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Calculate the difference between this calendar and <em>other</em> in <em>p</em> units </p>
+
+</div>
+</div>
+<a class="anchor" id="a0c034dd6f135b7d9b6faad08d49715a8"></a><!-- doxytag: member="boost::locale::abstract_calendar::get_option" ref="a0c034dd6f135b7d9b6faad08d49715a8" args="(calendar_option_type opt) const =0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual int boost::locale::abstract_calendar::get_option </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5">calendar_option_type</a>&nbsp;</td>
+ <td class="paramname"> <em>opt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get option for calendar, currently only check if it is Gregorian calendar </p>
+
+</div>
+</div>
+<a class="anchor" id="a8900097c0b687393b053bc0420070815"></a><!-- doxytag: member="boost::locale::abstract_calendar::get_time" ref="a8900097c0b687393b053bc0420070815" args="() const =0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="structboost_1_1locale_1_1posix__time.html">posix_time</a> boost::locale::abstract_calendar::get_time </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get current time point </p>
+
+</div>
+</div>
+<a class="anchor" id="a51f4b91d0dc2f9afa3920a771307d92f"></a><!-- doxytag: member="boost::locale::abstract_calendar::get_timezone" ref="a51f4b91d0dc2f9afa3920a771307d92f" args="() const =0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual std::string boost::locale::abstract_calendar::get_timezone </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get current time zone, empty - system one </p>
+
+</div>
+</div>
+<a class="anchor" id="a7eacfa5d8f37dfc839d0239c2fcdf64e"></a><!-- doxytag: member="boost::locale::abstract_calendar::get_value" ref="a7eacfa5d8f37dfc839d0239c2fcdf64e" args="(period::marks::period_mark p, value_type v) const =0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual int boost::locale::abstract_calendar::get_value </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">period::marks::period_mark</a>&nbsp;</td>
+ <td class="paramname"> <em>p</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5">value_type</a>&nbsp;</td>
+ <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get specific value for period <em>p</em> according to a value_type <em>v</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="aa06fef77acaa6104e3cd2bc80ccc76d9"></a><!-- doxytag: member="boost::locale::abstract_calendar::normalize" ref="aa06fef77acaa6104e3cd2bc80ccc76d9" args="()=0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void boost::locale::abstract_calendar::normalize </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Recalculate all periods after setting them, should be called after use of <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a15067ccf90a19e640051a30a6d3a2a7f">set_value()</a> function. </p>
+
+</div>
+</div>
+<a class="anchor" id="aa20ae19bca185cc0fa4ab69d7f3c5883"></a><!-- doxytag: member="boost::locale::abstract_calendar::same" ref="aa20ae19bca185cc0fa4ab69d7f3c5883" args="(abstract_calendar const *other) const =0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool boost::locale::abstract_calendar::same </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a> const *&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Check of two calendars have same rules </p>
+
+</div>
+</div>
+<a class="anchor" id="a9265206013005d9ac30cf723a7ffe032"></a><!-- doxytag: member="boost::locale::abstract_calendar::set_option" ref="a9265206013005d9ac30cf723a7ffe032" args="(calendar_option_type opt, int v)=0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void boost::locale::abstract_calendar::set_option </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5">calendar_option_type</a>&nbsp;</td>
+ <td class="paramname"> <em>opt</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set option for calendar, for future use </p>
+
+</div>
+</div>
+<a class="anchor" id="acb01268c84f27a8a736b715ab9e9557a"></a><!-- doxytag: member="boost::locale::abstract_calendar::set_time" ref="acb01268c84f27a8a736b715ab9e9557a" args="(posix_time const &amp;p)=0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void boost::locale::abstract_calendar::set_time </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structboost_1_1locale_1_1posix__time.html">posix_time</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>p</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set current time point </p>
+
+</div>
+</div>
+<a class="anchor" id="aa17f0fd2e88d3da8fe7b12e98ad2d6c3"></a><!-- doxytag: member="boost::locale::abstract_calendar::set_timezone" ref="aa17f0fd2e88d3da8fe7b12e98ad2d6c3" args="(std::string const &amp;tz)=0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void boost::locale::abstract_calendar::set_timezone </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>tz</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set time zone, empty - use system </p>
+
+</div>
+</div>
+<a class="anchor" id="a15067ccf90a19e640051a30a6d3a2a7f"></a><!-- doxytag: member="boost::locale::abstract_calendar::set_value" ref="a15067ccf90a19e640051a30a6d3a2a7f" args="(period::marks::period_mark p, int value)=0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void boost::locale::abstract_calendar::set_value </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">period::marks::period_mark</a>&nbsp;</td>
+ <td class="paramname"> <em>p</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set specific <em>value</em> for period <em>p</em>, note not all values are settable.</p>
+<p>After call of set_value you may want to call <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#aa06fef77acaa6104e3cd2bc80ccc76d9">normalize()</a> function to make sure vall periods are updated, if you set sereral fields that are part of single date/time representation you should call set_value several times and then call <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#aa06fef77acaa6104e3cd2bc80ccc76d9">normalize()</a>.</p>
+<p>If <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#aa06fef77acaa6104e3cd2bc80ccc76d9">normalize()</a> is not called after set_value, the behavior is undefined </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="date__time__facet_8hpp_source.html">date_time_facet.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1basic__format-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1basic__format-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::basic_format&lt; CharType &gt; Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format&lt; CharType &gt;</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1basic__format.html#a4c885ae60a5b867863b79acb75feff9e">basic_format</a>(string_type format_string)</td><td><a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1basic__format.html#a155e8e60061da7461bbcc958d600c190">basic_format</a>(message_type const &amp;trans)</td><td><a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1basic__format.html#a45c16f2e69842b8d223d240bbd6e210a">char_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format&lt; CharType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1basic__format.html#a75213e5cc9d113f6b25e72542a4841f5">message_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format&lt; CharType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1basic__format.html#a63e45267da46ff25d09441ac52f21efc">operator%</a>(Formattible const &amp;object)</td><td><a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1basic__format.html#a6bc65d7993e3ab6ad51809ef8fb65400">str</a>(std::locale const &amp;loc=std::locale()) const </td><td><a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1basic__format.html#a6aba7e54f0065f2697d13ff8a859309a">stream_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format&lt; CharType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">string_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format&lt; CharType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1basic__format.html#a457c9228d13e80da3c807a51aa5ef6cd">write</a>(stream_type &amp;out) const </td><td><a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1basic__format.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1basic__format.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,323 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::basic_format&lt; CharType &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format&lt; CharType &gt;</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Classes &#124;
+Public Types &#124;
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::basic_format&lt; CharType &gt; Class Template Reference<br/>
+<small>
+[<a class="el" href="group__format.html">Format</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::basic_format" -->
+<p>a printf like class that allows type-safe and locale aware message formatting
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="format_8hpp_source.html">boost/locale/format.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><b>format_guard</b></td></tr>
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45c16f2e69842b8d223d240bbd6e210a"></a><!-- doxytag: member="boost::locale::basic_format::char_type" ref="a45c16f2e69842b8d223d240bbd6e210a" args="" -->
+typedef CharType&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1basic__format.html#a45c16f2e69842b8d223d240bbd6e210a">char_type</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Underlying character type. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; <a class="el" href="classboost_1_1locale_1_1basic__format.html#a45c16f2e69842b8d223d240bbd6e210a">char_type</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1basic__format.html#a75213e5cc9d113f6b25e72542a4841f5">message_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::basic_string<br class="typebreak"/>
+&lt; CharType &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">string_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6aba7e54f0065f2697d13ff8a859309a"></a><!-- doxytag: member="boost::locale::basic_format::stream_type" ref="a6aba7e54f0065f2697d13ff8a859309a" args="" -->
+typedef std::basic_ostream<br class="typebreak"/>
+&lt; CharType &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1basic__format.html#a6aba7e54f0065f2697d13ff8a859309a">stream_type</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">output stream type for this type of character <br/></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1basic__format.html#a4c885ae60a5b867863b79acb75feff9e">basic_format</a> (<a class="el" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">string_type</a> format_string)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1basic__format.html#a155e8e60061da7461bbcc958d600c190">basic_format</a> (<a class="el" href="classboost_1_1locale_1_1basic__message.html">message_type</a> const &amp;trans)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename Formattible &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1basic__format.html">basic_format</a> &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1basic__format.html#a63e45267da46ff25d09441ac52f21efc">operator%</a> (Formattible const &amp;object)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">string_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1basic__format.html#a6bc65d7993e3ab6ad51809ef8fb65400">str</a> (std::locale const &amp;loc=std::locale()) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1basic__format.html#a457c9228d13e80da3c807a51aa5ef6cd">write</a> (<a class="el" href="classboost_1_1locale_1_1basic__format.html#a6aba7e54f0065f2697d13ff8a859309a">stream_type</a> &amp;out) const </td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;typename CharType&gt;<br/>
+ class boost::locale::basic_format&lt; CharType &gt;</h3>
+
+<p>a printf like class that allows type-safe and locale aware message formatting </p>
+<p>This class creates a formatted message similar to printf or boost::format and receives formatted entries via operator %.</p>
+<p>For example </p>
+<div class="fragment"><pre class="fragment"> cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<span class="stringliteral">&quot;Hello {1}, you are {2} years old&quot;</span>) % name % age &lt;&lt; endl;
+</pre></div><p>Formatting is enclosed between curly brackets <code>{</code> <code>}</code> and defined by a comma separated list of flags in the format key[=value] value may also be text included between single quotes <code>'</code> that is used for special purposes where inclusion of non-ASCII text is allowed</p>
+<p>Including of literal <code>{</code> and <code>}</code> is possible by specifying double brackets <code>{{</code> and <code>}}</code> accordingly.</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"> cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<span class="stringliteral">&quot;The height of water at {1,time} is {2,num=fixed,precision=3}&quot;</span>) % <a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">time</a> % height;
+</pre></div><p>The special key -- a number without a value defines the position of an input parameter. List of keys:</p>
+<ul>
+<li><code></code>[0-9]+ -- digits, the index of a formatted parameter -- mandatory key.</li>
+<li><code>num</code> or <code>number</code> -- format a number. Optional values are:<ul>
+<li><code>hex</code> -- display hexadecimal number</li>
+<li><code>oct</code> -- display in octal format</li>
+<li><code>sci</code> or <code>scientific</code> -- display in scientific format</li>
+<li><code>fix</code> or <code>fixed</code> -- display in fixed format</li>
+</ul>
+For example <code>number=sci</code> </li>
+<li><code>cur</code> or <code>currency</code> -- format currency. Optional values are:</li>
+</ul>
+<ul>
+<li><code>iso</code> -- display using ISO currency symbol.</li>
+<li><code>nat</code> or <code>national</code> -- display using national currency symbol.</li>
+</ul>
+<ul>
+<li><code>per</code> or <code>percent</code> -- format percent value.</li>
+<li><code>date</code>, <code>time</code> , <code>datetime</code> or <code>dt</code> -- format date, time or date and time. Optional values are:<ul>
+<li><code>s</code> or <code>short</code> -- display in short format</li>
+<li><code>m</code> or <code>medium</code> -- display in medium format.</li>
+<li><code>l</code> or <code>long</code> -- display in long format.</li>
+<li><code>f</code> or <code>full</code> -- display in full format.</li>
+</ul>
+</li>
+<li><code>ftime</code> with string (quoted) parameter -- display as with <code>strftime</code> see, <code>as::ftime</code> manipulator</li>
+<li><code>spell</code> or <code>spellout</code> -- spell the number.</li>
+<li><code>ord</code> or <code>ordinal</code> -- format ordinal number (1st, 2nd... etc)</li>
+<li><code>left</code> or <code>&lt;</code> -- align to left.</li>
+<li><code>right</code> or <code>&gt;</code> -- align to right.</li>
+<li><code>width</code> or <code>w</code> -- set field width (requires parameter).</li>
+<li><code>precision</code> or <code>p</code> -- set precision (requires parameter).</li>
+<li><code>locale</code> -- with parameter -- switch locale for current operation. This command generates locale with formatting facets giving more fine grained control of formatting. For example: <div class="fragment"><pre class="fragment"> cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<span class="stringliteral">&quot;Today {1,date} ({1,date,locale=he_IL.UTF-8_at_calendar=hebrew,date} Hebrew Date)&quot;</span>) % date;
+</pre></div></li>
+<li><code>timezone</code> or <code>tz</code> -- the name of the timezone to display the time in. For example:<br/>
+ <div class="fragment"><pre class="fragment"> cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<span class="stringliteral">&quot;Time is: Local {1,time}, ({1,time,tz=EET} Eastern European Time)&quot;</span>) % date;
+</pre></div></li>
+<li><code>local</code> - display the time in local time</li>
+<li><code>gmt</code> - display the time in UTC time scale <div class="fragment"><pre class="fragment"> cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<span class="stringliteral">&quot;Local time is: {1,time,local}, universal time is {1,time,gmt}&quot;</span>) % time;
+</pre></div></li>
+</ul>
+<p>Invalid formatting strings are slightly ignored. This would prevent from translator to crash the program in unexpected location. </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a75213e5cc9d113f6b25e72542a4841f5"></a><!-- doxytag: member="boost::locale::basic_format::message_type" ref="a75213e5cc9d113f6b25e72542a4841f5" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt;<a class="el" href="classboost_1_1locale_1_1basic__format.html#a45c16f2e69842b8d223d240bbd6e210a">char_type</a>&gt; <a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1basic__message.html">message_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The translation message type </p>
+
+</div>
+</div>
+<a class="anchor" id="a0e1263d23f67aa38b4d857031fccf973"></a><!-- doxytag: member="boost::locale::basic_format::string_type" ref="a0e1263d23f67aa38b4d857031fccf973" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef std::basic_string&lt;CharType&gt; <a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">string_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>string type for this type of character </p>
+
+</div>
+</div>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a4c885ae60a5b867863b79acb75feff9e"></a><!-- doxytag: member="boost::locale::basic_format::basic_format" ref="a4c885ae60a5b867863b79acb75feff9e" args="(string_type format_string)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1basic__format.html">basic_format</a> </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">string_type</a>&nbsp;</td>
+ <td class="paramname"> <em>format_string</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a format class for <em>format_string</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="a155e8e60061da7461bbcc958d600c190"></a><!-- doxytag: member="boost::locale::basic_format::basic_format" ref="a155e8e60061da7461bbcc958d600c190" args="(message_type const &amp;trans)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1basic__format.html">basic_format</a> </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1basic__message.html">message_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>trans</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a format class using message <em>trans</em>. The message if translated first according to the rules of target locale and then interpreted as format string </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a63e45267da46ff25d09441ac52f21efc"></a><!-- doxytag: member="boost::locale::basic_format::operator%" ref="a63e45267da46ff25d09441ac52f21efc" args="(Formattible const &amp;object)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+<div class="memtemplate">
+template&lt;typename Formattible &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1basic__format.html">basic_format</a>&amp; <a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format</a>&lt; CharType &gt;::operator% </td>
+ <td>(</td>
+ <td class="paramtype">Formattible const &amp;&nbsp;</td>
+ <td class="paramname"> <em>object</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Add new parameter to format list. The object should be a type with defined expression out &lt;&lt; object where <code>out</code> is <code>std::basic_ostream</code>. </p>
+
+</div>
+</div>
+<a class="anchor" id="a6bc65d7993e3ab6ad51809ef8fb65400"></a><!-- doxytag: member="boost::locale::basic_format::str" ref="a6bc65d7993e3ab6ad51809ef8fb65400" args="(std::locale const &amp;loc=std::locale()) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">string_type</a> <a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format</a>&lt; CharType &gt;::str </td>
+ <td>(</td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Format a string using a locale <em>loc</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="a457c9228d13e80da3c807a51aa5ef6cd"></a><!-- doxytag: member="boost::locale::basic_format::write" ref="a457c9228d13e80da3c807a51aa5ef6cd" args="(stream_type &amp;out) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format</a>&lt; CharType &gt;::write </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1basic__format.html#a6aba7e54f0065f2697d13ff8a859309a">stream_type</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>out</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>write a formatted string to output stream <em>out</em> using out's locale </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="format_8hpp_source.html">format.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1basic__message-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1basic__message-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::basic_message&lt; CharType &gt; Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="group__message.html#ga33bdf7fbb164a96a8685b5747afc2b45">basic_message</a>()</td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#gae32d7f89d5f268e8d6bae662d8008bae">basic_message</a>(char_type const *id)</td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline, explicit]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#ga40bf56415a235f13ee666d51f645f280">basic_message</a>(char_type const *single, char_type const *plural, int n)</td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline, explicit]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#ga4d78f8f45467984d7244e2ddbb9e0f6e">basic_message</a>(char_type const *context, char_type const *id)</td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline, explicit]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#gabf9afe77f0254397389289c386bf8a73">basic_message</a>(char_type const *context, char_type const *single, char_type const *plural, int n)</td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline, explicit]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#gabbb4365d621a33442ae34ac7c17a9d74">basic_message</a>(string_type const &amp;id)</td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline, explicit]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#ga380f3a258b3b28929bbf01f4e622e71a">basic_message</a>(string_type const &amp;single, string_type const &amp;plural, int number)</td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline, explicit]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#ga8c2fab962e10a46ea85f0188d08e499d">basic_message</a>(string_type const &amp;context, string_type const &amp;id)</td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline, explicit]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#gaf8ba10b7b1d45e6c78b84d77e8175d5d">basic_message</a>(string_type const &amp;context, string_type const &amp;single, string_type const &amp;plural, int number)</td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline, explicit]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#gae6ed9dded4ab78ff28e994b48c766c84">basic_message</a>(basic_message const &amp;other)</td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#gaa63527cb368d0bcd4cb0809138c927df">facet_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#ga8da81038939b85ca248cba50f1deacf1">operator string_type</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#gae0e786e45ef32cf73efd8495cae45aed">operator=</a>(basic_message const &amp;other)</td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">str</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#ga26c6489f8269096f835abfb268498fdd">str</a>(std::locale const &amp;locale) const </td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#gaa907a1d3f43fe59cea938e1606f004ee">str</a>(std::locale const &amp;locale, std::string const &amp;domain_id) const </td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#ga2d2ca0fe119e4ce4766fd3d42b549314">str</a>(std::string const &amp;domain_id) const </td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#gaa51c0f65363d8d1cee83bb07fe45ced5">str</a>(std::locale const &amp;loc, int id) const </td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#gac204b563c7c9bd86e5555f129350f0e3">swap</a>(basic_message &amp;other)</td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#ga4dd81f4d40c4e8871bb1bf02bbc8e968">write</a>(std::basic_ostream&lt; char_type &gt; &amp;out) const </td><td><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1basic__message.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1basic__message.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::basic_message&lt; CharType &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Types &#124;
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::basic_message&lt; CharType &gt; Class Template Reference<br/>
+<small>
+[<a class="el" href="group__message.html">Message Formatting (translation)</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::basic_message" -->
+<p>This class represents a message that can be converted to a specific locale message.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="message_8hpp_source.html">boost/locale/message.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa5d8dcf9d7aa01abbe73c841299345db"></a><!-- doxytag: member="boost::locale::basic_message::char_type" ref="aa5d8dcf9d7aa01abbe73c841299345db" args="" -->
+typedef CharType&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The character this message object is used with. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga529423e08fc9a8ca9ceef5c56181c6d3"></a><!-- doxytag: member="boost::locale::basic_message::string_type" ref="ga529423e08fc9a8ca9ceef5c56181c6d3" args="" -->
+typedef std::basic_string<br class="typebreak"/>
+&lt; <a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The string type this object can be used with. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa63527cb368d0bcd4cb0809138c927df"></a><!-- doxytag: member="boost::locale::basic_message::facet_type" ref="gaa63527cb368d0bcd4cb0809138c927df" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1message__format.html">message_format</a>&lt; <a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gaa63527cb368d0bcd4cb0809138c927df">facet_type</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The type of the facet the messages are fetched with. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga33bdf7fbb164a96a8685b5747afc2b45">basic_message</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gae32d7f89d5f268e8d6bae662d8008bae">basic_message</a> (<a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *id)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga40bf56415a235f13ee666d51f645f280">basic_message</a> (<a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *single, <a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *plural, int n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga4d78f8f45467984d7244e2ddbb9e0f6e">basic_message</a> (<a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *context, <a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *id)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gabf9afe77f0254397389289c386bf8a73">basic_message</a> (<a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *context, <a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *single, <a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *plural, int n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gabbb4365d621a33442ae34ac7c17a9d74">basic_message</a> (<a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;id)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga380f3a258b3b28929bbf01f4e622e71a">basic_message</a> (<a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;single, <a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;plural, int number)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga8c2fab962e10a46ea85f0188d08e499d">basic_message</a> (<a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;context, <a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;id)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gaf8ba10b7b1d45e6c78b84d77e8175d5d">basic_message</a> (<a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;context, <a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;single, <a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;plural, int number)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gae6ed9dded4ab78ff28e994b48c766c84">basic_message</a> (<a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a> const &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gae0e786e45ef32cf73efd8495cae45aed">operator=</a> (<a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a> const &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gac204b563c7c9bd86e5555f129350f0e3">swap</a> (<a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a> &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga8da81038939b85ca248cba50f1deacf1">operator string_type</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">str</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga26c6489f8269096f835abfb268498fdd">str</a> (std::locale const &amp;locale) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gaa907a1d3f43fe59cea938e1606f004ee">str</a> (std::locale const &amp;locale, std::string const &amp;domain_id) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga2d2ca0fe119e4ce4766fd3d42b549314">str</a> (std::string const &amp;domain_id) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gaa51c0f65363d8d1cee83bb07fe45ced5">str</a> (std::locale const &amp;loc, int id) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga4dd81f4d40c4e8871bb1bf02bbc8e968">write</a> (std::basic_ostream&lt; <a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> &gt; &amp;out) const </td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;typename CharType&gt;<br/>
+ class boost::locale::basic_message&lt; CharType &gt;</h3>
+
+<p>This class represents a message that can be converted to a specific locale message. </p>
+<p>It holds the original ASCII string that is queried in the dictionary when converting to the output string. The created string may be UTF-8, UTF-16, UTF-32 or other 8-bit encoded string according to the target character type and locale encoding. </p>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="message_8hpp_source.html">message.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__indexing-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__indexing-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::boundary::boundary_indexing&lt; Char &gt; Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html#a251d097b8498d6dade6110b0829c8cf5">boundary_indexing</a>(size_t refs=0)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html#a6ec435e58e34f70046f62ac0314c1a58">id</a></td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html#aee429a6d57b48b6f7dda3d03a67d6501">map</a>(boundary_type t, Char const *begin, Char const *end) const =0</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a></td><td><code> [pure virtual]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__indexing.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__indexing.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,194 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::boundary::boundary_indexing&lt; Char &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1boundary.html">boundary</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions &#124;
+Static Public Attributes </div>
+ <div class="headertitle">
+<h1>boost::locale::boundary::boundary_indexing&lt; Char &gt; Class Template Reference<br/>
+<small>
+[<a class="el" href="group__boundary.html">Boundary Analysis</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::boundary::boundary_indexing" -->
+<p>This facet generates an index for boundary analysis for a given text.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="facets_8hpp_source.html">boost/locale/boundary/facets.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html#a251d097b8498d6dade6110b0829c8cf5">boundary_indexing</a> (size_t refs=0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html#aee429a6d57b48b6f7dda3d03a67d6501">map</a> (<a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> t, Char const *begin, Char const *end) const =0</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static std::locale::id&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html#a6ec435e58e34f70046f62ac0314c1a58">id</a></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;typename Char&gt;<br/>
+ class boost::locale::boundary::boundary_indexing&lt; Char &gt;</h3>
+
+<p>This facet generates an index for boundary analysis for a given text. </p>
+<p>It is specialized for 4 types of characters <code>char_t</code>, <code>wchar_t</code>, <code>char16_t</code> and <code>char32_t</code> </p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a251d097b8498d6dade6110b0829c8cf5"></a><!-- doxytag: member="boost::locale::boundary::boundary_indexing::boundary_indexing" ref="a251d097b8498d6dade6110b0829c8cf5" args="(size_t refs=0)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename Char &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html">boost::locale::boundary::boundary_indexing</a>&lt; Char &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html">boundary_indexing</a> </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>refs</em> = <code>0</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Default constructor typical for facets </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="aee429a6d57b48b6f7dda3d03a67d6501"></a><!-- doxytag: member="boost::locale::boundary::boundary_indexing::map" ref="aee429a6d57b48b6f7dda3d03a67d6501" args="(boundary_type t, Char const *begin, Char const *end) const =0" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename Char &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html">boost::locale::boundary::boundary_indexing</a>&lt; Char &gt;::map </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a>&nbsp;</td>
+ <td class="paramname"> <em>t</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">Char const *&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">Char const *&nbsp;</td>
+ <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create index for boundary type <em>t</em> for text in range [begin,end)</p>
+<p>The returned value is an index of type <a class="el" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a>. Note that this index is never empty, even if the range [begin,end) is empty it consists of at least one boundary point with the offset 0. </p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a6ec435e58e34f70046f62ac0314c1a58"></a><!-- doxytag: member="boost::locale::boundary::boundary_indexing::id" ref="a6ec435e58e34f70046f62ac0314c1a58" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename Char &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::locale::id <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html">boost::locale::boundary::boundary_indexing</a>&lt; Char &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html#a6ec435e58e34f70046f62ac0314c1a58">id</a><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Identification of this facet </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/boundary/<a class="el" href="facets_8hpp_source.html">facets.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__point-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__point-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::boundary::boundary_point&lt; IteratorType &gt; Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#aabbbee60c2c97ffd95210206a86c9298">boundary_point</a>()</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a653a1c0d7480006ff647a656c74521df">boundary_point</a>(iterator_type p, rule_type r)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a5ea18137618a1a84ff0b75c3b166c495">iterator</a>(iterator_type i)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af279d5382e1b28c2ce82035c1929ea66">iterator</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#aa2dc88b4d02151aea939a01b7fc88730">operator iterator_type</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a4347b22dd7edb8af49d1316a6f86d0c2">operator!=</a>(boundary_point const &amp;other) const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a4cd03f39d75bb054be9a0ae23189fa7a">operator!=</a>(iterator_type const &amp;other) const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a058ffbcbd43fc41a40a4a1cf5be987f2">operator==</a>(boundary_point const &amp;other) const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a87a96a1745184ff7495db87943aca424">operator==</a>(iterator_type const &amp;other) const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a757b28e11c66f9871d3f51fe93a51bdb">rule</a>(rule_type r)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a75e2f04f0f7c1065470f722d1f2e004b">rule</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__point.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__point.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,394 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::boundary::boundary_point&lt; IteratorType &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1boundary.html">boundary</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Types &#124;
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::boundary::boundary_point&lt; IteratorType &gt; Class Template Reference<br/>
+<small>
+[<a class="el" href="group__boundary.html">Boundary Analysis</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::boundary::boundary_point" -->
+<p>This class represents a boundary point in the text.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="boundary__point_8hpp_source.html">boost/locale/boundary/boundary_point.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef IteratorType&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#aabbbee60c2c97ffd95210206a86c9298">boundary_point</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a653a1c0d7480006ff647a656c74521df">boundary_point</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a> p, <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> r)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a5ea18137618a1a84ff0b75c3b166c495">iterator</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a> i)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a757b28e11c66f9871d3f51fe93a51bdb">rule</a> (<a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> r)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af279d5382e1b28c2ce82035c1929ea66">iterator</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a75e2f04f0f7c1065470f722d1f2e004b">rule</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a058ffbcbd43fc41a40a4a1cf5be987f2">operator==</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a> const &amp;other) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a4347b22dd7edb8af49d1316a6f86d0c2">operator!=</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a> const &amp;other) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a87a96a1745184ff7495db87943aca424">operator==</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a> const &amp;other) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a4cd03f39d75bb054be9a0ae23189fa7a">operator!=</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a> const &amp;other) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#aa2dc88b4d02151aea939a01b7fc88730">operator iterator_type</a> () const </td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;typename IteratorType&gt;<br/>
+ class boost::locale::boundary::boundary_point&lt; IteratorType &gt;</h3>
+
+<p>This class represents a boundary point in the text. </p>
+<p>It represents a pair - an iterator and a rule that defines this point.</p>
+<p>This type of object is dereference by the iterators of <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a>. Using a <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a757b28e11c66f9871d3f51fe93a51bdb">rule()</a> member function you can get the reason why this specific boundary point was selected.</p>
+<p>For example, When you use a sentence boundary analysis, the (<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a757b28e11c66f9871d3f51fe93a51bdb">rule()</a> &amp; <a class="el" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b">sentence_term</a>) != 0 means that this boundary point was selected because a sentence terminator (like .?!) was spotted and the (<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a757b28e11c66f9871d3f51fe93a51bdb">rule()</a> &amp; <a class="el" href="group__boundary.html#gaf67883341dd3d8f786e7281d40790000">sentence_sep</a>)!=0 means that a separator like line feed or carriage return was observed.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<ul>
+<li>The beginning of analyzed range is always considered a boundary point and its rule is always 0.</li>
+<li>when using a word boundary analysis the returned rule relates to a chunk of text preceding this point.</li>
+</ul>
+<dl class="see"><dt><b>See also:</b></dt><dd></dd></dl>
+<ul>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a> </li>
+</ul>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="af3c3a74a9a79690ff44f38d267b3b694"></a><!-- doxytag: member="boost::locale::boundary::boundary_point::iterator_type" ref="af3c3a74a9a79690ff44f38d267b3b694" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IteratorType <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point</a>&lt; IteratorType &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The type of the base iterator that iterates the original text </p>
+
+</div>
+</div>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="aabbbee60c2c97ffd95210206a86c9298"></a><!-- doxytag: member="boost::locale::boundary::boundary_point::boundary_point" ref="aabbbee60c2c97ffd95210206a86c9298" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point</a>&lt; IteratorType &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a> </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Empty default constructor </p>
+
+</div>
+</div>
+<a class="anchor" id="a653a1c0d7480006ff647a656c74521df"></a><!-- doxytag: member="boost::locale::boundary::boundary_point::boundary_point" ref="a653a1c0d7480006ff647a656c74521df" args="(iterator_type p, rule_type r)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point</a>&lt; IteratorType &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a> </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a>&nbsp;</td>
+ <td class="paramname"> <em>p</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td>
+ <td class="paramname"> <em>r</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a new <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point</a> using iterator <code>and</code> a rule <em>r</em> </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a5ea18137618a1a84ff0b75c3b166c495"></a><!-- doxytag: member="boost::locale::boundary::boundary_point::iterator" ref="a5ea18137618a1a84ff0b75c3b166c495" args="(iterator_type i)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point</a>&lt; IteratorType &gt;::iterator </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a>&nbsp;</td>
+ <td class="paramname"> <em>i</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set an new iterator value <em>i</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="af279d5382e1b28c2ce82035c1929ea66"></a><!-- doxytag: member="boost::locale::boundary::boundary_point::iterator" ref="af279d5382e1b28c2ce82035c1929ea66" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a> <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point</a>&lt; IteratorType &gt;::iterator </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Fetch an iterator </p>
+
+</div>
+</div>
+<a class="anchor" id="aa2dc88b4d02151aea939a01b7fc88730"></a><!-- doxytag: member="boost::locale::boundary::boundary_point::operator iterator_type" ref="aa2dc88b4d02151aea939a01b7fc88730" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point</a>&lt; IteratorType &gt;::operator <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a> </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Automatic cast to the iterator it represents </p>
+
+</div>
+</div>
+<a class="anchor" id="a4cd03f39d75bb054be9a0ae23189fa7a"></a><!-- doxytag: member="boost::locale::boundary::boundary_point::operator!=" ref="a4cd03f39d75bb054be9a0ae23189fa7a" args="(iterator_type const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point</a>&lt; IteratorType &gt;::operator!= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Check if the boundary point points to different location from an iterator <em>other</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="a4347b22dd7edb8af49d1316a6f86d0c2"></a><!-- doxytag: member="boost::locale::boundary::boundary_point::operator!=" ref="a4347b22dd7edb8af49d1316a6f86d0c2" args="(boundary_point const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point</a>&lt; IteratorType &gt;::operator!= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a>&lt; IteratorType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Check if two boundary points are different </p>
+
+</div>
+</div>
+<a class="anchor" id="a87a96a1745184ff7495db87943aca424"></a><!-- doxytag: member="boost::locale::boundary::boundary_point::operator==" ref="a87a96a1745184ff7495db87943aca424" args="(iterator_type const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point</a>&lt; IteratorType &gt;::operator== </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">iterator_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Check if the boundary point points to same location as an iterator <em>other</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="a058ffbcbd43fc41a40a4a1cf5be987f2"></a><!-- doxytag: member="boost::locale::boundary::boundary_point::operator==" ref="a058ffbcbd43fc41a40a4a1cf5be987f2" args="(boundary_point const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point</a>&lt; IteratorType &gt;::operator== </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a>&lt; IteratorType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Check if two boundary points are the same </p>
+
+</div>
+</div>
+<a class="anchor" id="a75e2f04f0f7c1065470f722d1f2e004b"></a><!-- doxytag: member="boost::locale::boundary::boundary_point::rule" ref="a75e2f04f0f7c1065470f722d1f2e004b" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point</a>&lt; IteratorType &gt;::rule </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Fetch a rule </p>
+
+</div>
+</div>
+<a class="anchor" id="a757b28e11c66f9871d3f51fe93a51bdb"></a><!-- doxytag: member="boost::locale::boundary::boundary_point::rule" ref="a757b28e11c66f9871d3f51fe93a51bdb" args="(rule_type r)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point</a>&lt; IteratorType &gt;::rule </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td>
+ <td class="paramname"> <em>r</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set an new rule value <em>r</em> </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/boundary/<a class="el" href="boundary__point_8hpp_source.html">boundary_point.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__point__index-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__point__index-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt; Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga56f42a32f0378b6e157671f9e17bd66f">begin</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#gaba6993dd50ad8cf2db8921e5cf668a69">boundary_point_index</a>()</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#gacc189288792012cfdb21c07fddbadc4f">boundary_point_index</a>(boundary_type type, base_iterator begin, base_iterator end, rule_type mask, std::locale const &amp;loc=std::locale())</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga9b926379fa2fcc7f87dc067953049d69">boundary_point_index</a>(boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#gac48665ff53789c6ee44a423963b6550d">boundary_point_index</a>(segment_index&lt; base_iterator &gt; const &amp;other)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#gac9ce9158eb2fb030c1baf93376203d16">const_iterator</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#gaf3d66d578e32a63b3f0ffbb59740667b">end</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga0bb71a287afca990e85b17246568492d">find</a>(base_iterator p) const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga6b4b5d5cf80b55302a88e7b36c812418">map</a>(boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga83d57b993b00686b2cac711667c6a931">operator=</a>(segment_index&lt; base_iterator &gt; const &amp;other)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03">rule</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga56e63913f51109e05a24a7136472a975">rule</a>(rule_type v)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><b>segment_index&lt; base_iterator &gt;</b> (defined in <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td><code> [friend]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga7f7328a860cf485a4bd8f17658c291e1">value_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__point__index.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1boundary__point__index.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,181 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1boundary.html">boundary</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Types &#124;
+Public Member Functions &#124;
+Friends </div>
+ <div class="headertitle">
+<h1>boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt; Class Template Reference<br/>
+<small>
+[<a class="el" href="group__boundary.html">Boundary Analysis</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::boundary::boundary_point_index" -->
+<p>This class holds an index of <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary points</a> and allows iterating over them.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="index_8hpp_source.html">boost/locale/boundary/index.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef BaseIterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef unspecified_iterator_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef unspecified_iterator_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gac9ce9158eb2fb030c1baf93376203d16">const_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a><br class="typebreak"/>
+&lt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga7f7328a860cf485a4bd8f17658c291e1">value_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaba6993dd50ad8cf2db8921e5cf668a69">boundary_point_index</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gacc189288792012cfdb21c07fddbadc4f">boundary_point_index</a> (<a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> begin, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> end, <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> mask, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga9b926379fa2fcc7f87dc067953049d69">boundary_point_index</a> (<a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> begin, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> end, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gac48665ff53789c6ee44a423963b6550d">boundary_point_index</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a>&lt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> &gt; const &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga83d57b993b00686b2cac711667c6a931">operator=</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a>&lt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> &gt; const &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga6b4b5d5cf80b55302a88e7b36c812418">map</a> (<a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> begin, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> end, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga56f42a32f0378b6e157671f9e17bd66f">begin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaf3d66d578e32a63b3f0ffbb59740667b">end</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga0bb71a287afca990e85b17246568492d">find</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> p) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03">rule</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga56e63913f51109e05a24a7136472a975">rule</a> (<a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> v)</td></tr>
+<tr><td colspan="2"><h2><a name="friends"></a>
+Friends</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa8ba2e18ec3780af8f001ba85e40b9e2"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::segment_index&lt; base_iterator &gt;" ref="gaa8ba2e18ec3780af8f001ba85e40b9e2" args="" -->
+class&nbsp;</td><td class="memItemRight" valign="bottom"><b>segment_index&lt; base_iterator &gt;</b></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;typename BaseIterator&gt;<br/>
+ class boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</h3>
+
+<p>This class holds an index of <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary points</a> and allows iterating over them. </p>
+<p>This class is provides <a class="el" href="group__boundary.html#ga56f42a32f0378b6e157671f9e17bd66f">begin()</a> and <a class="el" href="group__boundary.html#gaf3d66d578e32a63b3f0ffbb59740667b">end()</a> member functions that return bidirectional iterators to the <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a> objects.</p>
+<p>It provides an option that affects selecting boundary points according to different rules: using <a class="el" href="group__boundary.html#ga56e63913f51109e05a24a7136472a975">rule(rule_type mask)</a> member function. It allows to set a mask that select only specific types of boundary points like <a class="el" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b">sentence_term</a>.</p>
+<p>For example for a sentence boundary analysis of a text "Hello! How\nare you?" when the default rule is used the boundary points would be:</p>
+<ul>
+<li>"|Hello! How\nare you?"</li>
+<li>"Hello! |How\nare you?"</li>
+<li>"Hello! How\n|are you?"</li>
+<li>"Hello! How\nare you?|"</li>
+</ul>
+<p>However if <a class="el" href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03">rule()</a> is set to <a class="el" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b">sentence_term</a> then the selected boundary points would be:</p>
+<ul>
+<li>"|Hello! How\nare you?"</li>
+<li>"Hello! |How\nare you?"</li>
+<li>"Hello! How\nare you?|"</li>
+</ul>
+<p>Such that a boundary point defined by a line feed character would be ignored.</p>
+<p>This class allows to find a <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point</a> according to the given iterator in range using <a class="el" href="group__boundary.html#ga0bb71a287afca990e85b17246568492d">find()</a> member function.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd><ul>
+<li>Even an empty text range [x,x) considered to have a one boundary point x.</li>
+<li><em>a</em> and <em>b</em> points of the range [a,b) are always considered boundary points regardless the rules used.</li>
+<li>Changing any of the option <a class="el" href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03">rule()</a> or course re-indexing the text invalidates existing iterators and they can't be used any more.</li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a> can be created from <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> or other <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a> that was created with same <a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a>. This is very fast operation as they shared same index and it does not require its regeneration.</li>
+</ul>
+</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd></dd></dl>
+<ul>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a> </li>
+</ul>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="ab3189e2eaf4386cdf37598e0ba16cfd5"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::base_iterator" ref="ab3189e2eaf4386cdf37598e0ba16cfd5" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef BaseIterator <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a>&lt; BaseIterator &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The type of the iterator used to iterate over the original text </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/boundary/<a class="el" href="index_8hpp_source.html">index.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1segment-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1segment-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::boundary::segment&lt; IteratorType &gt; Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a5428ff79bc05b78989f56519b58a6d9c">begin</a>(iterator const &amp;v)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a445da30d993880a1bd6d998e78755a44">begin</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ad3785355ea817c087bf428315a332169">char_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#aa24dcd83aefe4925bfc11b0285e2517a">const_iterator</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a79ee4d48248ffbc23f84a33355ca3b62">difference_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a84022afa120893d0716fc446816eb83f">empty</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#aaedd7bb4760bae3dcdb165b330806261">end</a>(iterator const &amp;v)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a7e36b7f1c88ad1f5756ba6e501454bc4">end</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">iterator</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a45edfde079b2afe36c55043c7a00b438">length</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a76e2717f48ca7a6336a9fede9dec4d40">operator std::basic_string&lt; char_type, T, A &gt;</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a2e38c575af16843a3aa140a4332646a3">operator!=</a>(segment const &amp;other)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a9a30e70d41591b25c8c77961bff00057">operator==</a>(segment const &amp;other)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a5b36a522d7013306617dbcccc9919343">rule</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a962c26b7e2024767ad25f2be080fd53a">rule</a>(rule_type r)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a4e785bc97dba9e8e25f18b43957723e5">segment</a>()</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#aea72505bb4940b21bb00a3660fefb7b7">segment</a>(iterator b, iterator e, rule_type r)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ac139eae8c07ed82ba8343fedfa76c2bf">str</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a795d3328ac4d1692294f172c8480da47">string_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ab7ba55015262b4fb85bb531882a32ead">value_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1segment.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1segment.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,510 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::boundary::segment&lt; IteratorType &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1boundary.html">boundary</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Types &#124;
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::boundary::segment&lt; IteratorType &gt; Class Template Reference<br/>
+<small>
+[<a class="el" href="group__boundary.html">Boundary Analysis</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::boundary::segment" -->
+<p>a segment object that represents a pair of two iterators that define the range where this segment exits and a rule that defines it.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="segment_8hpp_source.html">boost/locale/boundary/segment.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::iterator_traits<br class="typebreak"/>
+&lt; IteratorType &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ab7ba55015262b4fb85bb531882a32ead">value_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ad3785355ea817c087bf428315a332169">char_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::basic_string<br class="typebreak"/>
+&lt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ad3785355ea817c087bf428315a332169">char_type</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a795d3328ac4d1692294f172c8480da47">string_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ad3785355ea817c087bf428315a332169">char_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ab7ba55015262b4fb85bb531882a32ead">value_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef IteratorType&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef IteratorType&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#aa24dcd83aefe4925bfc11b0285e2517a">const_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::iterator_traits<br class="typebreak"/>
+&lt; IteratorType &gt;<br class="typebreak"/>
+::<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a79ee4d48248ffbc23f84a33355ca3b62">difference_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a79ee4d48248ffbc23f84a33355ca3b62">difference_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a4e785bc97dba9e8e25f18b43957723e5">segment</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#aea72505bb4940b21bb00a3660fefb7b7">segment</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">iterator</a> b, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">iterator</a> e, <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> r)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a5428ff79bc05b78989f56519b58a6d9c">begin</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">iterator</a> const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#aaedd7bb4760bae3dcdb165b330806261">end</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">iterator</a> const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">IteratorType&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a445da30d993880a1bd6d998e78755a44">begin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">IteratorType&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a7e36b7f1c88ad1f5756ba6e501454bc4">end</a> () const </td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;class T , class A &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a76e2717f48ca7a6336a9fede9dec4d40">operator std::basic_string&lt; char_type, T, A &gt;</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a795d3328ac4d1692294f172c8480da47">string_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ac139eae8c07ed82ba8343fedfa76c2bf">str</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a45edfde079b2afe36c55043c7a00b438">length</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a84022afa120893d0716fc446816eb83f">empty</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a5b36a522d7013306617dbcccc9919343">rule</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a962c26b7e2024767ad25f2be080fd53a">rule</a> (<a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> r)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9a30e70d41591b25c8c77961bff00057"></a><!-- doxytag: member="boost::locale::boundary::segment::operator==" ref="a9a30e70d41591b25c8c77961bff00057" args="(segment const &amp;other)" -->
+bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a9a30e70d41591b25c8c77961bff00057">operator==</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a> const &amp;other)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two segments. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2e38c575af16843a3aa140a4332646a3"></a><!-- doxytag: member="boost::locale::boundary::segment::operator!=" ref="a2e38c575af16843a3aa140a4332646a3" args="(segment const &amp;other)" -->
+bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a2e38c575af16843a3aa140a4332646a3">operator!=</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a> const &amp;other)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two segments. <br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;typename IteratorType&gt;<br/>
+ class boost::locale::boundary::segment&lt; IteratorType &gt;</h3>
+
+<p>a segment object that represents a pair of two iterators that define the range where this segment exits and a rule that defines it. </p>
+<p>This type of object is dereferenced by the iterators of <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a>. Using a <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a5b36a522d7013306617dbcccc9919343">rule()</a> member function you can get a specific rule this segment was selected with. For example, when you use word boundary analysis, you can check if the specific word contains Kana letters by checking (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a5b36a522d7013306617dbcccc9919343">rule()</a> &amp; <a class="el" href="group__boundary.html#ga52d8c63e1f3f8c898c645352206a78ef">word_kana</a>)!=0 For a sentence analysis you can check if the sentence is selected because a sentence terminator is found (<a class="el" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b">sentence_term</a>) or there is a line break (<a cl
ass="el" href="group__boundary.html#gaf67883341dd3d8f786e7281d40790000">sentence_sep</a>).</p>
+<p>This object can be automatically converted to std::basic_string with the same type of character. It is also valid range that has <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a5428ff79bc05b78989f56519b58a6d9c">begin()</a> and <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#aaedd7bb4760bae3dcdb165b330806261">end()</a> member functions returning iterators on the location of the segment.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd></dd></dl>
+<ul>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a> </li>
+</ul>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="ad3785355ea817c087bf428315a332169"></a><!-- doxytag: member="boost::locale::boundary::segment::char_type" ref="ad3785355ea817c087bf428315a332169" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef std::iterator_traits&lt;IteratorType&gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ab7ba55015262b4fb85bb531882a32ead">value_type</a> <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ad3785355ea817c087bf428315a332169">char_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The type of the underlying character </p>
+
+</div>
+</div>
+<a class="anchor" id="aa24dcd83aefe4925bfc11b0285e2517a"></a><!-- doxytag: member="boost::locale::boundary::segment::const_iterator" ref="aa24dcd83aefe4925bfc11b0285e2517a" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IteratorType <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#aa24dcd83aefe4925bfc11b0285e2517a">const_iterator</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The iterator that allows to iterate the range </p>
+
+</div>
+</div>
+<a class="anchor" id="a79ee4d48248ffbc23f84a33355ca3b62"></a><!-- doxytag: member="boost::locale::boundary::segment::difference_type" ref="a79ee4d48248ffbc23f84a33355ca3b62" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef std::iterator_traits&lt;IteratorType&gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a79ee4d48248ffbc23f84a33355ca3b62">difference_type</a> <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a79ee4d48248ffbc23f84a33355ca3b62">difference_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The type that represent a difference between two iterators </p>
+
+</div>
+</div>
+<a class="anchor" id="a31960fd7b416715d012b686bc1f2c205"></a><!-- doxytag: member="boost::locale::boundary::segment::iterator" ref="a31960fd7b416715d012b686bc1f2c205" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef IteratorType <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">iterator</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The iterator that allows to iterate the range </p>
+
+</div>
+</div>
+<a class="anchor" id="a795d3328ac4d1692294f172c8480da47"></a><!-- doxytag: member="boost::locale::boundary::segment::string_type" ref="a795d3328ac4d1692294f172c8480da47" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef std::basic_string&lt;<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ad3785355ea817c087bf428315a332169">char_type</a>&gt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a795d3328ac4d1692294f172c8480da47">string_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The type of the string it is converted to </p>
+
+</div>
+</div>
+<a class="anchor" id="ab7ba55015262b4fb85bb531882a32ead"></a><!-- doxytag: member="boost::locale::boundary::segment::value_type" ref="ab7ba55015262b4fb85bb531882a32ead" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ad3785355ea817c087bf428315a332169">char_type</a> <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ab7ba55015262b4fb85bb531882a32ead">value_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The value that iterators return - the character itself </p>
+
+</div>
+</div>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a4e785bc97dba9e8e25f18b43957723e5"></a><!-- doxytag: member="boost::locale::boundary::segment::segment" ref="a4e785bc97dba9e8e25f18b43957723e5" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a> </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Default constructor </p>
+
+</div>
+</div>
+<a class="anchor" id="aea72505bb4940b21bb00a3660fefb7b7"></a><!-- doxytag: member="boost::locale::boundary::segment::segment" ref="aea72505bb4940b21bb00a3660fefb7b7" args="(iterator b, iterator e, rule_type r)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a> </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>e</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td>
+ <td class="paramname"> <em>r</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a segment using two iterators and a rule that represents this point </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a5428ff79bc05b78989f56519b58a6d9c"></a><!-- doxytag: member="boost::locale::boundary::segment::begin" ref="a5428ff79bc05b78989f56519b58a6d9c" args="(iterator const &amp;v)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::begin </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">iterator</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set the start of the range </p>
+
+</div>
+</div>
+<a class="anchor" id="a445da30d993880a1bd6d998e78755a44"></a><!-- doxytag: member="boost::locale::boundary::segment::begin" ref="a445da30d993880a1bd6d998e78755a44" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">IteratorType <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::begin </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get the start of the range </p>
+
+</div>
+</div>
+<a class="anchor" id="a84022afa120893d0716fc446816eb83f"></a><!-- doxytag: member="boost::locale::boundary::segment::empty" ref="a84022afa120893d0716fc446816eb83f" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::empty </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Check if the segment is empty </p>
+
+</div>
+</div>
+<a class="anchor" id="aaedd7bb4760bae3dcdb165b330806261"></a><!-- doxytag: member="boost::locale::boundary::segment::end" ref="aaedd7bb4760bae3dcdb165b330806261" args="(iterator const &amp;v)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::end </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">iterator</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set the end of the range </p>
+
+</div>
+</div>
+<a class="anchor" id="a7e36b7f1c88ad1f5756ba6e501454bc4"></a><!-- doxytag: member="boost::locale::boundary::segment::end" ref="a7e36b7f1c88ad1f5756ba6e501454bc4" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">IteratorType <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::end </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set the end of the range </p>
+
+</div>
+</div>
+<a class="anchor" id="a45edfde079b2afe36c55043c7a00b438"></a><!-- doxytag: member="boost::locale::boundary::segment::length" ref="a45edfde079b2afe36c55043c7a00b438" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">size_t <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::length </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get the length of the text chunk </p>
+
+</div>
+</div>
+<a class="anchor" id="a76e2717f48ca7a6336a9fede9dec4d40"></a><!-- doxytag: member="boost::locale::boundary::segment::operator std::basic_string&lt; char_type, T, A &gt;" ref="a76e2717f48ca7a6336a9fede9dec4d40" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+<div class="memtemplate">
+template&lt;class T , class A &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::operator std::basic_string&lt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ad3785355ea817c087bf428315a332169">char_type</a>, T, A &gt; </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert the range to a string automatically </p>
+
+</div>
+</div>
+<a class="anchor" id="a5b36a522d7013306617dbcccc9919343"></a><!-- doxytag: member="boost::locale::boundary::segment::rule" ref="a5b36a522d7013306617dbcccc9919343" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::rule </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get the rule that is used for selection of this segment. </p>
+
+</div>
+</div>
+<a class="anchor" id="a962c26b7e2024767ad25f2be080fd53a"></a><!-- doxytag: member="boost::locale::boundary::segment::rule" ref="a962c26b7e2024767ad25f2be080fd53a" args="(rule_type r)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::rule </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td>
+ <td class="paramname"> <em>r</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set a rule that is used for segment selection </p>
+
+</div>
+</div>
+<a class="anchor" id="ac139eae8c07ed82ba8343fedfa76c2bf"></a><!-- doxytag: member="boost::locale::boundary::segment::str" ref="ac139eae8c07ed82ba8343fedfa76c2bf" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename IteratorType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a795d3328ac4d1692294f172c8480da47">string_type</a> <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a>&lt; IteratorType &gt;::str </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a string from the range explicitly </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/boundary/<a class="el" href="segment_8hpp_source.html">segment.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1segment__index-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1segment__index-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::boundary::segment_index&lt; BaseIterator &gt; Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#gaf74ff9c86c177efa8f74856277d659af">begin</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><b>boundary_point_index&lt; base_iterator &gt;</b> (defined in <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td><code> [friend]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga5f8e61b5babc3f0fa95f5fb8acae3724">const_iterator</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga8757062d2446b35675b585651c5fea9f">end</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga2480236106971797460187777f2a4411">find</a>(base_iterator p) const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#gace7faa10d536c85df0f2d5cac85f2bbc">full_select</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga205fd51daa439a18527675e663a0802f">full_select</a>(bool v)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#gafa2a756b10d3522743204b45b794bb3e">map</a>(boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#gae7941dc874ca05d2ef2a03f781c5b78a">operator=</a>(boundary_point_index&lt; base_iterator &gt; const &amp;)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a">rule</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#gad19735180401edb15acbdbbeb21e5a73">rule</a>(rule_type v)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga2c354f4cc03677b58c97038cd84dc465">segment_index</a>()</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga06ddc335e95479ec51e9b16d0f829bb3">segment_index</a>(boundary_type type, base_iterator begin, base_iterator end, rule_type mask, std::locale const &amp;loc=std::locale())</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga46a5f584d5a1a43ad4bc0fff07183fcc">segment_index</a>(boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga8187f58177fc89ef2f8f818a37111363">segment_index</a>(boundary_point_index&lt; base_iterator &gt; const &amp;)</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__boundary.html#ga067c663d18faee08adb3355701ae72ba">value_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1segment__index.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1boundary_1_1segment__index.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::boundary::segment_index&lt; BaseIterator &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1boundary.html">boundary</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Types &#124;
+Public Member Functions &#124;
+Friends </div>
+ <div class="headertitle">
+<h1>boost::locale::boundary::segment_index&lt; BaseIterator &gt; Class Template Reference<br/>
+<small>
+[<a class="el" href="group__boundary.html">Boundary Analysis</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::boundary::segment_index" -->
+<p>This class holds an index of segments in the text range and allows to iterate over them.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="index_8hpp_source.html">boost/locale/boundary/index.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef BaseIterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef unspecified_iterator_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef unspecified_iterator_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga5f8e61b5babc3f0fa95f5fb8acae3724">const_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga067c663d18faee08adb3355701ae72ba">value_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga2c354f4cc03677b58c97038cd84dc465">segment_index</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga06ddc335e95479ec51e9b16d0f829bb3">segment_index</a> (<a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> begin, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> end, <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> mask, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga46a5f584d5a1a43ad4bc0fff07183fcc">segment_index</a> (<a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> begin, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> end, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga8187f58177fc89ef2f8f818a37111363">segment_index</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a>&lt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> &gt; const &amp;)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gae7941dc874ca05d2ef2a03f781c5b78a">operator=</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a>&lt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> &gt; const &amp;)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gafa2a756b10d3522743204b45b794bb3e">map</a> (<a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> begin, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> end, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaf74ff9c86c177efa8f74856277d659af">begin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga8757062d2446b35675b585651c5fea9f">end</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga2480236106971797460187777f2a4411">find</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> p) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a">rule</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gad19735180401edb15acbdbbeb21e5a73">rule</a> (<a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gace7faa10d536c85df0f2d5cac85f2bbc">full_select</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga205fd51daa439a18527675e663a0802f">full_select</a> (bool v)</td></tr>
+<tr><td colspan="2"><h2><a name="friends"></a>
+Friends</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga960209e8a9453221641eda6bd8c4989b"></a><!-- doxytag: member="boost::locale::boundary::segment_index::boundary_point_index&lt; base_iterator &gt;" ref="ga960209e8a9453221641eda6bd8c4989b" args="" -->
+class&nbsp;</td><td class="memItemRight" valign="bottom"><b>boundary_point_index&lt; base_iterator &gt;</b></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;typename BaseIterator&gt;<br/>
+ class boost::locale::boundary::segment_index&lt; BaseIterator &gt;</h3>
+
+<p>This class holds an index of segments in the text range and allows to iterate over them. </p>
+<p>This class is provides <a class="el" href="group__boundary.html#gaf74ff9c86c177efa8f74856277d659af">begin()</a> and <a class="el" href="group__boundary.html#ga8757062d2446b35675b585651c5fea9f">end()</a> member functions that return bidirectional iterators to the <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a> objects.</p>
+<p>It provides two options on way of selecting segments:</p>
+<ul>
+<li><a class="el" href="group__boundary.html#gad19735180401edb15acbdbbeb21e5a73">rule(rule_type mask)</a> - a mask that allows to select only specific types of segments according to various masks as <a class="el" href="group__boundary.html#ga3ab98808dbb1cc4a346dcc2554c9d8dc">word_any</a>. <br/>
+ The default is to select any types of boundaries. <br/>
+ For example: using word boundary analysis, when the provided mask is <a class="el" href="group__boundary.html#ga52d8c63e1f3f8c898c645352206a78ef">word_kana</a> then the iterators would iterate only over the words containing Kana letters and <a class="el" href="group__boundary.html#ga3ab98808dbb1cc4a346dcc2554c9d8dc">word_any</a> would select all types of words excluding ranges that consist of white space and punctuation marks. So iterating over the text "to be or not to be?" with <a class="el" href="group__boundary.html#ga3ab98808dbb1cc4a346dcc2554c9d8dc">word_any</a> rule would return segments "to", "be", "or", "not", "to", "be", instead of default "to", " ", "be", " ", "or", " ", "not", " ", "to", " ", "be", "?".</li>
+<li><a class="el" href="group__boundary.html#ga205fd51daa439a18527675e663a0802f">full_select(bool how)</a> - a flag that defines the way a range is selected if the rule of the previous boundary point does not fit the selected rule. <br/>
+ For example: We want to fetch all sentences from the following text: "Hello! How\nare you?". <br/>
+ This text contains three boundary points separating it to sentences by different rules:<ul>
+<li>The exclamation mark "!" ends the sentence "Hello!"</li>
+<li>The line feed that splits the sentence "How\nare you?" into two parts.</li>
+<li>The question mark that ends the second sentence. <br/>
+ If you would only change the <a class="el" href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a">rule()</a> to <a class="el" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b">sentence_term</a> then the <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> would provide two sentences "Hello!" and "are you?" as only them actually terminated with required terminator "!" or "?". But changing <a class="el" href="group__boundary.html#gace7faa10d536c85df0f2d5cac85f2bbc">full_select()</a> to true, the selected segment would include all the text up to previous valid boundary point and would return two expected sentences: "Hello!" and "How\nare you?".</li>
+</ul>
+</li>
+</ul>
+<p>This class allows to find a segment according to the given iterator in range using <a class="el" href="group__boundary.html#ga2480236106971797460187777f2a4411">find()</a> member function.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<ul>
+<li>Changing any of the options - <a class="el" href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a">rule()</a> or <a class="el" href="group__boundary.html#gace7faa10d536c85df0f2d5cac85f2bbc">full_select()</a> and of course re-indexing the text invalidates existing iterators and they can't be used any more.</li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> can be created from <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a> or other <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> that was created with same <a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a>. This is very fast operation as they shared same index and it does not require its regeneration.</li>
+</ul>
+<dl class="see"><dt><b>See also:</b></dt><dd></dd></dl>
+<ul>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a> </li>
+</ul>
+<dl><dt><b>Examples: </b></dt><dd>
+<p><a class="el" href="boundary_8cpp-example.html#_a1">boundary.cpp</a>, and <a class="el" href="wboundary_8cpp-example.html#_a1">wboundary.cpp</a>.</p>
+</dd>
+</dl><hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a06f2faacb9d196ebc659ad5382ea2ca5"></a><!-- doxytag: member="boost::locale::boundary::segment_index::base_iterator" ref="a06f2faacb9d196ebc659ad5382ea2ca5" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef BaseIterator <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The type of the iterator used to iterate over the original text </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/boundary/<a class="el" href="index_8hpp_source.html">index.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1calendar-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1calendar-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::calendar Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#a889746f73b03bb21f5c8459cbe9b293d">calendar</a>(std::ios_base &amp;ios)</td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#aece160bf9ded6145ac5a066448085bae">calendar</a>(std::locale const &amp;l, std::string const &amp;zone)</td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#ad9f47a96941c041996da64384bc5879d">calendar</a>(std::locale const &amp;l)</td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#af9538c3aab4b8eaf7229ed2d9af18328">calendar</a>(std::string const &amp;zone)</td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#a56c55c24fbbb29fac5a18c44d3a27beb">calendar</a>()</td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#ad33ad15b5b032ba5234ebe5959159668">calendar</a>(calendar const &amp;other)</td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><b>date_time</b> (defined in <a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a>)</td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td><code> [friend]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#a8144b98a316798476040348483fe2a6e">first_day_of_week</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#aaf669f493ef0226aefbb6d13db8c27d1">get_locale</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#af4063debebd6cc08cf25171ce5ee220e">get_time_zone</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#a3c2475ee3ebb107e47701cf732532f9f">greatest_minimum</a>(period::period_type f) const </td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#a657ece3d3d59b8fc3c817bc05227620b">is_gregorian</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#a4c708d889ef92487982d918a78be5eda">least_maximum</a>(period::period_type f) const </td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#abd88cbf4c3b9f072430f9e7d9ab2d744">maximum</a>(period::period_type f) const </td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#a6670c7319dcaec257819b7a802d2c5f7">minimum</a>(period::period_type f) const </td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#ab0d93fe1d3bfb7b66f8ef631ede93236">operator!=</a>(calendar const &amp;other) const </td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#a7125a6c3f3d629f871ddb0f3c2f5a181">operator=</a>(calendar const &amp;other)</td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar.html#a8939fba5987659b3153cb18eea9af969">operator==</a>(calendar const &amp;other) const </td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><b>~calendar</b>() (defined in <a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a>)</td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1calendar.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1calendar.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,466 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::calendar Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions &#124;
+Friends </div>
+ <div class="headertitle">
+<h1>boost::locale::calendar Class Reference<br/>
+<small>
+[<a class="el" href="group__date__time.html">Date, Time, Timezone and Calendar manipulations</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::calendar" -->
+<p>this class provides an access to general calendar information.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="date__time_8hpp_source.html">boost/locale/date_time.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#a889746f73b03bb21f5c8459cbe9b293d">calendar</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#aece160bf9ded6145ac5a066448085bae">calendar</a> (std::locale const &amp;l, std::string const &amp;zone)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#ad9f47a96941c041996da64384bc5879d">calendar</a> (std::locale const &amp;l)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#af9538c3aab4b8eaf7229ed2d9af18328">calendar</a> (std::string const &amp;zone)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#a56c55c24fbbb29fac5a18c44d3a27beb">calendar</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#ad33ad15b5b032ba5234ebe5959159668">calendar</a> (<a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#a7125a6c3f3d629f871ddb0f3c2f5a181">operator=</a> (<a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#a6670c7319dcaec257819b7a802d2c5f7">minimum</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#a3c2475ee3ebb107e47701cf732532f9f">greatest_minimum</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#abd88cbf4c3b9f072430f9e7d9ab2d744">maximum</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#a4c708d889ef92487982d918a78be5eda">least_maximum</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#a8144b98a316798476040348483fe2a6e">first_day_of_week</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::locale&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#aaf669f493ef0226aefbb6d13db8c27d1">get_locale</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#af4063debebd6cc08cf25171ce5ee220e">get_time_zone</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#a657ece3d3d59b8fc3c817bc05227620b">is_gregorian</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#a8939fba5987659b3153cb18eea9af969">operator==</a> (<a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const &amp;other) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html#ab0d93fe1d3bfb7b66f8ef631ede93236">operator!=</a> (<a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const &amp;other) const </td></tr>
+<tr><td colspan="2"><h2><a name="friends"></a>
+Friends</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c627d823bfb1186af76ed36016cbb31"></a><!-- doxytag: member="boost::locale::calendar::date_time" ref="a7c627d823bfb1186af76ed36016cbb31" args="" -->
+class&nbsp;</td><td class="memItemRight" valign="bottom"><b>date_time</b></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>this class provides an access to general calendar information. </p>
+<p>This information is not connected to specific date but generic to locale, and timezone. It is used in obtaining general information about calendar and is essential for creation of <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> objects. </p>
+<dl><dt><b>Examples: </b></dt><dd>
+<p><a class="el" href="calendar_8cpp-example.html#_a6">calendar.cpp</a>.</p>
+</dd>
+</dl><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a889746f73b03bb21f5c8459cbe9b293d"></a><!-- doxytag: member="boost::locale::calendar::calendar" ref="a889746f73b03bb21f5c8459cbe9b293d" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::calendar::calendar </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create calendar taking locale and timezone information from ios_base instance.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if ios does not have a locale with installed <a class="el" href="classboost_1_1locale_1_1calendar__facet.html">calendar_facet</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aece160bf9ded6145ac5a066448085bae"></a><!-- doxytag: member="boost::locale::calendar::calendar" ref="aece160bf9ded6145ac5a066448085bae" args="(std::locale const &amp;l, std::string const &amp;zone)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::calendar::calendar </td>
+ <td>(</td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>l</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>zone</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create calendar with locale <em>l</em> and <a class="el" href="namespaceboost_1_1locale_1_1time__zone.html" title="namespace that holds functions for operating with global time zone">time_zone</a> <em>zone</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1calendar__facet.html">calendar_facet</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ad9f47a96941c041996da64384bc5879d"></a><!-- doxytag: member="boost::locale::calendar::calendar" ref="ad9f47a96941c041996da64384bc5879d" args="(std::locale const &amp;l)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::calendar::calendar </td>
+ <td>(</td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>l</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create calendar with locale <em>l</em> and default timezone</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1calendar__facet.html">calendar_facet</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="af9538c3aab4b8eaf7229ed2d9af18328"></a><!-- doxytag: member="boost::locale::calendar::calendar" ref="af9538c3aab4b8eaf7229ed2d9af18328" args="(std::string const &amp;zone)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::calendar::calendar </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>zone</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create calendar with default locale and timezone <em>zone</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if global locale does not have <a class="el" href="classboost_1_1locale_1_1calendar__facet.html">calendar_facet</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a56c55c24fbbb29fac5a18c44d3a27beb"></a><!-- doxytag: member="boost::locale::calendar::calendar" ref="a56c55c24fbbb29fac5a18c44d3a27beb" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::calendar::calendar </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create calendar with default locale and timezone</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if global locale does not have <a class="el" href="classboost_1_1locale_1_1calendar__facet.html">calendar_facet</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ad33ad15b5b032ba5234ebe5959159668"></a><!-- doxytag: member="boost::locale::calendar::calendar" ref="ad33ad15b5b032ba5234ebe5959159668" args="(calendar const &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::calendar::calendar </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>copy calendar </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a8144b98a316798476040348483fe2a6e"></a><!-- doxytag: member="boost::locale::calendar::first_day_of_week" ref="a8144b98a316798476040348483fe2a6e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::calendar::first_day_of_week </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get first day of week for specific calendar, for example for US it is 1 - Sunday for France it is 2 - Monday </p>
+
+</div>
+</div>
+<a class="anchor" id="aaf669f493ef0226aefbb6d13db8c27d1"></a><!-- doxytag: member="boost::locale::calendar::get_locale" ref="aaf669f493ef0226aefbb6d13db8c27d1" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::locale boost::locale::calendar::get_locale </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>get calendar's locale </p>
+
+</div>
+</div>
+<a class="anchor" id="af4063debebd6cc08cf25171ce5ee220e"></a><!-- doxytag: member="boost::locale::calendar::get_time_zone" ref="af4063debebd6cc08cf25171ce5ee220e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::calendar::get_time_zone </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>get calendar's time zone </p>
+
+</div>
+</div>
+<a class="anchor" id="a3c2475ee3ebb107e47701cf732532f9f"></a><!-- doxytag: member="boost::locale::calendar::greatest_minimum" ref="a3c2475ee3ebb107e47701cf732532f9f" args="(period::period_type f) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::calendar::greatest_minimum </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get greatest possible minimum value for period f, For example for <a class="el" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">period::day</a> it is 1, but may be different for other calendars. </p>
+
+</div>
+</div>
+<a class="anchor" id="a657ece3d3d59b8fc3c817bc05227620b"></a><!-- doxytag: member="boost::locale::calendar::is_gregorian" ref="a657ece3d3d59b8fc3c817bc05227620b" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::calendar::is_gregorian </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Check if the calendar is Gregorian </p>
+
+</div>
+</div>
+<a class="anchor" id="a4c708d889ef92487982d918a78be5eda"></a><!-- doxytag: member="boost::locale::calendar::least_maximum" ref="a4c708d889ef92487982d918a78be5eda" args="(period::period_type f) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::calendar::least_maximum </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get least maximum value for period f, For example for Gregorian calendar's maximum <a class="el" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">period::day</a> it is 28. </p>
+
+</div>
+</div>
+<a class="anchor" id="abd88cbf4c3b9f072430f9e7d9ab2d744"></a><!-- doxytag: member="boost::locale::calendar::maximum" ref="abd88cbf4c3b9f072430f9e7d9ab2d744" args="(period::period_type f) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::calendar::maximum </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get maximum value for period f, For example for Gregorian calendar's maximum <a class="el" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">period::day</a> it is 31. </p>
+
+</div>
+</div>
+<a class="anchor" id="a6670c7319dcaec257819b7a802d2c5f7"></a><!-- doxytag: member="boost::locale::calendar::minimum" ref="a6670c7319dcaec257819b7a802d2c5f7" args="(period::period_type f) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::calendar::minimum </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get minimum value for period f, For example for <a class="el" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">period::day</a> it is 1. </p>
+
+</div>
+</div>
+<a class="anchor" id="ab0d93fe1d3bfb7b66f8ef631ede93236"></a><!-- doxytag: member="boost::locale::calendar::operator!=" ref="ab0d93fe1d3bfb7b66f8ef631ede93236" args="(calendar const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::calendar::operator!= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Opposite of == </p>
+
+</div>
+</div>
+<a class="anchor" id="a7125a6c3f3d629f871ddb0f3c2f5a181"></a><!-- doxytag: member="boost::locale::calendar::operator=" ref="a7125a6c3f3d629f871ddb0f3c2f5a181" args="(calendar const &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const&amp; boost::locale::calendar::operator= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>assign calendar </p>
+
+</div>
+</div>
+<a class="anchor" id="a8939fba5987659b3153cb18eea9af969"></a><!-- doxytag: member="boost::locale::calendar::operator==" ref="a8939fba5987659b3153cb18eea9af969" args="(calendar const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::calendar::operator== </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Compare calendars for equivalence: i.e. calendar types, time zones etc. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="date__time_8hpp_source.html">date_time.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1calendar__facet-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1calendar__facet-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::calendar_facet Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1calendar__facet.html">boost::locale::calendar_facet</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar__facet.html#a04e5d7baa3bb0f362b0c2faac0c5d376">calendar_facet</a>(size_t refs=0)</td><td><a class="el" href="classboost_1_1locale_1_1calendar__facet.html">boost::locale::calendar_facet</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar__facet.html#a6db1915db3ad99ea65334dddaa7dcc28">create_calendar</a>() const =0</td><td><a class="el" href="classboost_1_1locale_1_1calendar__facet.html">boost::locale::calendar_facet</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1calendar__facet.html#a88dc563112346949302fd95df833089c">id</a></td><td><a class="el" href="classboost_1_1locale_1_1calendar__facet.html">boost::locale::calendar_facet</a></td><td><code> [static]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1calendar__facet.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1calendar__facet.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::calendar_facet Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1calendar__facet.html">boost::locale::calendar_facet</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions &#124;
+Static Public Attributes </div>
+ <div class="headertitle">
+<h1>boost::locale::calendar_facet Class Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::calendar_facet" -->
+<p>the facet that generates calendar for specific locale
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="date__time__facet_8hpp_source.html">boost/locale/date_time_facet.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar__facet.html#a04e5d7baa3bb0f362b0c2faac0c5d376">calendar_facet</a> (size_t refs=0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar__facet.html#a6db1915db3ad99ea65334dddaa7dcc28">create_calendar</a> () const =0</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static std::locale::id&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar__facet.html#a88dc563112346949302fd95df833089c">id</a></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>the facet that generates calendar for specific locale </p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a04e5d7baa3bb0f362b0c2faac0c5d376"></a><!-- doxytag: member="boost::locale::calendar_facet::calendar_facet" ref="a04e5d7baa3bb0f362b0c2faac0c5d376" args="(size_t refs=0)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::calendar_facet::calendar_facet </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>refs</em> = <code>0</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Basic constructor </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a6db1915db3ad99ea65334dddaa7dcc28"></a><!-- doxytag: member="boost::locale::calendar_facet::create_calendar" ref="a6db1915db3ad99ea65334dddaa7dcc28" args="() const =0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a>* boost::locale::calendar_facet::create_calendar </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a new calendar that points to current point of time. </p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a88dc563112346949302fd95df833089c"></a><!-- doxytag: member="boost::locale::calendar_facet::id" ref="a88dc563112346949302fd95df833089c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::locale::id <a class="el" href="classboost_1_1locale_1_1calendar__facet.html#a88dc563112346949302fd95df833089c">boost::locale::calendar_facet::id</a><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Locale id (needed to work with std::locale) </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="date__time__facet_8hpp_source.html">date_time_facet.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::collator&lt; CharType &gt; Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator.html#a25a8b21a756756e850a7488a54610053">collator</a>(size_t refs=0)</td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td><code> [inline, protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a>(level_type level, char_type const *b1, char_type const *e1, char_type const *b2, char_type const *e2) const </td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator.html#a9ccdfec693cdc5a71b5adc1f083881bf">compare</a>(level_type level, string_type const &amp;l, string_type const &amp;r) const </td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator.html#ada3a683bed35789e081b710a8e9a9a07">do_compare</a>(char_type const *b1, char_type const *e1, char_type const *b2, char_type const *e2) const </td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td><code> [inline, protected, virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator.html#a5d04cf6c4ab84cf3eac20be402ac6bf9">do_compare</a>(level_type level, char_type const *b1, char_type const *e1, char_type const *b2, char_type const *e2) const =0</td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td><code> [protected, pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator.html#aa093cd4ed0b4be4a5e38f0f04a56ac0b">do_hash</a>(char_type const *b, char_type const *e) const </td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td><code> [inline, protected, virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator.html#a7748d5a6ef0d4dd149096b080938d4c4">do_hash</a>(level_type level, char_type const *b, char_type const *e) const =0</td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td><code> [protected, pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator.html#a84b5cb6ff01cf1a1330e1556a2c674d5">do_transform</a>(char_type const *b, char_type const *e) const </td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td><code> [inline, protected, virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator.html#a0ee27b7bc751b7a7fda4de1b0d896d57">do_transform</a>(level_type level, char_type const *b, char_type const *e) const =0</td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td><code> [protected, pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator.html#a89752e2023643f972b6cc8024340d5d4">hash</a>(level_type level, char_type const *b, char_type const *e) const </td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator.html#a76000f6cf10bfe63dd7fd10652de3f5b">hash</a>(level_type level, string_type const &amp;s) const </td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3c209055ff840e311581ab43013026f2">identical</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> enum name</td><td><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ae57e842f398a27ee490208f5af39675b">primary</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a22ca1875fd63667fbb018df16b0aedba">quaternary</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ad8e103443d69f03f00ac4b68a7181866">secondary</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3a852752e9663b7b3340c435d0cfe36a">tertiary</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a>(level_type level, char_type const *b, char_type const *e) const </td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator.html#aa9976b4fa0fba6c5d1a1dea9b5ef02ca">transform</a>(level_type level, string_type const &amp;s) const </td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><b>~collator</b>() (defined in <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a>)</td><td><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td><td><code> [inline, protected, virtual]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,645 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::collator&lt; CharType &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Types &#124;
+Public Member Functions &#124;
+Protected Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::collator&lt; CharType &gt; Class Template Reference<br/>
+<small>
+[<a class="el" href="group__collation.html">Collation</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::collator" --><!-- doxytag: inherits="boost::locale::collator_base" -->
+<p>Collation facet.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="collator_8hpp_source.html">boost/locale/collator.hpp</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for boost::locale::collator&lt; CharType &gt;:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classboost_1_1locale_1_1collator.png" usemap="#boost::locale::collator&lt; CharType &gt;_map" alt=""/>
+ <map id="boost::locale::collator&lt; CharType &gt;_map" name="boost::locale::collator&lt; CharType &gt;_map">
+<area href="classboost_1_1locale_1_1collator__base.html" alt="boost::locale::collator_base" shape="rect" coords="0,0,210,24"/>
+</map>
+</div>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef CharType&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::basic_string<br class="typebreak"/>
+&lt; CharType &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b1, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e1, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b2, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e2) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a89752e2023643f972b6cc8024340d5d4">hash</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a9ccdfec693cdc5a71b5adc1f083881bf">compare</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;l, <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;r) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a76000f6cf10bfe63dd7fd10652de3f5b">hash</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;s) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#aa9976b4fa0fba6c5d1a1dea9b5ef02ca">transform</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;s) const </td></tr>
+<tr><td colspan="2"><h2><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a25a8b21a756756e850a7488a54610053">collator</a> (size_t refs=0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#ada3a683bed35789e081b710a8e9a9a07">do_compare</a> (<a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b1, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e1, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b2, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e2) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a84b5cb6ff01cf1a1330e1556a2c674d5">do_transform</a> (<a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#aa093cd4ed0b4be4a5e38f0f04a56ac0b">do_hash</a> (<a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a5d04cf6c4ab84cf3eac20be402ac6bf9">do_compare</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b1, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e1, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b2, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e2) const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a0ee27b7bc751b7a7fda4de1b0d896d57">do_transform</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e) const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a7748d5a6ef0d4dd149096b080938d4c4">do_hash</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e) const =0</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;typename CharType&gt;<br/>
+ class boost::locale::collator&lt; CharType &gt;</h3>
+
+<p>Collation facet. </p>
+<p>It reimplements standard C++ std::collate, allowing usage of std::locale for direct string comparison </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a2b74a0b9a613a4a4337632bf34644c6f"></a><!-- doxytag: member="boost::locale::collator::char_type" ref="a2b74a0b9a613a4a4337632bf34644c6f" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef CharType <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Type of the underlying character </p>
+
+</div>
+</div>
+<a class="anchor" id="a106a3fe9e068530013c428661758733d"></a><!-- doxytag: member="boost::locale::collator::string_type" ref="a106a3fe9e068530013c428661758733d" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef std::basic_string&lt;CharType&gt; <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Type of string used with this facet </p>
+
+</div>
+</div>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a25a8b21a756756e850a7488a54610053"></a><!-- doxytag: member="boost::locale::collator::collator" ref="a25a8b21a756756e850a7488a54610053" args="(size_t refs=0)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html">collator</a> </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>refs</em> = <code>0</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline, protected]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>constructor of the collator object </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ab90dc7bb909a71d3cd9a5e8d7b2eb80e"></a><!-- doxytag: member="boost::locale::collator::compare" ref="ab90dc7bb909a71d3cd9a5e8d7b2eb80e" args="(level_type level, char_type const *b1, char_type const *e1, char_type const *b2, char_type const *e2) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::compare </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&nbsp;</td>
+ <td class="paramname"> <em>level</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>b1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>e1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>b2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>e2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Compare two strings in rage [b1,e1), [b2,e2) according using a collation level <em>level</em>. Calls do_compare</p>
+<p>Returns -1 if the first of the two strings sorts before the seconds, returns 1 if sorts after and 0 if they considered equal. </p>
+
+</div>
+</div>
+<a class="anchor" id="a9ccdfec693cdc5a71b5adc1f083881bf"></a><!-- doxytag: member="boost::locale::collator::compare" ref="a9ccdfec693cdc5a71b5adc1f083881bf" args="(level_type level, string_type const &amp;l, string_type const &amp;r) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::compare </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&nbsp;</td>
+ <td class="paramname"> <em>level</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>l</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>r</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Compare two strings <em>l</em> and <em>r</em> using collation level <em>level</em> </p>
+<p>Returns -1 if the first of the two strings sorts before the seconds, returns 1 if sorts after and 0 if they considered equal. </p>
+
+</div>
+</div>
+<a class="anchor" id="a5d04cf6c4ab84cf3eac20be402ac6bf9"></a><!-- doxytag: member="boost::locale::collator::do_compare" ref="a5d04cf6c4ab84cf3eac20be402ac6bf9" args="(level_type level, char_type const *b1, char_type const *e1, char_type const *b2, char_type const *e2) const =0" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual int <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::do_compare </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&nbsp;</td>
+ <td class="paramname"> <em>level</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>b1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>e1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>b2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>e2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [protected, pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Actual function that performs comparison between the strings. For details see compare member function. Can be overridden. </p>
+
+</div>
+</div>
+<a class="anchor" id="ada3a683bed35789e081b710a8e9a9a07"></a><!-- doxytag: member="boost::locale::collator::do_compare" ref="ada3a683bed35789e081b710a8e9a9a07" args="(char_type const *b1, char_type const *e1, char_type const *b2, char_type const *e2) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual int <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::do_compare </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>b1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>e1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>b2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>e2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [inline, protected, virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>This function is used to override default collation function that does not take in account collation level. Uses primary level </p>
+
+</div>
+</div>
+<a class="anchor" id="aa093cd4ed0b4be4a5e38f0f04a56ac0b"></a><!-- doxytag: member="boost::locale::collator::do_hash" ref="aa093cd4ed0b4be4a5e38f0f04a56ac0b" args="(char_type const *b, char_type const *e) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual long <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::do_hash </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [inline, protected, virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>This function is used to override default collation function that does not take in account collation level. Uses primary level </p>
+
+</div>
+</div>
+<a class="anchor" id="a7748d5a6ef0d4dd149096b080938d4c4"></a><!-- doxytag: member="boost::locale::collator::do_hash" ref="a7748d5a6ef0d4dd149096b080938d4c4" args="(level_type level, char_type const *b, char_type const *e) const =0" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual long <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::do_hash </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&nbsp;</td>
+ <td class="paramname"> <em>level</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [protected, pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Actual function that calculates hash. For details see hash member function. Can be overridden. </p>
+
+</div>
+</div>
+<a class="anchor" id="a84b5cb6ff01cf1a1330e1556a2c674d5"></a><!-- doxytag: member="boost::locale::collator::do_transform" ref="a84b5cb6ff01cf1a1330e1556a2c674d5" args="(char_type const *b, char_type const *e) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::do_transform </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [inline, protected, virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>This function is used to override default collation function that does not take in account collation level. Uses primary level </p>
+
+</div>
+</div>
+<a class="anchor" id="a0ee27b7bc751b7a7fda4de1b0d896d57"></a><!-- doxytag: member="boost::locale::collator::do_transform" ref="a0ee27b7bc751b7a7fda4de1b0d896d57" args="(level_type level, char_type const *b, char_type const *e) const =0" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::do_transform </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&nbsp;</td>
+ <td class="paramname"> <em>level</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [protected, pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Actual function that performs transformation. For details see transform member function. Can be overridden. </p>
+
+</div>
+</div>
+<a class="anchor" id="a89752e2023643f972b6cc8024340d5d4"></a><!-- doxytag: member="boost::locale::collator::hash" ref="a89752e2023643f972b6cc8024340d5d4" args="(level_type level, char_type const *b, char_type const *e) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">long <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::hash </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&nbsp;</td>
+ <td class="paramname"> <em>level</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Calculate a hash of a text in range [b,e). The value can be used for collation sensitive string comparison.</p>
+<p>If compare(level,b1,e1,b2,e2) == 0 then hash(level,b1,e1) == hash(level,b2,e2)</p>
+<p>Calls do_hash </p>
+
+</div>
+</div>
+<a class="anchor" id="a76000f6cf10bfe63dd7fd10652de3f5b"></a><!-- doxytag: member="boost::locale::collator::hash" ref="a76000f6cf10bfe63dd7fd10652de3f5b" args="(level_type level, string_type const &amp;s) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">long <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::hash </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&nbsp;</td>
+ <td class="paramname"> <em>level</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Calculate a hash that can be used for collation sensitive string comparison of a string <em>s</em> </p>
+<p>If compare(level,s1,s2) == 0 then hash(level,s1) == hash(level,s2) </p>
+
+</div>
+</div>
+<a class="anchor" id="aa9976b4fa0fba6c5d1a1dea9b5ef02ca"></a><!-- doxytag: member="boost::locale::collator::transform" ref="aa9976b4fa0fba6c5d1a1dea9b5ef02ca" args="(level_type level, string_type const &amp;s) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::transform </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&nbsp;</td>
+ <td class="paramname"> <em>level</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a binary string from string <em>s</em>, that can be compared to other, useful for collation of multiple strings.</p>
+<p>The transformation follows these rules: </p>
+<div class="fragment"><pre class="fragment"> <a class="code" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a>(level,s1,s2) == sign( <a class="code" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a>(level,s1).<a class="code" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a>(<a class="code" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a>(level,s2)) );
+</pre></div>
+</div>
+</div>
+<a class="anchor" id="a8dc6443fb193616332ca50f207a9b189"></a><!-- doxytag: member="boost::locale::collator::transform" ref="a8dc6443fb193616332ca50f207a9b189" args="(level_type level, char_type const *b, char_type const *e) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::transform </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&nbsp;</td>
+ <td class="paramname"> <em>level</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a binary string that can be compared to other in order to get collation order. The string is created for text in range [b,e). It is useful for collation of multiple strings for text.</p>
+<p>The transformation follows these rules: </p>
+<div class="fragment"><pre class="fragment"> <a class="code" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a>(level,b1,e1,b2,e2) == sign( <a class="code" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a>(level,b1,e1).<a class="code" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a>(<a class="code" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a>(level,b2,e2)) );
+</pre></div><p>Calls do_transform </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="collator_8hpp_source.html">collator.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator__base-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator__base-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::collator_base Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3c209055ff840e311581ab43013026f2">identical</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> enum name</td><td><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ae57e842f398a27ee490208f5af39675b">primary</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a22ca1875fd63667fbb018df16b0aedba">quaternary</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ad8e103443d69f03f00ac4b68a7181866">secondary</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3a852752e9663b7b3340c435d0cfe36a">tertiary</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator__base.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator__base.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::collator_base Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Types </div>
+ <div class="headertitle">
+<h1>boost::locale::collator_base Class Reference<br/>
+<small>
+[<a class="el" href="group__collation.html">Collation</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::collator_base" -->
+<p>a base class that includes collation level flags
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="collator_8hpp_source.html">boost/locale/collator.hpp</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for boost::locale::collator_base:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classboost_1_1locale_1_1collator__base.png" usemap="#boost::locale::collator_base_map" alt=""/>
+ <map id="boost::locale::collator_base_map" name="boost::locale::collator_base_map">
+<area href="classboost_1_1locale_1_1collator.html" alt="boost::locale::collator&lt; CharType &gt;" shape="rect" coords="0,56,210,80"/>
+</map>
+</div>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> { <br/>
+&nbsp;&nbsp;<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ae57e842f398a27ee490208f5af39675b">primary</a> = 0,
+<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ad8e103443d69f03f00ac4b68a7181866">secondary</a> = 1,
+<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3a852752e9663b7b3340c435d0cfe36a">tertiary</a> = 2,
+<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a22ca1875fd63667fbb018df16b0aedba">quaternary</a> = 3,
+<br/>
+&nbsp;&nbsp;<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3c209055ff840e311581ab43013026f2">identical</a> = 4
+<br/>
+ }</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>a base class that includes collation level flags </p>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="a73c12de809733273304fef7f0af28b22"></a><!-- doxytag: member="boost::locale::collator_base::level_type" ref="a73c12de809733273304fef7f0af28b22" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">boost::locale::collator_base::level_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Unicode collation level types </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a73c12de809733273304fef7f0af28b22ae57e842f398a27ee490208f5af39675b"></a><!-- doxytag: member="primary" ref="a73c12de809733273304fef7f0af28b22ae57e842f398a27ee490208f5af39675b" args="" -->primary</em>&nbsp;</td><td>
+<p>1st collation level: base letters </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a73c12de809733273304fef7f0af28b22ad8e103443d69f03f00ac4b68a7181866"></a><!-- doxytag: member="secondary" ref="a73c12de809733273304fef7f0af28b22ad8e103443d69f03f00ac4b68a7181866" args="" -->secondary</em>&nbsp;</td><td>
+<p>2nd collation level: letters and accents </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a73c12de809733273304fef7f0af28b22a3a852752e9663b7b3340c435d0cfe36a"></a><!-- doxytag: member="tertiary" ref="a73c12de809733273304fef7f0af28b22a3a852752e9663b7b3340c435d0cfe36a" args="" -->tertiary</em>&nbsp;</td><td>
+<p>3rd collation level: letters, accents and case </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a73c12de809733273304fef7f0af28b22a22ca1875fd63667fbb018df16b0aedba"></a><!-- doxytag: member="quaternary" ref="a73c12de809733273304fef7f0af28b22a22ca1875fd63667fbb018df16b0aedba" args="" -->quaternary</em>&nbsp;</td><td>
+<p>4th collation level: letters, accents, case and punctuation </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a73c12de809733273304fef7f0af28b22a3c209055ff840e311581ab43013026f2"></a><!-- doxytag: member="identical" ref="a73c12de809733273304fef7f0af28b22a3c209055ff840e311581ab43013026f2" args="" -->identical</em>&nbsp;</td><td>
+<p>identical collation level: include code-point comparison </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="collator_8hpp_source.html">collator.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1collator__base.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1conv_1_1conversion__error-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1conv_1_1conversion__error-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::conv::conversion_error Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1conv_1_1conversion__error.html">boost::locale::conv::conversion_error</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><b>conversion_error</b>() (defined in <a class="el" href="classboost_1_1locale_1_1conv_1_1conversion__error.html">boost::locale::conv::conversion_error</a>)</td><td><a class="el" href="classboost_1_1locale_1_1conv_1_1conversion__error.html">boost::locale::conv::conversion_error</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1conv_1_1conversion__error.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1conv_1_1conversion__error.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::conv::conversion_error Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1conv.html">conv</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1conv_1_1conversion__error.html">boost::locale::conv::conversion_error</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::conv::conversion_error Class Reference<br/>
+<small>
+[<a class="el" href="group__codepage.html">Character conversion functions</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::conv::conversion_error" -->
+<p>The excepton that is thrown in case of conversion error.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="encoding_8hpp_source.html">boost/locale/encoding.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>The excepton that is thrown in case of conversion error. </p>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="encoding_8hpp_source.html">encoding.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1conv_1_1invalid__charset__error-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1conv_1_1invalid__charset__error-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::conv::invalid_charset_error Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html">boost::locale::conv::invalid_charset_error</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html#ae951e3a99a115a60cc87d4d258764681">invalid_charset_error</a>(std::string charset)</td><td><a class="el" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html">boost::locale::conv::invalid_charset_error</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1conv_1_1invalid__charset__error.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1conv_1_1invalid__charset__error.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::conv::invalid_charset_error Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1conv.html">conv</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html">boost::locale::conv::invalid_charset_error</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::conv::invalid_charset_error Class Reference<br/>
+<small>
+[<a class="el" href="group__codepage.html">Character conversion functions</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::conv::invalid_charset_error" -->
+<p>This exception is thrown in case of use of unsupported or invalid character set.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="encoding_8hpp_source.html">boost/locale/encoding.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae951e3a99a115a60cc87d4d258764681"></a><!-- doxytag: member="boost::locale::conv::invalid_charset_error::invalid_charset_error" ref="ae951e3a99a115a60cc87d4d258764681" args="(std::string charset)" -->
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html#ae951e3a99a115a60cc87d4d258764681">invalid_charset_error</a> (std::string charset)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an error for charset <em>charset</em>. <br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This exception is thrown in case of use of unsupported or invalid character set. </p>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="encoding_8hpp_source.html">encoding.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::converter&lt; Char &gt; Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1converter.html">boost::locale::converter&lt; Char &gt;</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba91936aed5b7c3a82b4d2c2354ead03d3">case_folding</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669b">conversion_type</a> enum name</td><td><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1converter.html#a38dcc87504308ad5a51f3190e3c0da4b">convert</a>(conversion_type how, Char const *begin, Char const *end, int flags=0) const =0</td><td><a class="el" href="classboost_1_1locale_1_1converter.html">boost::locale::converter&lt; Char &gt;</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1converter.html#aba25fd4a18937543823cd61bef72c628">converter</a>(size_t refs=0)</td><td><a class="el" href="classboost_1_1locale_1_1converter.html">boost::locale::converter&lt; Char &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1converter.html#a0ab17b265161bb2c5d7a233710d2740b">id</a></td><td><a class="el" href="classboost_1_1locale_1_1converter.html">boost::locale::converter&lt; Char &gt;</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba2c5c38c6bc6ca01fb9e573c148ba8ebe">lower_case</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bae20bf7eface68062a0b9f2396833354a">normalization</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bac136b257286085de7bd7eb4a7876dfa7">title_case</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba0fee54e09732910ab30856d0e34c8ad2">upper_case</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::converter&lt; Char &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1converter.html">boost::locale::converter&lt; Char &gt;</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions &#124;
+Static Public Attributes </div>
+ <div class="headertitle">
+<h1>boost::locale::converter&lt; Char &gt; Class Template Reference<br/>
+<small>
+[<a class="el" href="group__convert.html">Text Conversions</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::converter" --><!-- doxytag: inherits="boost::locale::converter_base" -->
+<p>The facet that implements text manipulation.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="conversion_8hpp_source.html">boost/locale/conversion.hpp</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for boost::locale::converter&lt; Char &gt;:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classboost_1_1locale_1_1converter.png" usemap="#boost::locale::converter&lt; Char &gt;_map" alt=""/>
+ <map id="boost::locale::converter&lt; Char &gt;_map" name="boost::locale::converter&lt; Char &gt;_map">
+<area href="classboost_1_1locale_1_1converter__base.html" alt="boost::locale::converter_base" shape="rect" coords="0,0,195,24"/>
+</map>
+</div>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba25fd4a18937543823cd61bef72c628"></a><!-- doxytag: member="boost::locale::converter::converter" ref="aba25fd4a18937543823cd61bef72c628" args="(size_t refs=0)" -->
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1converter.html#aba25fd4a18937543823cd61bef72c628">converter</a> (size_t refs=0)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Standard constructor. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual std::basic_string&lt; Char &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1converter.html#a38dcc87504308ad5a51f3190e3c0da4b">convert</a> (<a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669b">conversion_type</a> how, Char const *begin, Char const *end, int flags=0) const =0</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0ab17b265161bb2c5d7a233710d2740b"></a><!-- doxytag: member="boost::locale::converter::id" ref="a0ab17b265161bb2c5d7a233710d2740b" args="" -->
+static std::locale::id&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1converter.html#a0ab17b265161bb2c5d7a233710d2740b">id</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Locale identification. <br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;typename Char&gt;<br/>
+ class boost::locale::converter&lt; Char &gt;</h3>
+
+<p>The facet that implements text manipulation. </p>
+<p>It is used to performs text conversion operations defined by <a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669b">conversion_type</a>. It is specialized for four types of characters <code>char</code>, <code>wchar_t</code>, <code>char16_t</code>, <code>char32_t</code> </p>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a38dcc87504308ad5a51f3190e3c0da4b"></a><!-- doxytag: member="boost::locale::converter::convert" ref="a38dcc87504308ad5a51f3190e3c0da4b" args="(conversion_type how, Char const *begin, Char const *end, int flags=0) const =0" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename Char &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual std::basic_string&lt;Char&gt; <a class="el" href="classboost_1_1locale_1_1converter.html">boost::locale::converter</a>&lt; Char &gt;::convert </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669b">conversion_type</a>&nbsp;</td>
+ <td class="paramname"> <em>how</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">Char const *&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">Char const *&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>flags</em> = <code>0</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert text in range [<em>begin</em>, <em>end</em>) according to conversion method <em>how</em>. Parameter <em>flags</em> is used for specification of normalization method like nfd, nfc etc. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="conversion_8hpp_source.html">conversion.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter__base-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter__base-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::converter_base Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba91936aed5b7c3a82b4d2c2354ead03d3">case_folding</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669b">conversion_type</a> enum name</td><td><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba2c5c38c6bc6ca01fb9e573c148ba8ebe">lower_case</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bae20bf7eface68062a0b9f2396833354a">normalization</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bac136b257286085de7bd7eb4a7876dfa7">title_case</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba0fee54e09732910ab30856d0e34c8ad2">upper_case</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter__base.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter__base.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::converter_base Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Types </div>
+ <div class="headertitle">
+<h1>boost::locale::converter_base Class Reference<br/>
+<small>
+[<a class="el" href="group__convert.html">Text Conversions</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::converter_base" -->
+<p>This class provides base flags for text manipulation. It is used as base for converter facet.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="conversion_8hpp_source.html">boost/locale/conversion.hpp</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for boost::locale::converter_base:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classboost_1_1locale_1_1converter__base.png" usemap="#boost::locale::converter_base_map" alt=""/>
+ <map id="boost::locale::converter_base_map" name="boost::locale::converter_base_map">
+<area href="classboost_1_1locale_1_1converter.html" alt="boost::locale::converter&lt; Char &gt;" shape="rect" coords="0,56,195,80"/>
+</map>
+</div>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669b">conversion_type</a> { <br/>
+&nbsp;&nbsp;<a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bae20bf7eface68062a0b9f2396833354a">normalization</a>,
+<a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba0fee54e09732910ab30856d0e34c8ad2">upper_case</a>,
+<a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba2c5c38c6bc6ca01fb9e573c148ba8ebe">lower_case</a>,
+<a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba91936aed5b7c3a82b4d2c2354ead03d3">case_folding</a>,
+<br/>
+&nbsp;&nbsp;<a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bac136b257286085de7bd7eb4a7876dfa7">title_case</a>
+<br/>
+ }</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This class provides base flags for text manipulation. It is used as base for converter facet. </p>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="a726bc2bbcbb6f1e550cca14163fb669b"></a><!-- doxytag: member="boost::locale::converter_base::conversion_type" ref="a726bc2bbcbb6f1e550cca14163fb669b" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669b">boost::locale::converter_base::conversion_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The flag used for facet - the type of operation to perform </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a726bc2bbcbb6f1e550cca14163fb669bae20bf7eface68062a0b9f2396833354a"></a><!-- doxytag: member="normalization" ref="a726bc2bbcbb6f1e550cca14163fb669bae20bf7eface68062a0b9f2396833354a" args="" -->normalization</em>&nbsp;</td><td>
+<p>Apply Unicode normalization on the text. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a726bc2bbcbb6f1e550cca14163fb669ba0fee54e09732910ab30856d0e34c8ad2"></a><!-- doxytag: member="upper_case" ref="a726bc2bbcbb6f1e550cca14163fb669ba0fee54e09732910ab30856d0e34c8ad2" args="" -->upper_case</em>&nbsp;</td><td>
+<p>Convert text to upper case. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a726bc2bbcbb6f1e550cca14163fb669ba2c5c38c6bc6ca01fb9e573c148ba8ebe"></a><!-- doxytag: member="lower_case" ref="a726bc2bbcbb6f1e550cca14163fb669ba2c5c38c6bc6ca01fb9e573c148ba8ebe" args="" -->lower_case</em>&nbsp;</td><td>
+<p>Convert text to lower case. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a726bc2bbcbb6f1e550cca14163fb669ba91936aed5b7c3a82b4d2c2354ead03d3"></a><!-- doxytag: member="case_folding" ref="a726bc2bbcbb6f1e550cca14163fb669ba91936aed5b7c3a82b4d2c2354ead03d3" args="" -->case_folding</em>&nbsp;</td><td>
+<p>Fold case in the text. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a726bc2bbcbb6f1e550cca14163fb669bac136b257286085de7bd7eb4a7876dfa7"></a><!-- doxytag: member="title_case" ref="a726bc2bbcbb6f1e550cca14163fb669bac136b257286085de7bd7eb4a7876dfa7" args="" -->title_case</em>&nbsp;</td><td>
+<p>Convert text to title case. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="conversion_8hpp_source.html">conversion.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1converter__base.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::date_time Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#ae7a3b74e7512ddc4d618eb1f51c3d2b0">date_time</a>()</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a7d98e552f2ff8a421a5c226102ba0138">date_time</a>(date_time const &amp;other)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a45008e76b980e7487e3d61b8372d67ae">date_time</a>(date_time const &amp;other, date_time_period_set const &amp;set)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#addfee06ea6efa5fdca252191176b5756">date_time</a>(double time)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#ab806af3aee6d70057d1f8e6fbfd09216">date_time</a>(double time, calendar const &amp;cal)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#ada52e84093a2775db6e0b3c399b0b9cf">date_time</a>(calendar const &amp;cal)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#abfa9db762ab227427778d8fc3c2bf73d">date_time</a>(date_time_period_set const &amp;set)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a871745debde77a28f5fbc6e2b2a5f869">date_time</a>(date_time_period_set const &amp;set, calendar const &amp;cal)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a36df44f891d2a39ca16f57e568b67a3d">difference</a>(date_time const &amp;other, period::period_type f) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(period::period_type f) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a047e6e010df55fee166dcb3c9e7d3b95">is_in_daylight_saving_time</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#adb258ce11408b62bc0f14a60a05f0752">maximum</a>(period::period_type f) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a3363a0c562300095432a17e472d2e52d">minimum</a>(period::period_type f) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a289953d80af568f86ddf533c0b161663">operator!=</a>(date_time const &amp;other) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a0df3596add1804b1f64d363fea181fe2">operator+</a>(period::period_type f) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a4e23796608a8ef0cbd5338f21d220a73">operator+</a>(date_time_period const &amp;v) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#aa362fdfe044d1c56c4fe939bd3d406bc">operator+</a>(date_time_period_set const &amp;v) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#ab3117067df65d1c33e89ab375f03d27c">operator+=</a>(period::period_type f)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a7116785ff9f8b5f403e10a24b9b4477d">operator+=</a>(date_time_period const &amp;v)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a1e5c7d2a8fed92d1e71f3dda2548b637">operator+=</a>(date_time_period_set const &amp;v)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#ac870c0fcba5814cd91bb9c63823e280a">operator-</a>(period::period_type f) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#af83662eb6a5d2298cda9159f5277a563">operator-</a>(date_time_period const &amp;v) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a464e16b35656568b21f34cb8b3e2c81a">operator-</a>(date_time_period_set const &amp;v) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a38468aff1a820dc1c41a2a8280120848">operator-=</a>(period::period_type f)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a6780aae474f33f0a64e7b457789d7524">operator-=</a>(date_time_period const &amp;v)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#ae03dfadaf23e2ff93ae3d456dd3eb05f">operator-=</a>(date_time_period_set const &amp;v)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#ac2a3a8f6fdba552b19e478bb6757523e">operator/</a>(period::period_type f) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a7b27ad955eade1013a43336e2a17adec">operator&lt;</a>(date_time const &amp;other) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a22d2b503e2d58c7e2983b89c69ed13bd">operator&lt;&lt;</a>(period::period_type f) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#afc9286cc1d2ad907200a3d9ba5d91c00">operator&lt;&lt;</a>(date_time_period const &amp;v) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a2fb78903ee3c27d320798a72bb29a0b0">operator&lt;&lt;</a>(date_time_period_set const &amp;v) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#ae71279d6e8dcc984fe3703b61d545416">operator&lt;&lt;=</a>(period::period_type f)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#aa95d61963c07fb1e39d01d099a4c281a">operator&lt;&lt;=</a>(date_time_period const &amp;v)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a048c4e2a1967351e84006177c14ef5e2">operator&lt;&lt;=</a>(date_time_period_set const &amp;v)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a76c5b0bbc01bd561c25cb83f26e5f535">operator&lt;=</a>(date_time const &amp;other) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#abe5d459e7552ca13b127c682e0d9caab">operator=</a>(date_time const &amp;other)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a2f7ccfb9e28fa3bb172be9f0446caafd">operator=</a>(date_time_period_set const &amp;f)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a4f11ded4c5383cc3fcd3684d0aa43892">operator==</a>(date_time const &amp;other) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a1907c677ae9b7d0736705df8ad58b3aa">operator&gt;</a>(date_time const &amp;other) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a4d807fa280bbe8d88efbc9a05f4a2d7c">operator&gt;=</a>(date_time const &amp;other) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a3a53ba943cb5140bafbfbda3d44b4083">operator&gt;&gt;</a>(period::period_type f) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a50f73791a4a5b4b4a32483030d20e324">operator&gt;&gt;</a>(date_time_period const &amp;v) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#ad7132f1fb92d1703925b4d3d054c0c19">operator&gt;&gt;</a>(date_time_period_set const &amp;v) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a178faa979338310b9a92370a3618fa0e">operator&gt;&gt;=</a>(period::period_type f)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a4605cf04447095908cba7a1cba700b9e">operator&gt;&gt;=</a>(date_time_period const &amp;v)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a797242365127dae7142f0a950c4e4e78">operator&gt;&gt;=</a>(date_time_period_set const &amp;v)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a4c0ed3be4d5d3bb44014a2ea12927ff8">set</a>(period::period_type f, int v)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a704626c84b012080f5e0b73db3d080fb">swap</a>(date_time &amp;other)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a17aa2b54462ebcf1860f8e4db9f7868e">time</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time.html#a71bc51cd2ef635dfb0da6c0b740dcb5f">time</a>(double v)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><b>~date_time</b>() (defined in <a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a>)</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,1169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::date_time Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::date_time Class Reference<br/>
+<small>
+[<a class="el" href="group__date__time.html">Date, Time, Timezone and Calendar manipulations</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::date_time" -->
+<p>this class represents a date time and allows to perform various operation according to the locale settings.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="date__time_8hpp_source.html">boost/locale/date_time.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#ae7a3b74e7512ddc4d618eb1f51c3d2b0">date_time</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a7d98e552f2ff8a421a5c226102ba0138">date_time</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a45008e76b980e7487e3d61b8372d67ae">date_time</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;other, <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;set)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#abe5d459e7552ca13b127c682e0d9caab">operator=</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#addfee06ea6efa5fdca252191176b5756">date_time</a> (double time)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#ab806af3aee6d70057d1f8e6fbfd09216">date_time</a> (double time, <a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const &amp;cal)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#ada52e84093a2775db6e0b3c399b0b9cf">date_time</a> (<a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const &amp;cal)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#abfa9db762ab227427778d8fc3c2bf73d">date_time</a> (<a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;set)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a871745debde77a28f5fbc6e2b2a5f869">date_time</a> (<a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;set, <a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const &amp;cal)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a2f7ccfb9e28fa3bb172be9f0446caafd">operator=</a> (<a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;f)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a4c0ed3be4d5d3bb44014a2ea12927ff8">set</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f, int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#ac2a3a8f6fdba552b19e478bb6757523e">operator/</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a0df3596add1804b1f64d363fea181fe2">operator+</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#ac870c0fcba5814cd91bb9c63823e280a">operator-</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#ab3117067df65d1c33e89ab375f03d27c">operator+=</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a38468aff1a820dc1c41a2a8280120848">operator-=</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a22d2b503e2d58c7e2983b89c69ed13bd">operator&lt;&lt;</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a3a53ba943cb5140bafbfbda3d44b4083">operator&gt;&gt;</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#ae71279d6e8dcc984fe3703b61d545416">operator&lt;&lt;=</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a178faa979338310b9a92370a3618fa0e">operator&gt;&gt;=</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a4e23796608a8ef0cbd5338f21d220a73">operator+</a> (<a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;v) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#af83662eb6a5d2298cda9159f5277a563">operator-</a> (<a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;v) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a7116785ff9f8b5f403e10a24b9b4477d">operator+=</a> (<a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a6780aae474f33f0a64e7b457789d7524">operator-=</a> (<a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#afc9286cc1d2ad907200a3d9ba5d91c00">operator&lt;&lt;</a> (<a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;v) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a50f73791a4a5b4b4a32483030d20e324">operator&gt;&gt;</a> (<a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;v) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#aa95d61963c07fb1e39d01d099a4c281a">operator&lt;&lt;=</a> (<a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a4605cf04447095908cba7a1cba700b9e">operator&gt;&gt;=</a> (<a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#aa362fdfe044d1c56c4fe939bd3d406bc">operator+</a> (<a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;v) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a464e16b35656568b21f34cb8b3e2c81a">operator-</a> (<a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;v) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a1e5c7d2a8fed92d1e71f3dda2548b637">operator+=</a> (<a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#ae03dfadaf23e2ff93ae3d456dd3eb05f">operator-=</a> (<a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a2fb78903ee3c27d320798a72bb29a0b0">operator&lt;&lt;</a> (<a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;v) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#ad7132f1fb92d1703925b4d3d054c0c19">operator&gt;&gt;</a> (<a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;v) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a048c4e2a1967351e84006177c14ef5e2">operator&lt;&lt;=</a> (<a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a797242365127dae7142f0a950c4e4e78">operator&gt;&gt;=</a> (<a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a17aa2b54462ebcf1860f8e4db9f7868e">time</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a71bc51cd2ef635dfb0da6c0b740dcb5f">time</a> (double v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a4f11ded4c5383cc3fcd3684d0aa43892">operator==</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;other) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a289953d80af568f86ddf533c0b161663">operator!=</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;other) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a7b27ad955eade1013a43336e2a17adec">operator&lt;</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;other) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a1907c677ae9b7d0736705df8ad58b3aa">operator&gt;</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;other) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a76c5b0bbc01bd561c25cb83f26e5f535">operator&lt;=</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;other) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a4d807fa280bbe8d88efbc9a05f4a2d7c">operator&gt;=</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;other) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a704626c84b012080f5e0b73db3d080fb">swap</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a36df44f891d2a39ca16f57e568b67a3d">difference</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;other, <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a3363a0c562300095432a17e472d2e52d">minimum</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#adb258ce11408b62bc0f14a60a05f0752">maximum</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html#a047e6e010df55fee166dcb3c9e7d3b95">is_in_daylight_saving_time</a> () const </td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>this class represents a date time and allows to perform various operation according to the locale settings. </p>
+<p>This class allows to manipulate various aspects of dates and times easily using arithmetic operations with periods.</p>
+<p>General arithmetic functions:</p>
+<ul>
+<li><a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> + <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> = <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>: move time point forward by specific periods like <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> + month;</li>
+<li><a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> - <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> = <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>: move time point backward by specific periods like <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> - month;</li>
+<li><a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> &lt;&lt; <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> = <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>: roll time point forward by specific periods with rolling to begin if overflows: like "2010-01-31" &lt;&lt; 2* day == "2010-01-02" instead of "2010-02-02"</li>
+<li><a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> &gt;&gt; <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> = <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>: roll time point backward by specific periods with rolling to end if overflows: like "2010-01-02" &gt;&gt; 2* day == "2010-01-31" instead of "2009-12-30"</li>
+<li><a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> / period_type = int - current period value: like "2010-12-21" / month == 12. "2010-12-21" / year = 2010</li>
+<li>(<a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> - <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>) / period_type = int: distance between dates in period_type. Like ("2010-12-01" - "2008-12-01") / month = 24.</li>
+</ul>
+<p>You can also assign specific periods using assignment operator like: some_time = year * 1995 that sets the year to 1995. </p>
+<dl><dt><b>Examples: </b></dt><dd>
+<p><a class="el" href="calendar_8cpp-example.html#_a1">calendar.cpp</a>.</p>
+</dd>
+</dl><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ae7a3b74e7512ddc4d618eb1f51c3d2b0"></a><!-- doxytag: member="boost::locale::date_time::date_time" ref="ae7a3b74e7512ddc4d618eb1f51c3d2b0" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::date_time::date_time </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Dafault constructor, uses default calendar initialized <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> object to current time.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if the global locale does not have <a class="el" href="classboost_1_1locale_1_1calendar__facet.html">calendar_facet</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a7d98e552f2ff8a421a5c226102ba0138"></a><!-- doxytag: member="boost::locale::date_time::date_time" ref="a7d98e552f2ff8a421a5c226102ba0138" args="(date_time const &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::date_time::date_time </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>copy <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="a45008e76b980e7487e3d61b8372d67ae"></a><!-- doxytag: member="boost::locale::date_time::date_time" ref="a45008e76b980e7487e3d61b8372d67ae" args="(date_time const &amp;other, date_time_period_set const &amp;set)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::date_time::date_time </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>set</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>copy <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> and change some fields according to the <em>set</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="addfee06ea6efa5fdca252191176b5756"></a><!-- doxytag: member="boost::locale::date_time::date_time" ref="addfee06ea6efa5fdca252191176b5756" args="(double time)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::date_time::date_time </td>
+ <td>(</td>
+ <td class="paramtype">double&nbsp;</td>
+ <td class="paramname"> <em>time</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> object using POSIX time <em>time</em> and default calendar</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if the global locale does not have <a class="el" href="classboost_1_1locale_1_1calendar__facet.html">calendar_facet</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ab806af3aee6d70057d1f8e6fbfd09216"></a><!-- doxytag: member="boost::locale::date_time::date_time" ref="ab806af3aee6d70057d1f8e6fbfd09216" args="(double time, calendar const &amp;cal)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::date_time::date_time </td>
+ <td>(</td>
+ <td class="paramtype">double&nbsp;</td>
+ <td class="paramname"> <em>time</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>cal</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> object using POSIX time <em>time</em> and calendar <em>cal</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ada52e84093a2775db6e0b3c399b0b9cf"></a><!-- doxytag: member="boost::locale::date_time::date_time" ref="ada52e84093a2775db6e0b3c399b0b9cf" args="(calendar const &amp;cal)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::date_time::date_time </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>cal</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> object using calendar <em>cal</em> and initializes it to current time. </p>
+
+</div>
+</div>
+<a class="anchor" id="abfa9db762ab227427778d8fc3c2bf73d"></a><!-- doxytag: member="boost::locale::date_time::date_time" ref="abfa9db762ab227427778d8fc3c2bf73d" args="(date_time_period_set const &amp;set)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::date_time::date_time </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>set</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> object using default calendar and define values given in <em>set</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if the global locale does not have <a class="el" href="classboost_1_1locale_1_1calendar__facet.html">calendar_facet</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a871745debde77a28f5fbc6e2b2a5f869"></a><!-- doxytag: member="boost::locale::date_time::date_time" ref="a871745debde77a28f5fbc6e2b2a5f869" args="(date_time_period_set const &amp;set, calendar const &amp;cal)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::date_time::date_time </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>set</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>cal</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> object using calendar <em>cal</em> and define values given in <em>set</em> </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a36df44f891d2a39ca16f57e568b67a3d"></a><!-- doxytag: member="boost::locale::date_time::difference" ref="a36df44f891d2a39ca16f57e568b67a3d" args="(date_time const &amp;other, period::period_type f) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::date_time::difference </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>calculate the distance from this <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> to <em>other</em> in terms of perios <em>f</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="af6436a546d3b944238f9fa952e5e18bd"></a><!-- doxytag: member="boost::locale::date_time::get" ref="af6436a546d3b944238f9fa952e5e18bd" args="(period::period_type f) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::date_time::get </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>get specific period <em>f</em> value </p>
+
+</div>
+</div>
+<a class="anchor" id="a047e6e010df55fee166dcb3c9e7d3b95"></a><!-- doxytag: member="boost::locale::date_time::is_in_daylight_saving_time" ref="a047e6e010df55fee166dcb3c9e7d3b95" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::date_time::is_in_daylight_saving_time </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Check if *this time point is in daylight saving time </p>
+
+</div>
+</div>
+<a class="anchor" id="adb258ce11408b62bc0f14a60a05f0752"></a><!-- doxytag: member="boost::locale::date_time::maximum" ref="adb258ce11408b62bc0f14a60a05f0752" args="(period::period_type f) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::date_time::maximum </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get minimal possible value for *this time point for a period <em>f</em>. For example in February maximum(day) may be 28 or 29, in January maximum(day)==31 </p>
+
+</div>
+</div>
+<a class="anchor" id="a3363a0c562300095432a17e472d2e52d"></a><!-- doxytag: member="boost::locale::date_time::minimum" ref="a3363a0c562300095432a17e472d2e52d" args="(period::period_type f) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::date_time::minimum </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get minimal possible value for *this time point for a period <em>f</em>. </p>
+
+</div>
+</div>
+<a class="anchor" id="a289953d80af568f86ddf533c0b161663"></a><!-- doxytag: member="boost::locale::date_time::operator!=" ref="a289953d80af568f86ddf533c0b161663" args="(date_time const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::date_time::operator!= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>compare <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> in the timeline (ignores difference in calendar, timezone etc) </p>
+
+</div>
+</div>
+<a class="anchor" id="aa362fdfe044d1c56c4fe939bd3d406bc"></a><!-- doxytag: member="boost::locale::date_time::operator+" ref="aa362fdfe044d1c56c4fe939bd3d406bc" args="(date_time_period_set const &amp;v) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> boost::locale::date_time::operator+ </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>add <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> v to the current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="a0df3596add1804b1f64d363fea181fe2"></a><!-- doxytag: member="boost::locale::date_time::operator+" ref="a0df3596add1804b1f64d363fea181fe2" args="(period::period_type f) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> boost::locale::date_time::operator+ </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>add single period f to the current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="a4e23796608a8ef0cbd5338f21d220a73"></a><!-- doxytag: member="boost::locale::date_time::operator+" ref="a4e23796608a8ef0cbd5338f21d220a73" args="(date_time_period const &amp;v) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> boost::locale::date_time::operator+ </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>add <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> to the current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="a7116785ff9f8b5f403e10a24b9b4477d"></a><!-- doxytag: member="boost::locale::date_time::operator+=" ref="a7116785ff9f8b5f403e10a24b9b4477d" args="(date_time_period const &amp;v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time::operator+= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>add <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> to the current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="ab3117067df65d1c33e89ab375f03d27c"></a><!-- doxytag: member="boost::locale::date_time::operator+=" ref="ab3117067df65d1c33e89ab375f03d27c" args="(period::period_type f)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time::operator+= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>add single period f to the current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="a1e5c7d2a8fed92d1e71f3dda2548b637"></a><!-- doxytag: member="boost::locale::date_time::operator+=" ref="a1e5c7d2a8fed92d1e71f3dda2548b637" args="(date_time_period_set const &amp;v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time::operator+= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>add <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> v to the current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="a464e16b35656568b21f34cb8b3e2c81a"></a><!-- doxytag: member="boost::locale::date_time::operator&#45;" ref="a464e16b35656568b21f34cb8b3e2c81a" args="(date_time_period_set const &amp;v) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> boost::locale::date_time::operator- </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>subtract <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> v from the current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="ac870c0fcba5814cd91bb9c63823e280a"></a><!-- doxytag: member="boost::locale::date_time::operator&#45;" ref="ac870c0fcba5814cd91bb9c63823e280a" args="(period::period_type f) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> boost::locale::date_time::operator- </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>subtract single period f from the current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="af83662eb6a5d2298cda9159f5277a563"></a><!-- doxytag: member="boost::locale::date_time::operator&#45;" ref="af83662eb6a5d2298cda9159f5277a563" args="(date_time_period const &amp;v) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> boost::locale::date_time::operator- </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>subtract <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> from the current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="a38468aff1a820dc1c41a2a8280120848"></a><!-- doxytag: member="boost::locale::date_time::operator&#45;=" ref="a38468aff1a820dc1c41a2a8280120848" args="(period::period_type f)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time::operator-= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>subtract single period f from the current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="a6780aae474f33f0a64e7b457789d7524"></a><!-- doxytag: member="boost::locale::date_time::operator&#45;=" ref="a6780aae474f33f0a64e7b457789d7524" args="(date_time_period const &amp;v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time::operator-= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>subtract <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> from the current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="ae03dfadaf23e2ff93ae3d456dd3eb05f"></a><!-- doxytag: member="boost::locale::date_time::operator&#45;=" ref="ae03dfadaf23e2ff93ae3d456dd3eb05f" args="(date_time_period_set const &amp;v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time::operator-= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>subtract <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> v from the current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="ac2a3a8f6fdba552b19e478bb6757523e"></a><!-- doxytag: member="boost::locale::date_time::operator/" ref="ac2a3a8f6fdba552b19e478bb6757523e" args="(period::period_type f) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::date_time::operator/ </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>syntactic sugar for get(f) </p>
+
+</div>
+</div>
+<a class="anchor" id="a7b27ad955eade1013a43336e2a17adec"></a><!-- doxytag: member="boost::locale::date_time::operator&lt;" ref="a7b27ad955eade1013a43336e2a17adec" args="(date_time const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::date_time::operator&lt; </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>compare <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> in the timeline (ignores difference in calendar, timezone etc) </p>
+
+</div>
+</div>
+<a class="anchor" id="afc9286cc1d2ad907200a3d9ba5d91c00"></a><!-- doxytag: member="boost::locale::date_time::operator&lt;&lt;" ref="afc9286cc1d2ad907200a3d9ba5d91c00" args="(date_time_period const &amp;v) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> boost::locale::date_time::operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>roll current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> forward by <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> v </p>
+
+</div>
+</div>
+<a class="anchor" id="a22d2b503e2d58c7e2983b89c69ed13bd"></a><!-- doxytag: member="boost::locale::date_time::operator&lt;&lt;" ref="a22d2b503e2d58c7e2983b89c69ed13bd" args="(period::period_type f) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> boost::locale::date_time::operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>roll forward a date by single period f. </p>
+
+</div>
+</div>
+<a class="anchor" id="a2fb78903ee3c27d320798a72bb29a0b0"></a><!-- doxytag: member="boost::locale::date_time::operator&lt;&lt;" ref="a2fb78903ee3c27d320798a72bb29a0b0" args="(date_time_period_set const &amp;v) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> boost::locale::date_time::operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>roll current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> forward by <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> v </p>
+
+</div>
+</div>
+<a class="anchor" id="aa95d61963c07fb1e39d01d099a4c281a"></a><!-- doxytag: member="boost::locale::date_time::operator&lt;&lt;=" ref="aa95d61963c07fb1e39d01d099a4c281a" args="(date_time_period const &amp;v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time::operator&lt;&lt;= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>roll current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> forward by <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> v </p>
+
+</div>
+</div>
+<a class="anchor" id="ae71279d6e8dcc984fe3703b61d545416"></a><!-- doxytag: member="boost::locale::date_time::operator&lt;&lt;=" ref="ae71279d6e8dcc984fe3703b61d545416" args="(period::period_type f)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time::operator&lt;&lt;= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>roll forward a date by single period f. </p>
+
+</div>
+</div>
+<a class="anchor" id="a048c4e2a1967351e84006177c14ef5e2"></a><!-- doxytag: member="boost::locale::date_time::operator&lt;&lt;=" ref="a048c4e2a1967351e84006177c14ef5e2" args="(date_time_period_set const &amp;v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time::operator&lt;&lt;= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>roll current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> forward by <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> v </p>
+
+</div>
+</div>
+<a class="anchor" id="a76c5b0bbc01bd561c25cb83f26e5f535"></a><!-- doxytag: member="boost::locale::date_time::operator&lt;=" ref="a76c5b0bbc01bd561c25cb83f26e5f535" args="(date_time const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::date_time::operator&lt;= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>compare <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> in the timeline (ignores difference in calendar, timezone etc) </p>
+
+</div>
+</div>
+<a class="anchor" id="a2f7ccfb9e28fa3bb172be9f0446caafd"></a><!-- doxytag: member="boost::locale::date_time::operator=" ref="a2f7ccfb9e28fa3bb172be9f0446caafd" args="(date_time_period_set const &amp;f)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time::operator= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>assign values to various periods in set <em>f</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="abe5d459e7552ca13b127c682e0d9caab"></a><!-- doxytag: member="boost::locale::date_time::operator=" ref="abe5d459e7552ca13b127c682e0d9caab" args="(date_time const &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time::operator= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>assign the <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="a4f11ded4c5383cc3fcd3684d0aa43892"></a><!-- doxytag: member="boost::locale::date_time::operator==" ref="a4f11ded4c5383cc3fcd3684d0aa43892" args="(date_time const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::date_time::operator== </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>compare <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> in the timeline (ignores difference in calendar, timezone etc) </p>
+
+</div>
+</div>
+<a class="anchor" id="a1907c677ae9b7d0736705df8ad58b3aa"></a><!-- doxytag: member="boost::locale::date_time::operator&gt;" ref="a1907c677ae9b7d0736705df8ad58b3aa" args="(date_time const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::date_time::operator&gt; </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>compare <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> in the timeline (ignores difference in calendar, timezone etc) </p>
+
+</div>
+</div>
+<a class="anchor" id="a4d807fa280bbe8d88efbc9a05f4a2d7c"></a><!-- doxytag: member="boost::locale::date_time::operator&gt;=" ref="a4d807fa280bbe8d88efbc9a05f4a2d7c" args="(date_time const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::date_time::operator&gt;= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>compare <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> in the timeline (ignores difference in calendar, timezone etc) </p>
+
+</div>
+</div>
+<a class="anchor" id="a50f73791a4a5b4b4a32483030d20e324"></a><!-- doxytag: member="boost::locale::date_time::operator&gt;&gt;" ref="a50f73791a4a5b4b4a32483030d20e324" args="(date_time_period const &amp;v) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> boost::locale::date_time::operator&gt;&gt; </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>roll current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> backward by <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> v </p>
+
+</div>
+</div>
+<a class="anchor" id="a3a53ba943cb5140bafbfbda3d44b4083"></a><!-- doxytag: member="boost::locale::date_time::operator&gt;&gt;" ref="a3a53ba943cb5140bafbfbda3d44b4083" args="(period::period_type f) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> boost::locale::date_time::operator&gt;&gt; </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>roll backward a date by single period f. </p>
+
+</div>
+</div>
+<a class="anchor" id="ad7132f1fb92d1703925b4d3d054c0c19"></a><!-- doxytag: member="boost::locale::date_time::operator&gt;&gt;" ref="ad7132f1fb92d1703925b4d3d054c0c19" args="(date_time_period_set const &amp;v) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> boost::locale::date_time::operator&gt;&gt; </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>roll current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> backward by <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> v </p>
+
+</div>
+</div>
+<a class="anchor" id="a797242365127dae7142f0a950c4e4e78"></a><!-- doxytag: member="boost::locale::date_time::operator&gt;&gt;=" ref="a797242365127dae7142f0a950c4e4e78" args="(date_time_period_set const &amp;v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time::operator&gt;&gt;= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>roll current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> backward by <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> v </p>
+
+</div>
+</div>
+<a class="anchor" id="a178faa979338310b9a92370a3618fa0e"></a><!-- doxytag: member="boost::locale::date_time::operator&gt;&gt;=" ref="a178faa979338310b9a92370a3618fa0e" args="(period::period_type f)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time::operator&gt;&gt;= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>roll backward a date by single period f. </p>
+
+</div>
+</div>
+<a class="anchor" id="a4605cf04447095908cba7a1cba700b9e"></a><!-- doxytag: member="boost::locale::date_time::operator&gt;&gt;=" ref="a4605cf04447095908cba7a1cba700b9e" args="(date_time_period const &amp;v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time::operator&gt;&gt;= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>roll current <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> backward by <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> v </p>
+
+</div>
+</div>
+<a class="anchor" id="a4c0ed3be4d5d3bb44014a2ea12927ff8"></a><!-- doxytag: member="boost::locale::date_time::set" ref="a4c0ed3be4d5d3bb44014a2ea12927ff8" args="(period::period_type f, int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::date_time::set </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>set specific period <em>f</em> value to <em>v</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="a704626c84b012080f5e0b73db3d080fb"></a><!-- doxytag: member="boost::locale::date_time::swap" ref="a704626c84b012080f5e0b73db3d080fb" args="(date_time &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::date_time::swap </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>swaps two dates - efficient, does not throw </p>
+
+</div>
+</div>
+<a class="anchor" id="a17aa2b54462ebcf1860f8e4db9f7868e"></a><!-- doxytag: member="boost::locale::date_time::time" ref="a17aa2b54462ebcf1860f8e4db9f7868e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double boost::locale::date_time::time </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get POSIX time</p>
+<p>The POSIX time is number of seconds since January 1st, 1970 00:00 UTC, ignoring leap seconds. </p>
+
+</div>
+</div>
+<a class="anchor" id="a71bc51cd2ef635dfb0da6c0b740dcb5f"></a><!-- doxytag: member="boost::locale::date_time::time" ref="a71bc51cd2ef635dfb0da6c0b740dcb5f" args="(double v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::date_time::time </td>
+ <td>(</td>
+ <td class="paramtype">double&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>set POSIX time</p>
+<p>The POSIX time is number of seconds since January 1st, 1970 00:00 UTC, ignoring leap seconds. This time can be fetched from Operating system clock using C function time, gettimeofday and others. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="date__time_8hpp_source.html">date_time.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__duration-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__duration-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::date_time_duration Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1date__time__duration.html">boost::locale::date_time_duration</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time__duration.html#ac4b0d49c998032003553e8faf0e5f2cb">date_time_duration</a>(date_time const &amp;first, date_time const &amp;second)</td><td><a class="el" href="classboost_1_1locale_1_1date__time__duration.html">boost::locale::date_time_duration</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time__duration.html#a100bac2003f4e07ea498e10d0dd1f6b1">end</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1date__time__duration.html">boost::locale::date_time_duration</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(period::period_type f) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time__duration.html">boost::locale::date_time_duration</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time__duration.html#ac1a04091cc80b98f6faf7e5e73ce5f35">operator/</a>(period::period_type f) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time__duration.html">boost::locale::date_time_duration</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time__duration.html#afc2f075595d1774c866250d192b9db31">start</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1date__time__duration.html">boost::locale::date_time_duration</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__duration.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__duration.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,217 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::date_time_duration Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1date__time__duration.html">boost::locale::date_time_duration</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::date_time_duration Class Reference<br/>
+<small>
+[<a class="el" href="group__date__time.html">Date, Time, Timezone and Calendar manipulations</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::date_time_duration" -->
+<p>This class represents a period: a pair of two <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> objects.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="date__time_8hpp_source.html">boost/locale/date_time.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__duration.html#ac4b0d49c998032003553e8faf0e5f2cb">date_time_duration</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;first, <a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;second)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__duration.html#ac1a04091cc80b98f6faf7e5e73ce5f35">operator/</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__duration.html#afc2f075595d1774c866250d192b9db31">start</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__duration.html#a100bac2003f4e07ea498e10d0dd1f6b1">end</a> () const </td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This class represents a period: a pair of two <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> objects. </p>
+<p>It is generally used as syntactic sugar to calculate difference between two dates.</p>
+<p>Note: it stores references to the original objects, so it is not recommended to be used outside of the equation you calculate the difference in. </p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ac4b0d49c998032003553e8faf0e5f2cb"></a><!-- doxytag: member="boost::locale::date_time_duration::date_time_duration" ref="ac4b0d49c998032003553e8faf0e5f2cb" args="(date_time const &amp;first, date_time const &amp;second)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::date_time_duration::date_time_duration </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>first</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>second</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create an object were <em>first</em> represents earlier point on time line and <em>second</em> is later point. </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a100bac2003f4e07ea498e10d0dd1f6b1"></a><!-- doxytag: member="boost::locale::date_time_duration::end" ref="a100bac2003f4e07ea498e10d0dd1f6b1" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time_duration::end </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get ending point </p>
+
+</div>
+</div>
+<a class="anchor" id="a5d1b702c281d205e1dafbb15ce85b447"></a><!-- doxytag: member="boost::locale::date_time_duration::get" ref="a5d1b702c281d205e1dafbb15ce85b447" args="(period::period_type f) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::date_time_duration::get </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>find a difference in terms of period_type <em>f</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ac1a04091cc80b98f6faf7e5e73ce5f35"></a><!-- doxytag: member="boost::locale::date_time_duration::operator/" ref="ac1a04091cc80b98f6faf7e5e73ce5f35" args="(period::period_type f) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::date_time_duration::operator/ </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Syntactic sugar for get(f) </p>
+
+</div>
+</div>
+<a class="anchor" id="afc2f075595d1774c866250d192b9db31"></a><!-- doxytag: member="boost::locale::date_time_duration::start" ref="afc2f075595d1774c866250d192b9db31" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const&amp; boost::locale::date_time_duration::start </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get starting point </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="date__time_8hpp_source.html">date_time.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__error-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__error-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::date_time_error Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1date__time__error.html">boost::locale::date_time_error</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time__error.html#abbd57421fc4617b23ecb33c398152dc8">date_time_error</a>(std::string const &amp;e)</td><td><a class="el" href="classboost_1_1locale_1_1date__time__error.html">boost::locale::date_time_error</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__error.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__error.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::date_time_error Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1date__time__error.html">boost::locale::date_time_error</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::date_time_error Class Reference<br/>
+<small>
+[<a class="el" href="group__date__time.html">Date, Time, Timezone and Calendar manipulations</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::date_time_error" -->
+<p>This error is thrown in case of invalid state that occurred.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="date__time_8hpp_source.html">boost/locale/date_time.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__error.html#abbd57421fc4617b23ecb33c398152dc8">date_time_error</a> (std::string const &amp;e)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This error is thrown in case of invalid state that occurred. </p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="abbd57421fc4617b23ecb33c398152dc8"></a><!-- doxytag: member="boost::locale::date_time_error::date_time_error" ref="abbd57421fc4617b23ecb33c398152dc8" args="(std::string const &amp;e)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::date_time_error::date_time_error </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>e</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Constructor of <a class="el" href="classboost_1_1locale_1_1date__time__error.html" title="This error is thrown in case of invalid state that occurred.">date_time_error</a> class </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="date__time_8hpp_source.html">date_time.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__period__set-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__period__set-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::date_time_period_set Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">boost::locale::date_time_period_set</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a0e70247c1738dbf6869e6d8c04461893">add</a>(date_time_period f)</td><td><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">boost::locale::date_time_period_set</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a635b8d91c4c8da99857810e42a0aff65">date_time_period_set</a>()</td><td><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">boost::locale::date_time_period_set</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a0966962f5da78fc06121d1455efcbbae">date_time_period_set</a>(period::period_type f)</td><td><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">boost::locale::date_time_period_set</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a144842e64250343d87aaff270a9b53a0">date_time_period_set</a>(date_time_period const &amp;fl)</td><td><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">boost::locale::date_time_period_set</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a177a4c3cb2de3b5c9b5fe5738660eba4">operator[]</a>(size_t n) const </td><td><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">boost::locale::date_time_period_set</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a0b726bd57ce8b631de89bbf404b8df2a">size</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">boost::locale::date_time_period_set</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__period__set.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1date__time__period__set.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,227 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::date_time_period_set Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">boost::locale::date_time_period_set</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::date_time_period_set Class Reference<br/>
+<small>
+[<a class="el" href="group__date__time.html">Date, Time, Timezone and Calendar manipulations</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::date_time_period_set" -->
+<p>this class that represents a set of periods,
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="date__time_8hpp_source.html">boost/locale/date_time.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a635b8d91c4c8da99857810e42a0aff65">date_time_period_set</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a0966962f5da78fc06121d1455efcbbae">date_time_period_set</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a144842e64250343d87aaff270a9b53a0">date_time_period_set</a> (<a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;fl)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a0e70247c1738dbf6869e6d8c04461893">add</a> (<a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> f)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a0b726bd57ce8b631de89bbf404b8df2a">size</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a177a4c3cb2de3b5c9b5fe5738660eba4">operator[]</a> (size_t n) const </td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>this class that represents a set of periods, </p>
+<p>It is generally created by operations on periods: 1995*year + 3*month + 1*day. Note: operations are not commutative. </p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a635b8d91c4c8da99857810e42a0aff65"></a><!-- doxytag: member="boost::locale::date_time_period_set::date_time_period_set" ref="a635b8d91c4c8da99857810e42a0aff65" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::date_time_period_set::date_time_period_set </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Default constructor - empty set </p>
+
+</div>
+</div>
+<a class="anchor" id="a0966962f5da78fc06121d1455efcbbae"></a><!-- doxytag: member="boost::locale::date_time_period_set::date_time_period_set" ref="a0966962f5da78fc06121d1455efcbbae" args="(period::period_type f)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::date_time_period_set::date_time_period_set </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a set of single period with value 1 </p>
+
+</div>
+</div>
+<a class="anchor" id="a144842e64250343d87aaff270a9b53a0"></a><!-- doxytag: member="boost::locale::date_time_period_set::date_time_period_set" ref="a144842e64250343d87aaff270a9b53a0" args="(date_time_period const &amp;fl)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::date_time_period_set::date_time_period_set </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>fl</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a set of single period <em>fl</em> </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a0e70247c1738dbf6869e6d8c04461893"></a><!-- doxytag: member="boost::locale::date_time_period_set::add" ref="a0e70247c1738dbf6869e6d8c04461893" args="(date_time_period f)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::date_time_period_set::add </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Append <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <em>f</em> to the set </p>
+
+</div>
+</div>
+<a class="anchor" id="a177a4c3cb2de3b5c9b5fe5738660eba4"></a><!-- doxytag: member="boost::locale::date_time_period_set::operator[]" ref="a177a4c3cb2de3b5c9b5fe5738660eba4" args="(size_t n) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> const&amp; boost::locale::date_time_period_set::operator[] </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get item at position <em>n</em> the set, n should be in range [0,size) </p>
+
+</div>
+</div>
+<a class="anchor" id="a0b726bd57ce8b631de89bbf404b8df2a"></a><!-- doxytag: member="boost::locale::date_time_period_set::size" ref="a0b726bd57ce8b631de89bbf404b8df2a" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">size_t boost::locale::date_time_period_set::size </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get number if items in list </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="date__time_8hpp_source.html">date_time.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1generator-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1generator-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::generator Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#a15020562d16dbbe276325b0162d54565">add_messages_domain</a>(std::string const &amp;domain)</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#a12823bbdb209690bfb77caa6404fd91b">add_messages_path</a>(std::string const &amp;path)</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#ae3c095f074329954eb90bb80488c7f76">categories</a>(locale_category_type cats)</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#ad0aa601769d49ea79f354d1e1255cd64">categories</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#ad5e01c555aa43b438f688dbc29725ab8">characters</a>(character_facet_type chars)</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#a78feb6e2caae5cc0b01a287cd48691cb">characters</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#a7b4458ef36df82bc9e359735c55203e8">clear_cache</a>()</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#ade4a0ae57dbe87dfc38aa945f063d3c4">clear_domains</a>()</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#a1804390c65562fa66327152e9dd04c60">clear_options</a>()</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#ae6ef1ec096f219f4e6c092507e41fa35">clear_paths</a>()</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#a75ba62f2ae7daa5a2d6641e36e064ecb">generate</a>(std::string const &amp;id) const </td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#aa98d7869660a1eb9b658b2cd4db495b3">generate</a>(std::locale const &amp;base, std::string const &amp;id) const </td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#a25f1d8fbbab6558213991c99630e851c">generator</a>()</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#a767403ea3f6259fd184a6e355caf62f2">generator</a>(localization_backend_manager const &amp;)</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#ac2d152e2803cd96f4acc646943f2df51">locale_cache_enabled</a>(bool on)</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#aacfcd26484a830723a8a9f9d2e91a0e6">locale_cache_enabled</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#acd80b3f2371c77f4f7e7dfe69ec670ab">operator()</a>(std::string const &amp;id) const </td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#a4804bc5c4a9adb74cffcc2bdac87da1d">set_default_messages_domain</a>(std::string const &amp;domain)</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#ac0bbbb4aca466e59e82b63bcbf2efc8b">set_option</a>(std::string const &amp;name, std::string const &amp;value)</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#a9afb2b0791abbabd39c800e08d9c9717">use_ansi_encoding</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1generator.html#ad9b74721ce3c5e1c39c7e9a4564e1e7b">use_ansi_encoding</a>(bool enc)</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><b>~generator</b>() (defined in <a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a>)</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1generator.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1generator.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,550 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::generator Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::generator Class Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::generator" -->
+<p>the major class used for locale generation
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="generator_8hpp_source.html">boost/locale/generator.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#a25f1d8fbbab6558213991c99630e851c">generator</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#a767403ea3f6259fd184a6e355caf62f2">generator</a> (<a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a> const &amp;)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#ae3c095f074329954eb90bb80488c7f76">categories</a> (<a class="el" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1">locale_category_type</a> cats)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1">locale_category_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#ad0aa601769d49ea79f354d1e1255cd64">categories</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#ad5e01c555aa43b438f688dbc29725ab8">characters</a> (<a class="el" href="namespaceboost_1_1locale.html#a8c993aaf15e683e97d062560ccf914d8">character_facet_type</a> chars)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1locale.html#a8c993aaf15e683e97d062560ccf914d8">character_facet_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#a78feb6e2caae5cc0b01a287cd48691cb">characters</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#a15020562d16dbbe276325b0162d54565">add_messages_domain</a> (std::string const &amp;domain)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#a4804bc5c4a9adb74cffcc2bdac87da1d">set_default_messages_domain</a> (std::string const &amp;domain)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#ade4a0ae57dbe87dfc38aa945f063d3c4">clear_domains</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#a12823bbdb209690bfb77caa6404fd91b">add_messages_path</a> (std::string const &amp;path)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#ae6ef1ec096f219f4e6c092507e41fa35">clear_paths</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#a7b4458ef36df82bc9e359735c55203e8">clear_cache</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#ac2d152e2803cd96f4acc646943f2df51">locale_cache_enabled</a> (bool on)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#aacfcd26484a830723a8a9f9d2e91a0e6">locale_cache_enabled</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#a9afb2b0791abbabd39c800e08d9c9717">use_ansi_encoding</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#ad9b74721ce3c5e1c39c7e9a4564e1e7b">use_ansi_encoding</a> (bool enc)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::locale&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#a75ba62f2ae7daa5a2d6641e36e064ecb">generate</a> (std::string const &amp;id) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::locale&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#aa98d7869660a1eb9b658b2cd4db495b3">generate</a> (std::locale const &amp;base, std::string const &amp;id) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::locale&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#acd80b3f2371c77f4f7e7dfe69ec670ab">operator()</a> (std::string const &amp;id) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#ac0bbbb4aca466e59e82b63bcbf2efc8b">set_option</a> (std::string const &amp;name, std::string const &amp;value)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html#a1804390c65562fa66327152e9dd04c60">clear_options</a> ()</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>the major class used for locale generation </p>
+<p>This class is used for specification of all parameters required for locale generation and caching. This class const member functions are thread safe if locale class implementation is thread safe. </p>
+<dl><dt><b>Examples: </b></dt><dd>
+<p><a class="el" href="boundary_8cpp-example.html#_a0">boundary.cpp</a>, <a class="el" href="calendar_8cpp-example.html#_a0">calendar.cpp</a>, <a class="el" href="collate_8cpp-example.html#_a0">collate.cpp</a>, <a class="el" href="conversions_8cpp-example.html#_a0">conversions.cpp</a>, <a class="el" href="hello_8cpp-example.html#_a0">hello.cpp</a>, <a class="el" href="wboundary_8cpp-example.html#_a0">wboundary.cpp</a>, <a class="el" href="wconversions_8cpp-example.html#_a0">wconversions.cpp</a>, and <a class="el" href="whello_8cpp-example.html#_a0">whello.cpp</a>.</p>
+</dd>
+</dl><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a25f1d8fbbab6558213991c99630e851c"></a><!-- doxytag: member="boost::locale::generator::generator" ref="a25f1d8fbbab6558213991c99630e851c" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::generator::generator </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create new generator using global <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="a767403ea3f6259fd184a6e355caf62f2"></a><!-- doxytag: member="boost::locale::generator::generator" ref="a767403ea3f6259fd184a6e355caf62f2" args="(localization_backend_manager const &amp;)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::generator::generator </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a> const &amp;&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create new generator using specific <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a> </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a15020562d16dbbe276325b0162d54565"></a><!-- doxytag: member="boost::locale::generator::add_messages_domain" ref="a15020562d16dbbe276325b0162d54565" args="(std::string const &amp;domain)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::generator::add_messages_domain </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>domain</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Add a new domain of messages that would be generated. It should be set in order to enable messages support.</p>
+<p>Messages domain has following format: "name" or "name/encoding" where name is the base name of the "mo" file where the catalog is stored without ".mo" extension. For example for file <code>/usr/share/locale/he/LC_MESSAGES/blog</code>.mo it would be <code>blog</code>.</p>
+<p>You can optionally specify the encoding of the keys in the sources by adding "/encoding_name" For example blog/cp1255.</p>
+<p>If not defined all keys are assumed to be UTF-8 encoded.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>When you select a domain for the program using dgettext or message API, you do not specify the encoding part. So for example if the provided domain name was "blog/windows-1255" then for translation you should use dgettext("blog","Hello") </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a12823bbdb209690bfb77caa6404fd91b"></a><!-- doxytag: member="boost::locale::generator::add_messages_path" ref="a12823bbdb209690bfb77caa6404fd91b" args="(std::string const &amp;path)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::generator::add_messages_path </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>path</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Add a search path where dictionaries are looked in.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<ul>
+<li>Under the Windows platform the path is treated as a path in the locale's encoding so if you create locale "en_US.windows-1251" then path would be treated as cp1255, and if it is en_US.UTF-8 it is treated as UTF-8. File name is always opened with a wide file name as wide file names are the native file name on Windows.</li>
+</ul>
+<ul>
+<li>Under POSIX platforms all paths passed as-is regardless of encoding as narrow encodings are the native encodings for POSIX platforms. </li>
+</ul>
+
+</div>
+</div>
+<a class="anchor" id="ae3c095f074329954eb90bb80488c7f76"></a><!-- doxytag: member="boost::locale::generator::categories" ref="ae3c095f074329954eb90bb80488c7f76" args="(locale_category_type cats)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::generator::categories </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1">locale_category_type</a>&nbsp;</td>
+ <td class="paramname"> <em>cats</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set types of facets that should be generated, default all </p>
+
+</div>
+</div>
+<a class="anchor" id="ad0aa601769d49ea79f354d1e1255cd64"></a><!-- doxytag: member="boost::locale::generator::categories" ref="ad0aa601769d49ea79f354d1e1255cd64" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1">locale_category_type</a> boost::locale::generator::categories </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get types of facets that should be generated, default all </p>
+
+</div>
+</div>
+<a class="anchor" id="a78feb6e2caae5cc0b01a287cd48691cb"></a><!-- doxytag: member="boost::locale::generator::characters" ref="a78feb6e2caae5cc0b01a287cd48691cb" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceboost_1_1locale.html#a8c993aaf15e683e97d062560ccf914d8">character_facet_type</a> boost::locale::generator::characters </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get the characters type for which the facets should be generated, default all supported </p>
+
+</div>
+</div>
+<a class="anchor" id="ad5e01c555aa43b438f688dbc29725ab8"></a><!-- doxytag: member="boost::locale::generator::characters" ref="ad5e01c555aa43b438f688dbc29725ab8" args="(character_facet_type chars)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::generator::characters </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceboost_1_1locale.html#a8c993aaf15e683e97d062560ccf914d8">character_facet_type</a>&nbsp;</td>
+ <td class="paramname"> <em>chars</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set the characters type for which the facets should be generated, default all supported </p>
+
+</div>
+</div>
+<a class="anchor" id="a7b4458ef36df82bc9e359735c55203e8"></a><!-- doxytag: member="boost::locale::generator::clear_cache" ref="a7b4458ef36df82bc9e359735c55203e8" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::generator::clear_cache </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Remove all cached locales </p>
+
+</div>
+</div>
+<a class="anchor" id="ade4a0ae57dbe87dfc38aa945f063d3c4"></a><!-- doxytag: member="boost::locale::generator::clear_domains" ref="ade4a0ae57dbe87dfc38aa945f063d3c4" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::generator::clear_domains </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Remove all added domains from the list </p>
+
+</div>
+</div>
+<a class="anchor" id="a1804390c65562fa66327152e9dd04c60"></a><!-- doxytag: member="boost::locale::generator::clear_options" ref="a1804390c65562fa66327152e9dd04c60" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::generator::clear_options </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Clear backend specific options </p>
+
+</div>
+</div>
+<a class="anchor" id="ae6ef1ec096f219f4e6c092507e41fa35"></a><!-- doxytag: member="boost::locale::generator::clear_paths" ref="ae6ef1ec096f219f4e6c092507e41fa35" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::generator::clear_paths </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Remove all added paths </p>
+
+</div>
+</div>
+<a class="anchor" id="aa98d7869660a1eb9b658b2cd4db495b3"></a><!-- doxytag: member="boost::locale::generator::generate" ref="aa98d7869660a1eb9b658b2cd4db495b3" args="(std::locale const &amp;base, std::string const &amp;id) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::locale boost::locale::generator::generate </td>
+ <td>(</td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>base</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Generate a locale with id <em>id</em>. Use <em>base</em> as a locale to which all facets are added, instead of std::locale::classic(). </p>
+
+</div>
+</div>
+<a class="anchor" id="a75ba62f2ae7daa5a2d6641e36e064ecb"></a><!-- doxytag: member="boost::locale::generator::generate" ref="a75ba62f2ae7daa5a2d6641e36e064ecb" args="(std::string const &amp;id) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::locale boost::locale::generator::generate </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>id</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Generate a locale with id <em>id</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ac2d152e2803cd96f4acc646943f2df51"></a><!-- doxytag: member="boost::locale::generator::locale_cache_enabled" ref="ac2d152e2803cd96f4acc646943f2df51" args="(bool on)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::generator::locale_cache_enabled </td>
+ <td>(</td>
+ <td class="paramtype">bool&nbsp;</td>
+ <td class="paramname"> <em>on</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Turn locale caching ON </p>
+
+</div>
+</div>
+<a class="anchor" id="aacfcd26484a830723a8a9f9d2e91a0e6"></a><!-- doxytag: member="boost::locale::generator::locale_cache_enabled" ref="aacfcd26484a830723a8a9f9d2e91a0e6" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::generator::locale_cache_enabled </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get locale cache option </p>
+
+</div>
+</div>
+<a class="anchor" id="acd80b3f2371c77f4f7e7dfe69ec670ab"></a><!-- doxytag: member="boost::locale::generator::operator()" ref="acd80b3f2371c77f4f7e7dfe69ec670ab" args="(std::string const &amp;id) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::locale boost::locale::generator::operator() </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>id</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Shortcut to generate(id) </p>
+
+</div>
+</div>
+<a class="anchor" id="a4804bc5c4a9adb74cffcc2bdac87da1d"></a><!-- doxytag: member="boost::locale::generator::set_default_messages_domain" ref="a4804bc5c4a9adb74cffcc2bdac87da1d" args="(std::string const &amp;domain)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::generator::set_default_messages_domain </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>domain</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set default message domain. If this member was not called, the first added messages domain is used. If the domain <em>domain</em> is not added yet it is added. </p>
+
+</div>
+</div>
+<a class="anchor" id="ac0bbbb4aca466e59e82b63bcbf2efc8b"></a><!-- doxytag: member="boost::locale::generator::set_option" ref="ac0bbbb4aca466e59e82b63bcbf2efc8b" args="(std::string const &amp;name, std::string const &amp;value)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::generator::set_option </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set backend specific option </p>
+
+</div>
+</div>
+<a class="anchor" id="a9afb2b0791abbabd39c800e08d9c9717"></a><!-- doxytag: member="boost::locale::generator::use_ansi_encoding" ref="a9afb2b0791abbabd39c800e08d9c9717" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::generator::use_ansi_encoding </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Check if by default ANSI encoding is selected or UTF-8 onces. The default is false. </p>
+
+</div>
+</div>
+<a class="anchor" id="ad9b74721ce3c5e1c39c7e9a4564e1e7b"></a><!-- doxytag: member="boost::locale::generator::use_ansi_encoding" ref="ad9b74721ce3c5e1c39c7e9a4564e1e7b" args="(bool enc)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::generator::use_ansi_encoding </td>
+ <td>(</td>
+ <td class="paramtype">bool&nbsp;</td>
+ <td class="paramname"> <em>enc</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Select ANSI encodings as default system encoding rather then UTF-8 by default under Windows.</p>
+<p>The default is the most portable and most powerful encoding, UTF-8, but the user can select "system" one if dealing with legacy applications </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="generator_8hpp_source.html">generator.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1hold__ptr-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1hold__ptr-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::hold_ptr&lt; T &gt; Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a907a9385c1a15dab07aade7466620bf6">get</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a30dbc88eb9fde35198774f3ace282712">get</a>()</td><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a681ee3d579435f9f2f171b830c402072">hold_ptr</a>()</td><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a0007514dc0410ccb16adf01c56874f52">hold_ptr</a>(T *v)</td><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a></td><td><code> [inline, explicit]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a2c8a19e35ff3c57100b24371854f31b7">operator*</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#af99f3719b755b787b022253aa6f8d1c0">operator*</a>()</td><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a7ae6b54ed5471dd9560904c7ff8a7971">operator-&gt;</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a474f2619452b63408e1e761f414328f4">operator-&gt;</a>()</td><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a2d7b2957c037589b65b2cdd4f61ebe03">release</a>()</td><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#acb84b86bb220d663ffe13e5be9cfd72e">reset</a>(T *p=0)</td><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a3e2640b5df80f86aeb68a6ee78dfd6f9">swap</a>(hold_ptr &amp;other)</td><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#aace934e7a8b3f1880d1a06fa85795a48">~hold_ptr</a>()</td><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1hold__ptr.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1hold__ptr.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,344 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::hold_ptr&lt; T &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::hold_ptr&lt; T &gt; Class Template Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::hold_ptr" -->
+<p>a smart pointer similar to std::auto_ptr but it is non-copyable and the underlying object has the same constness as the pointer itself (unlike an ordinary pointer).
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="hold__ptr_8hpp_source.html">boost/locale/hold_ptr.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a681ee3d579435f9f2f171b830c402072">hold_ptr</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a0007514dc0410ccb16adf01c56874f52">hold_ptr</a> (T *v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#aace934e7a8b3f1880d1a06fa85795a48">~hold_ptr</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">T const *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a907a9385c1a15dab07aade7466620bf6">get</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a30dbc88eb9fde35198774f3ace282712">get</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">T const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a2c8a19e35ff3c57100b24371854f31b7">operator*</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">T &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#af99f3719b755b787b022253aa6f8d1c0">operator*</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">T const *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a7ae6b54ed5471dd9560904c7ff8a7971">operator-&gt;</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a474f2619452b63408e1e761f414328f4">operator-&gt;</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a2d7b2957c037589b65b2cdd4f61ebe03">release</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#acb84b86bb220d663ffe13e5be9cfd72e">reset</a> (T *p=0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3e2640b5df80f86aeb68a6ee78dfd6f9"></a><!-- doxytag: member="boost::locale::hold_ptr::swap" ref="a3e2640b5df80f86aeb68a6ee78dfd6f9" args="(hold_ptr &amp;other)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a3e2640b5df80f86aeb68a6ee78dfd6f9">swap</a> (<a class="el" href="classboost_1_1locale_1_1hold__ptr.html">hold_ptr</a> &amp;other)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Swap two pointers. <br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;typename T&gt;<br/>
+ class boost::locale::hold_ptr&lt; T &gt;</h3>
+
+<p>a smart pointer similar to std::auto_ptr but it is non-copyable and the underlying object has the same constness as the pointer itself (unlike an ordinary pointer). </p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a681ee3d579435f9f2f171b830c402072"></a><!-- doxytag: member="boost::locale::hold_ptr::hold_ptr" ref="a681ee3d579435f9f2f171b830c402072" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr</a>&lt; T &gt;::<a class="el" href="classboost_1_1locale_1_1hold__ptr.html">hold_ptr</a> </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create new empty pointer </p>
+
+</div>
+</div>
+<a class="anchor" id="a0007514dc0410ccb16adf01c56874f52"></a><!-- doxytag: member="boost::locale::hold_ptr::hold_ptr" ref="a0007514dc0410ccb16adf01c56874f52" args="(T *v)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr</a>&lt; T &gt;::<a class="el" href="classboost_1_1locale_1_1hold__ptr.html">hold_ptr</a> </td>
+ <td>(</td>
+ <td class="paramtype">T *&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline, explicit]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a pointer that holds <em>v</em>, ownership is transferred to smart pointer </p>
+
+</div>
+</div>
+<a class="anchor" id="aace934e7a8b3f1880d1a06fa85795a48"></a><!-- doxytag: member="boost::locale::hold_ptr::~hold_ptr" ref="aace934e7a8b3f1880d1a06fa85795a48" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr</a>&lt; T &gt;::~<a class="el" href="classboost_1_1locale_1_1hold__ptr.html">hold_ptr</a> </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Destroy smart pointer and the object it owns. </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a907a9385c1a15dab07aade7466620bf6"></a><!-- doxytag: member="boost::locale::hold_ptr::get" ref="a907a9385c1a15dab07aade7466620bf6" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">T const* <a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr</a>&lt; T &gt;::get </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get a const pointer to the object </p>
+
+</div>
+</div>
+<a class="anchor" id="a30dbc88eb9fde35198774f3ace282712"></a><!-- doxytag: member="boost::locale::hold_ptr::get" ref="a30dbc88eb9fde35198774f3ace282712" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">T* <a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr</a>&lt; T &gt;::get </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get a mutable pointer to the object </p>
+
+</div>
+</div>
+<a class="anchor" id="af99f3719b755b787b022253aa6f8d1c0"></a><!-- doxytag: member="boost::locale::hold_ptr::operator*" ref="af99f3719b755b787b022253aa6f8d1c0" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">T&amp; <a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr</a>&lt; T &gt;::operator* </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get a mutable reference to the object </p>
+
+</div>
+</div>
+<a class="anchor" id="a2c8a19e35ff3c57100b24371854f31b7"></a><!-- doxytag: member="boost::locale::hold_ptr::operator*" ref="a2c8a19e35ff3c57100b24371854f31b7" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">T const&amp; <a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr</a>&lt; T &gt;::operator* </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get a const reference to the object </p>
+
+</div>
+</div>
+<a class="anchor" id="a7ae6b54ed5471dd9560904c7ff8a7971"></a><!-- doxytag: member="boost::locale::hold_ptr::operator&#45;&gt;" ref="a7ae6b54ed5471dd9560904c7ff8a7971" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">T const* <a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr</a>&lt; T &gt;::operator-&gt; </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get a const pointer to the object </p>
+
+</div>
+</div>
+<a class="anchor" id="a474f2619452b63408e1e761f414328f4"></a><!-- doxytag: member="boost::locale::hold_ptr::operator&#45;&gt;" ref="a474f2619452b63408e1e761f414328f4" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">T* <a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr</a>&lt; T &gt;::operator-&gt; </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get a mutable pointer to the object </p>
+
+</div>
+</div>
+<a class="anchor" id="a2d7b2957c037589b65b2cdd4f61ebe03"></a><!-- doxytag: member="boost::locale::hold_ptr::release" ref="a2d7b2957c037589b65b2cdd4f61ebe03" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">T* <a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr</a>&lt; T &gt;::release </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Transfer an ownership on the pointer to user </p>
+
+</div>
+</div>
+<a class="anchor" id="acb84b86bb220d663ffe13e5be9cfd72e"></a><!-- doxytag: member="boost::locale::hold_ptr::reset" ref="acb84b86bb220d663ffe13e5be9cfd72e" args="(T *p=0)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr</a>&lt; T &gt;::reset </td>
+ <td>(</td>
+ <td class="paramtype">T *&nbsp;</td>
+ <td class="paramname"> <em>p</em> = <code>0</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set new value to pointer, previous object is destroyed, ownership on new object is transferred </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="hold__ptr_8hpp_source.html">hold_ptr.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1info-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1info-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::info Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#a249c20e36da6827a8dc8b12a8342a7dc">country</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15ab59b95580bc749f21c832a70d4b73c61">country_property</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#a1979a5d7b90604c45e856a139c68f5ba">encoding</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15a1aa0567014d09df594b4a616f20c9b26">encoding_property</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#aee97062cd9c8a1c6b24a160783865ee2">get_integer_property</a>(integer_property v) const =0</td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td><code> [protected, pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#a38673d9985abd1c98713b262fadfe584">get_string_property</a>(string_propery v) const =0</td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td><code> [protected, pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#a01c274323da1367b153952ee1f056572">id</a></td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#a5545bf33988c859b3b864d4d65178134">info</a>(size_t refs=0)</td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#a53d7aa756e1b74f360913a9c9d41bb6d">integer_property</a> enum name</td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#a7c56b9df3aba82649afc66c06192c7df">language</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15a51e81de8c364b3734f4e2baf1abaddcf">language_property</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#af8181bf226f369548c030220932323b9">name</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15ab68bcb824a19b6cfd95ad3c714369369">name_property</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15">string_propery</a> enum name</td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#aafbbb5c291f60ce6fc3bc056859ba181">utf8</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#a53d7aa756e1b74f360913a9c9d41bb6da4d27d781e7da56cb9b94bfd8cdcab5ea">utf8_property</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#a2e949e4362c8f0195e2a645fe875f1b4">variant</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15a2b38cb5c60ed931f21fc9bec4984900c">variant_property</a> enum value</td><td><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1info.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1info.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,358 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::info Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Types &#124;
+Public Member Functions &#124;
+Static Public Attributes &#124;
+Protected Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::info Class Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::info" -->
+<p>a facet that holds general information about locale
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="info_8hpp_source.html">boost/locale/info.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15">string_propery</a> { <br/>
+&nbsp;&nbsp;<a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15a51e81de8c364b3734f4e2baf1abaddcf">language_property</a>,
+<a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15ab59b95580bc749f21c832a70d4b73c61">country_property</a>,
+<a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15a2b38cb5c60ed931f21fc9bec4984900c">variant_property</a>,
+<a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15a1aa0567014d09df594b4a616f20c9b26">encoding_property</a>,
+<br/>
+&nbsp;&nbsp;<a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15ab68bcb824a19b6cfd95ad3c714369369">name_property</a>
+<br/>
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1info.html#a53d7aa756e1b74f360913a9c9d41bb6d">integer_property</a> { <a class="el" href="classboost_1_1locale_1_1info.html#a53d7aa756e1b74f360913a9c9d41bb6da4d27d781e7da56cb9b94bfd8cdcab5ea">utf8_property</a>
+ }</td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1info.html#a5545bf33988c859b3b864d4d65178134">info</a> (size_t refs=0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1info.html#a7c56b9df3aba82649afc66c06192c7df">language</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1info.html#a249c20e36da6827a8dc8b12a8342a7dc">country</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1info.html#a2e949e4362c8f0195e2a645fe875f1b4">variant</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1info.html#a1979a5d7b90604c45e856a139c68f5ba">encoding</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1info.html#af8181bf226f369548c030220932323b9">name</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1info.html#aafbbb5c291f60ce6fc3bc056859ba181">utf8</a> () const </td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01c274323da1367b153952ee1f056572"></a><!-- doxytag: member="boost::locale::info::id" ref="a01c274323da1367b153952ee1f056572" args="" -->
+static std::locale::id&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1info.html#a01c274323da1367b153952ee1f056572">id</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This member uniquely defines this facet, required by STL. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1info.html#a38673d9985abd1c98713b262fadfe584">get_string_property</a> (<a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15">string_propery</a> v) const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1info.html#aee97062cd9c8a1c6b24a160783865ee2">get_integer_property</a> (<a class="el" href="classboost_1_1locale_1_1info.html#a53d7aa756e1b74f360913a9c9d41bb6d">integer_property</a> v) const =0</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>a facet that holds general information about locale </p>
+<p>This facet should be always created in order to make all Boost.Locale functions work </p>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="a53d7aa756e1b74f360913a9c9d41bb6d"></a><!-- doxytag: member="boost::locale::info::integer_property" ref="a53d7aa756e1b74f360913a9c9d41bb6d" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="classboost_1_1locale_1_1info.html#a53d7aa756e1b74f360913a9c9d41bb6d">boost::locale::info::integer_property</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Integer information about locale </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a53d7aa756e1b74f360913a9c9d41bb6da4d27d781e7da56cb9b94bfd8cdcab5ea"></a><!-- doxytag: member="utf8_property" ref="a53d7aa756e1b74f360913a9c9d41bb6da4d27d781e7da56cb9b94bfd8cdcab5ea" args="" -->utf8_property</em>&nbsp;</td><td>
+<p>Non zero value if uses UTF-8 encoding. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ac79e3924b5473862ab15a3290b1c8d15"></a><!-- doxytag: member="boost::locale::info::string_propery" ref="ac79e3924b5473862ab15a3290b1c8d15" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15">boost::locale::info::string_propery</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>String information about the locale </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ac79e3924b5473862ab15a3290b1c8d15a51e81de8c364b3734f4e2baf1abaddcf"></a><!-- doxytag: member="language_property" ref="ac79e3924b5473862ab15a3290b1c8d15a51e81de8c364b3734f4e2baf1abaddcf" args="" -->language_property</em>&nbsp;</td><td>
+<p>ISO 639 language id. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ac79e3924b5473862ab15a3290b1c8d15ab59b95580bc749f21c832a70d4b73c61"></a><!-- doxytag: member="country_property" ref="ac79e3924b5473862ab15a3290b1c8d15ab59b95580bc749f21c832a70d4b73c61" args="" -->country_property</em>&nbsp;</td><td>
+<p>ISO 3166 country id. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ac79e3924b5473862ab15a3290b1c8d15a2b38cb5c60ed931f21fc9bec4984900c"></a><!-- doxytag: member="variant_property" ref="ac79e3924b5473862ab15a3290b1c8d15a2b38cb5c60ed931f21fc9bec4984900c" args="" -->variant_property</em>&nbsp;</td><td>
+<p>Variant for locale. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ac79e3924b5473862ab15a3290b1c8d15a1aa0567014d09df594b4a616f20c9b26"></a><!-- doxytag: member="encoding_property" ref="ac79e3924b5473862ab15a3290b1c8d15a1aa0567014d09df594b4a616f20c9b26" args="" -->encoding_property</em>&nbsp;</td><td>
+<p>encoding name </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ac79e3924b5473862ab15a3290b1c8d15ab68bcb824a19b6cfd95ad3c714369369"></a><!-- doxytag: member="name_property" ref="ac79e3924b5473862ab15a3290b1c8d15ab68bcb824a19b6cfd95ad3c714369369" args="" -->name_property</em>&nbsp;</td><td>
+<p>locale name </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a5545bf33988c859b3b864d4d65178134"></a><!-- doxytag: member="boost::locale::info::info" ref="a5545bf33988c859b3b864d4d65178134" args="(size_t refs=0)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::info::info </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>refs</em> = <code>0</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Standard facet's constructor </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a249c20e36da6827a8dc8b12a8342a7dc"></a><!-- doxytag: member="boost::locale::info::country" ref="a249c20e36da6827a8dc8b12a8342a7dc" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::info::country </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get country name </p>
+
+</div>
+</div>
+<a class="anchor" id="a1979a5d7b90604c45e856a139c68f5ba"></a><!-- doxytag: member="boost::locale::info::encoding" ref="a1979a5d7b90604c45e856a139c68f5ba" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::info::encoding </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get encoding </p>
+
+</div>
+</div>
+<a class="anchor" id="aee97062cd9c8a1c6b24a160783865ee2"></a><!-- doxytag: member="boost::locale::info::get_integer_property" ref="aee97062cd9c8a1c6b24a160783865ee2" args="(integer_property v) const =0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual int boost::locale::info::get_integer_property </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1info.html#a53d7aa756e1b74f360913a9c9d41bb6d">integer_property</a>&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [protected, pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get integer property by its id <em>v</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="a38673d9985abd1c98713b262fadfe584"></a><!-- doxytag: member="boost::locale::info::get_string_property" ref="a38673d9985abd1c98713b262fadfe584" args="(string_propery v) const =0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual std::string boost::locale::info::get_string_property </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15">string_propery</a>&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [protected, pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get string property by its id <em>v</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="a7c56b9df3aba82649afc66c06192c7df"></a><!-- doxytag: member="boost::locale::info::language" ref="a7c56b9df3aba82649afc66c06192c7df" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::info::language </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get language name </p>
+
+</div>
+</div>
+<a class="anchor" id="af8181bf226f369548c030220932323b9"></a><!-- doxytag: member="boost::locale::info::name" ref="af8181bf226f369548c030220932323b9" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::info::name </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get the name of the locale, like en_US.UTF-8 </p>
+
+</div>
+</div>
+<a class="anchor" id="aafbbb5c291f60ce6fc3bc056859ba181"></a><!-- doxytag: member="boost::locale::info::utf8" ref="aafbbb5c291f60ce6fc3bc056859ba181" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::info::utf8 </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>True if the underlying encoding is UTF-8 (for char streams and strings) </p>
+
+</div>
+</div>
+<a class="anchor" id="a2e949e4362c8f0195e2a645fe875f1b4"></a><!-- doxytag: member="boost::locale::info::variant" ref="a2e949e4362c8f0195e2a645fe875f1b4" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::info::variant </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get locale variant </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="info_8hpp_source.html">info.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1ios__info-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1ios__info-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::ios_info Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#ad31ea1190ae882f20eea582312c6c573">currency_flags</a>(uint64_t flags)</td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#ac98b6625dcd7e552e144510192daebb7">currency_flags</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#aec16372d284296c63ebd282121fa0005">date_flags</a>(uint64_t flags)</td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#af46aa3529a930f328613533c6626260a">date_flags</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#a4c788d42a54235a501cfd6602e0939d9">date_time_pattern</a>(std::basic_string&lt; CharType &gt; const &amp;str)</td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#ab1e517242a73bb4802014391f4720338">date_time_pattern</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#a6e90b9fcfb723495da5239fc380b0331">datetime_flags</a>(uint64_t flags)</td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#a5e034268f4b5295ddaae948ffe8a1ec0">datetime_flags</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>(uint64_t flags)</td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#a8b72d7ac5dcd8be72f4bf49b73616db4">display_flags</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#a08b1bb49e5806900bfa1901e869497a6">domain_id</a>(int)</td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#a91fee7df7d3802c65c28c5ef24a10707">domain_id</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">get</a>(std::ios_base &amp;ios)</td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#a06bdad5c9b11e57c16ad623776ce5096">time_flags</a>(uint64_t flags)</td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#ab8e618c7e292dba53d9334926522031e">time_flags</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#a3f140278815b521f1568c52d0a9fea11">time_zone</a>(std::string const &amp;)</td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1ios__info.html#a0325f6eca8b939609614fe98e4e9ab42">time_zone</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1ios__info.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1ios__info.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,450 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::ios_info Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Classes &#124;
+Public Member Functions &#124;
+Static Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::ios_info Class Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::ios_info" -->
+<p>This class holds an external data - beyond existing fmtflags that std::ios_base holds.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="formatting_8hpp_source.html">boost/locale/formatting.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><b>string_set</b></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a> (uint64_t flags)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#ad31ea1190ae882f20eea582312c6c573">currency_flags</a> (uint64_t flags)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#aec16372d284296c63ebd282121fa0005">date_flags</a> (uint64_t flags)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#a06bdad5c9b11e57c16ad623776ce5096">time_flags</a> (uint64_t flags)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#a6e90b9fcfb723495da5239fc380b0331">datetime_flags</a> (uint64_t flags)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#a08b1bb49e5806900bfa1901e869497a6">domain_id</a> (int)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#a3f140278815b521f1568c52d0a9fea11">time_zone</a> (std::string const &amp;)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#a4c788d42a54235a501cfd6602e0939d9">date_time_pattern</a> (std::basic_string&lt; CharType &gt; const &amp;str)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#a8b72d7ac5dcd8be72f4bf49b73616db4">display_flags</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#ac98b6625dcd7e552e144510192daebb7">currency_flags</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#af46aa3529a930f328613533c6626260a">date_flags</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#ab8e618c7e292dba53d9334926522031e">time_flags</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">uint64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#a5e034268f4b5295ddaae948ffe8a1ec0">datetime_flags</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#a91fee7df7d3802c65c28c5ef24a10707">domain_id</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#a0325f6eca8b939609614fe98e4e9ab42">time_zone</a> () const </td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#ab1e517242a73bb4802014391f4720338">date_time_pattern</a> () const </td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classboost_1_1locale_1_1ios__info.html">ios_info</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">get</a> (std::ios_base &amp;ios)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This class holds an external data - beyond existing fmtflags that std::ios_base holds. </p>
+<p>You should almost never create this object directly. Instead, you should access it via ios_info::get(stream_object) static member function. It automatically creates default formatting data for that stream </p>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ad31ea1190ae882f20eea582312c6c573"></a><!-- doxytag: member="boost::locale::ios_info::currency_flags" ref="ad31ea1190ae882f20eea582312c6c573" args="(uint64_t flags)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::ios_info::currency_flags </td>
+ <td>(</td>
+ <td class="paramtype">uint64_t&nbsp;</td>
+ <td class="paramname"> <em>flags</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set a flags that define how to format currency </p>
+
+</div>
+</div>
+<a class="anchor" id="ac98b6625dcd7e552e144510192daebb7"></a><!-- doxytag: member="boost::locale::ios_info::currency_flags" ref="ac98b6625dcd7e552e144510192daebb7" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t boost::locale::ios_info::currency_flags </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get a flags that define how to format currency </p>
+
+</div>
+</div>
+<a class="anchor" id="aec16372d284296c63ebd282121fa0005"></a><!-- doxytag: member="boost::locale::ios_info::date_flags" ref="aec16372d284296c63ebd282121fa0005" args="(uint64_t flags)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::ios_info::date_flags </td>
+ <td>(</td>
+ <td class="paramtype">uint64_t&nbsp;</td>
+ <td class="paramname"> <em>flags</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set a flags that define how to format date </p>
+
+</div>
+</div>
+<a class="anchor" id="af46aa3529a930f328613533c6626260a"></a><!-- doxytag: member="boost::locale::ios_info::date_flags" ref="af46aa3529a930f328613533c6626260a" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t boost::locale::ios_info::date_flags </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get a flags that define how to format date </p>
+
+</div>
+</div>
+<a class="anchor" id="a4c788d42a54235a501cfd6602e0939d9"></a><!-- doxytag: member="boost::locale::ios_info::date_time_pattern" ref="a4c788d42a54235a501cfd6602e0939d9" args="(std::basic_string&lt; CharType &gt; const &amp;str)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::ios_info::date_time_pattern </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_string&lt; CharType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>str</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set date/time pattern (strftime like) </p>
+
+</div>
+</div>
+<a class="anchor" id="ab1e517242a73bb4802014391f4720338"></a><!-- doxytag: member="boost::locale::ios_info::date_time_pattern" ref="ab1e517242a73bb4802014391f4720338" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::ios_info::date_time_pattern </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get date/time pattern (strftime like) </p>
+
+</div>
+</div>
+<a class="anchor" id="a6e90b9fcfb723495da5239fc380b0331"></a><!-- doxytag: member="boost::locale::ios_info::datetime_flags" ref="a6e90b9fcfb723495da5239fc380b0331" args="(uint64_t flags)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::ios_info::datetime_flags </td>
+ <td>(</td>
+ <td class="paramtype">uint64_t&nbsp;</td>
+ <td class="paramname"> <em>flags</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set a flags that define how to format both date and time </p>
+
+</div>
+</div>
+<a class="anchor" id="a5e034268f4b5295ddaae948ffe8a1ec0"></a><!-- doxytag: member="boost::locale::ios_info::datetime_flags" ref="a5e034268f4b5295ddaae948ffe8a1ec0" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t boost::locale::ios_info::datetime_flags </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get a flags that define how to format both date and time </p>
+
+</div>
+</div>
+<a class="anchor" id="a8b72d7ac5dcd8be72f4bf49b73616db4"></a><!-- doxytag: member="boost::locale::ios_info::display_flags" ref="a8b72d7ac5dcd8be72f4bf49b73616db4" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t boost::locale::ios_info::display_flags </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get a flags that define a way for format data like number, spell, currency etc. </p>
+
+</div>
+</div>
+<a class="anchor" id="a18b06a5cf88e25361bf188f64216edf2"></a><!-- doxytag: member="boost::locale::ios_info::display_flags" ref="a18b06a5cf88e25361bf188f64216edf2" args="(uint64_t flags)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::ios_info::display_flags </td>
+ <td>(</td>
+ <td class="paramtype">uint64_t&nbsp;</td>
+ <td class="paramname"> <em>flags</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set a flags that define a way for format data like number, spell, currency etc. </p>
+
+</div>
+</div>
+<a class="anchor" id="a08b1bb49e5806900bfa1901e869497a6"></a><!-- doxytag: member="boost::locale::ios_info::domain_id" ref="a08b1bb49e5806900bfa1901e869497a6" args="(int)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::ios_info::domain_id </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set special message domain identification </p>
+
+</div>
+</div>
+<a class="anchor" id="a91fee7df7d3802c65c28c5ef24a10707"></a><!-- doxytag: member="boost::locale::ios_info::domain_id" ref="a91fee7df7d3802c65c28c5ef24a10707" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::ios_info::domain_id </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get special message domain identification </p>
+
+</div>
+</div>
+<a class="anchor" id="a02f6979dffc2df97c3612d72b7c7241b"></a><!-- doxytag: member="boost::locale::ios_info::get" ref="a02f6979dffc2df97c3612d72b7c7241b" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="classboost_1_1locale_1_1ios__info.html">ios_info</a>&amp; boost::locale::ios_info::get </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1ios__info.html" title="This class holds an external data - beyond existing fmtflags that std::ios_base holds.">ios_info</a> instance for specific stream object </p>
+
+</div>
+</div>
+<a class="anchor" id="ab8e618c7e292dba53d9334926522031e"></a><!-- doxytag: member="boost::locale::ios_info::time_flags" ref="ab8e618c7e292dba53d9334926522031e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t boost::locale::ios_info::time_flags </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get a flags that define how to format time </p>
+
+</div>
+</div>
+<a class="anchor" id="a06bdad5c9b11e57c16ad623776ce5096"></a><!-- doxytag: member="boost::locale::ios_info::time_flags" ref="a06bdad5c9b11e57c16ad623776ce5096" args="(uint64_t flags)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::ios_info::time_flags </td>
+ <td>(</td>
+ <td class="paramtype">uint64_t&nbsp;</td>
+ <td class="paramname"> <em>flags</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set a flags that define how to format time </p>
+
+</div>
+</div>
+<a class="anchor" id="a0325f6eca8b939609614fe98e4e9ab42"></a><!-- doxytag: member="boost::locale::ios_info::time_zone" ref="a0325f6eca8b939609614fe98e4e9ab42" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::ios_info::time_zone </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get time zone for formatting dates and time </p>
+
+</div>
+</div>
+<a class="anchor" id="a3f140278815b521f1568c52d0a9fea11"></a><!-- doxytag: member="boost::locale::ios_info::time_zone" ref="a3f140278815b521f1568c52d0a9fea11" args="(std::string const &amp;)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::ios_info::time_zone </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set time zone for formatting dates and time </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="formatting_8hpp_source.html">formatting.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1localization__backend-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1localization__backend-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::localization_backend Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1localization__backend.html">boost::locale::localization_backend</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1localization__backend.html#a631af306f8652dcf7874b0bb38ab8891">clear_options</a>()=0</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend.html">boost::locale::localization_backend</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1localization__backend.html#ab89828234ca84d4b43f3692bfbb08b25">clone</a>() const =0</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend.html">boost::locale::localization_backend</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1localization__backend.html#a5992c75d469f775ce1d18a0912bfa8a1">install</a>(std::locale const &amp;base, locale_category_type category, character_facet_type type=nochar_facet)=0</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend.html">boost::locale::localization_backend</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><b>localization_backend</b>() (defined in <a class="el" href="classboost_1_1locale_1_1localization__backend.html">boost::locale::localization_backend</a>)</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend.html">boost::locale::localization_backend</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1localization__backend.html#a3dc9028eb813001f6cdd8fca937837ef">set_option</a>(std::string const &amp;name, std::string const &amp;value)=0</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend.html">boost::locale::localization_backend</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><b>~localization_backend</b>() (defined in <a class="el" href="classboost_1_1locale_1_1localization__backend.html">boost::locale::localization_backend</a>)</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend.html">boost::locale::localization_backend</a></td><td><code> [inline, virtual]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1localization__backend.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1localization__backend.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,215 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::localization_backend Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1localization__backend.html">boost::locale::localization_backend</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::localization_backend Class Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::localization_backend" -->
+<p>this class represents a localization backend that can be used for localizing your application.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="localization__backend_8hpp_source.html">boost/locale/localization_backend.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1locale_1_1localization__backend.html">localization_backend</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend.html#ab89828234ca84d4b43f3692bfbb08b25">clone</a> () const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend.html#a3dc9028eb813001f6cdd8fca937837ef">set_option</a> (std::string const &amp;name, std::string const &amp;value)=0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend.html#a631af306f8652dcf7874b0bb38ab8891">clear_options</a> ()=0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual std::locale&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend.html#a5992c75d469f775ce1d18a0912bfa8a1">install</a> (std::locale const &amp;base, <a class="el" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1">locale_category_type</a> category, <a class="el" href="namespaceboost_1_1locale.html#a8c993aaf15e683e97d062560ccf914d8">character_facet_type</a> type=<a class="el" href="namespaceboost_1_1locale.html#a330a4c5134eb5110b33a0b4f986f34be">nochar_facet</a>)=0</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>this class represents a localization backend that can be used for localizing your application. </p>
+<p>Backends are usually registered inside the localization backends manager and allow transparent support of different backends, so a user can switch the backend by simply linking the application to the correct one.</p>
+<p>Backends may support different tuning options, but these are the default options available to the user for all of them</p>
+<ol type="1">
+<li><code>locale</code> - the name of the locale in POSIX format like en_US.UTF-8</li>
+<li><code>use_ansi_encoding</code> - select system locale using ANSI codepages rather then UTF-8 under Windows by default</li>
+<li><code>message_path</code> - path to the location of message catalogs (vector of strings)</li>
+<li><code>message_application</code> - the name of applications that use message catalogs (vector of strings)</li>
+</ol>
+<p>Each backend can be installed with a different default priotiry so when you work with two different backends, you can specify priotiry so this backend will be chosen according to their priority. </p>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a631af306f8652dcf7874b0bb38ab8891"></a><!-- doxytag: member="boost::locale::localization_backend::clear_options" ref="a631af306f8652dcf7874b0bb38ab8891" args="()=0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void boost::locale::localization_backend::clear_options </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Clear all options </p>
+
+</div>
+</div>
+<a class="anchor" id="ab89828234ca84d4b43f3692bfbb08b25"></a><!-- doxytag: member="boost::locale::localization_backend::clone" ref="ab89828234ca84d4b43f3692bfbb08b25" args="() const =0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classboost_1_1locale_1_1localization__backend.html">localization_backend</a>* boost::locale::localization_backend::clone </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Make a polymorphic copy of the backend </p>
+
+</div>
+</div>
+<a class="anchor" id="a5992c75d469f775ce1d18a0912bfa8a1"></a><!-- doxytag: member="boost::locale::localization_backend::install" ref="a5992c75d469f775ce1d18a0912bfa8a1" args="(std::locale const &amp;base, locale_category_type category, character_facet_type type=nochar_facet)=0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual std::locale boost::locale::localization_backend::install </td>
+ <td>(</td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>base</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1">locale_category_type</a>&nbsp;</td>
+ <td class="paramname"> <em>category</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceboost_1_1locale.html#a8c993aaf15e683e97d062560ccf914d8">character_facet_type</a>&nbsp;</td>
+ <td class="paramname"> <em>type</em> = <code><a class="el" href="namespaceboost_1_1locale.html#a330a4c5134eb5110b33a0b4f986f34be">nochar_facet</a></code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a facet for category <em>category</em> and character type <em>type</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="a3dc9028eb813001f6cdd8fca937837ef"></a><!-- doxytag: member="boost::locale::localization_backend::set_option" ref="a3dc9028eb813001f6cdd8fca937837ef" args="(std::string const &amp;name, std::string const &amp;value)=0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void boost::locale::localization_backend::set_option </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set option for backend, for example "locale" or "encoding" </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="localization__backend_8hpp_source.html">localization_backend.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1localization__backend__manager-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1localization__backend__manager-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::localization_backend_manager Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">boost::locale::localization_backend_manager</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#ae3c6eca5cc54c5161fef3bfd14509c64">add_backend</a>(std::string const &amp;name, std::auto_ptr&lt; localization_backend &gt; backend)</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">boost::locale::localization_backend_manager</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a89d377e934af287573212581cab70dd6">get</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">boost::locale::localization_backend_manager</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a7bd336cf325b0ee284ab8a07813679c0">get_all_backends</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">boost::locale::localization_backend_manager</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a65649bc161a0cc160da9b40a9ad14e20">global</a>(localization_backend_manager const &amp;)</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">boost::locale::localization_backend_manager</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a0935a48d3012f62197f4e92119ee62b5">global</a>()</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">boost::locale::localization_backend_manager</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a0407271db5e7722f901c510474c3581f">localization_backend_manager</a>()</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">boost::locale::localization_backend_manager</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#ad2fb02931f4b202eedc46b3da4a24449">localization_backend_manager</a>(localization_backend_manager const &amp;)</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">boost::locale::localization_backend_manager</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#af506ec1809f2f67c71f590862f63eeab">operator=</a>(localization_backend_manager const &amp;)</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">boost::locale::localization_backend_manager</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a8c9841c83aa85dbf8f61b2e17732499a">remove_all_backends</a>()</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">boost::locale::localization_backend_manager</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#adf33775a09e7a765c3401e769019e915">select</a>(std::string const &amp;backend_name, locale_category_type category=all_categories)</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">boost::locale::localization_backend_manager</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a7e602229ef95ea60834fdea95110bf19">~localization_backend_manager</a>()</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">boost::locale::localization_backend_manager</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1localization__backend__manager.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1localization__backend__manager.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,345 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::localization_backend_manager Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">boost::locale::localization_backend_manager</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions &#124;
+Static Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::localization_backend_manager Class Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::localization_backend_manager" -->
+<p>Localization backend manager is a class that holds various backend and allows creation of their combination or selection.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="localization__backend_8hpp_source.html">boost/locale/localization_backend.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a0407271db5e7722f901c510474c3581f">localization_backend_manager</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#ad2fb02931f4b202eedc46b3da4a24449">localization_backend_manager</a> (<a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a> const &amp;)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a> <br class="typebreak"/>
+const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#af506ec1809f2f67c71f590862f63eeab">operator=</a> (<a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a> const &amp;)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a7e602229ef95ea60834fdea95110bf19">~localization_backend_manager</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::auto_ptr<br class="typebreak"/>
+&lt; <a class="el" href="classboost_1_1locale_1_1localization__backend.html">localization_backend</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a89d377e934af287573212581cab70dd6">get</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#ae3c6eca5cc54c5161fef3bfd14509c64">add_backend</a> (std::string const &amp;name, std::auto_ptr&lt; <a class="el" href="classboost_1_1locale_1_1localization__backend.html">localization_backend</a> &gt; backend)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a8c9841c83aa85dbf8f61b2e17732499a">remove_all_backends</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a7bd336cf325b0ee284ab8a07813679c0">get_all_backends</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#adf33775a09e7a765c3401e769019e915">select</a> (std::string const &amp;backend_name, <a class="el" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1">locale_category_type</a> category=<a class="el" href="namespaceboost_1_1locale.html#ab51b0b65a19b1db3adc14e9866097e2a">all_categories</a>)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a65649bc161a0cc160da9b40a9ad14e20">global</a> (<a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a> const &amp;)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a0935a48d3012f62197f4e92119ee62b5">global</a> ()</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Localization backend manager is a class that holds various backend and allows creation of their combination or selection. </p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a0407271db5e7722f901c510474c3581f"></a><!-- doxytag: member="boost::locale::localization_backend_manager::localization_backend_manager" ref="a0407271db5e7722f901c510474c3581f" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::localization_backend_manager::localization_backend_manager </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>New empty <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="ad2fb02931f4b202eedc46b3da4a24449"></a><!-- doxytag: member="boost::locale::localization_backend_manager::localization_backend_manager" ref="ad2fb02931f4b202eedc46b3da4a24449" args="(localization_backend_manager const &amp;)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::localization_backend_manager::localization_backend_manager </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a> const &amp;&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Copy <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="a7e602229ef95ea60834fdea95110bf19"></a><!-- doxytag: member="boost::locale::localization_backend_manager::~localization_backend_manager" ref="a7e602229ef95ea60834fdea95110bf19" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::localization_backend_manager::~localization_backend_manager </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Destructor </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ae3c6eca5cc54c5161fef3bfd14509c64"></a><!-- doxytag: member="boost::locale::localization_backend_manager::add_backend" ref="ae3c6eca5cc54c5161fef3bfd14509c64" args="(std::string const &amp;name, std::auto_ptr&lt; localization_backend &gt; backend)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::localization_backend_manager::add_backend </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::auto_ptr&lt; <a class="el" href="classboost_1_1locale_1_1localization__backend.html">localization_backend</a> &gt;&nbsp;</td>
+ <td class="paramname"> <em>backend</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Add new backend to the manager, each backend should be uniquely defined by its name.</p>
+<p>This library provides: "icu", "posix", "winapi" and "std" backends. </p>
+
+</div>
+</div>
+<a class="anchor" id="a89d377e934af287573212581cab70dd6"></a><!-- doxytag: member="boost::locale::localization_backend_manager::get" ref="a89d377e934af287573212581cab70dd6" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::auto_ptr&lt;<a class="el" href="classboost_1_1locale_1_1localization__backend.html">localization_backend</a>&gt; boost::locale::localization_backend_manager::get </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create new localization backend according to current settings. </p>
+
+</div>
+</div>
+<a class="anchor" id="a7bd336cf325b0ee284ab8a07813679c0"></a><!-- doxytag: member="boost::locale::localization_backend_manager::get_all_backends" ref="a7bd336cf325b0ee284ab8a07813679c0" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::vector&lt;std::string&gt; boost::locale::localization_backend_manager::get_all_backends </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get list of all available backends </p>
+
+</div>
+</div>
+<a class="anchor" id="a0935a48d3012f62197f4e92119ee62b5"></a><!-- doxytag: member="boost::locale::localization_backend_manager::global" ref="a0935a48d3012f62197f4e92119ee62b5" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a> boost::locale::localization_backend_manager::global </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get global backend manager</p>
+<p>This function is thread safe </p>
+
+</div>
+</div>
+<a class="anchor" id="a65649bc161a0cc160da9b40a9ad14e20"></a><!-- doxytag: member="boost::locale::localization_backend_manager::global" ref="a65649bc161a0cc160da9b40a9ad14e20" args="(localization_backend_manager const &amp;)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a> boost::locale::localization_backend_manager::global </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a> const &amp;&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set new global backend manager, the old one is returned.</p>
+<p>This function is thread safe </p>
+
+</div>
+</div>
+<a class="anchor" id="af506ec1809f2f67c71f590862f63eeab"></a><!-- doxytag: member="boost::locale::localization_backend_manager::operator=" ref="af506ec1809f2f67c71f590862f63eeab" args="(localization_backend_manager const &amp;)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a> const&amp; boost::locale::localization_backend_manager::operator= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a> const &amp;&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Assign <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="a8c9841c83aa85dbf8f61b2e17732499a"></a><!-- doxytag: member="boost::locale::localization_backend_manager::remove_all_backends" ref="a8c9841c83aa85dbf8f61b2e17732499a" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::localization_backend_manager::remove_all_backends </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Clear backend </p>
+
+</div>
+</div>
+<a class="anchor" id="adf33775a09e7a765c3401e769019e915"></a><!-- doxytag: member="boost::locale::localization_backend_manager::select" ref="adf33775a09e7a765c3401e769019e915" args="(std::string const &amp;backend_name, locale_category_type category=all_categories)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::locale::localization_backend_manager::select </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>backend_name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1">locale_category_type</a>&nbsp;</td>
+ <td class="paramname"> <em>category</em> = <code><a class="el" href="namespaceboost_1_1locale.html#ab51b0b65a19b1db3adc14e9866097e2a">all_categories</a></code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Select specific backend by name for a category <em>category</em>. It allows combining different backends for user preferences. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="localization__backend_8hpp_source.html">localization_backend.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1message__format-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1message__format-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::message_format&lt; CharType &gt; Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format&lt; CharType &gt;</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format&lt; CharType &gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#ga3f2c9d7f9a363efa607738083a986251">convert</a>(char_type const *msg, string_type &amp;buffer) const =0</td><td><a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format&lt; CharType &gt;</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#ga73e25178ba9ef91ebe1df0aade4d8ae6">domain</a>(std::string const &amp;domain) const =0</td><td><a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format&lt; CharType &gt;</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#ga4f65e4e1c3995eb09dd8f8f0e150a012">get</a>(int domain_id, char_type const *context, char_type const *id) const =0</td><td><a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format&lt; CharType &gt;</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#gabb35b8a77bca9d28c5d5c266b66fe291">get</a>(int domain_id, char_type const *context, char_type const *single_id, int n) const =0</td><td><a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format&lt; CharType &gt;</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#gafa681d0df94a35f9d75c16dea099d03e">message_format</a>(size_t refs=0)</td><td><a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format&lt; CharType &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="group__message.html#gaaa932705310ce196fccc9d672b25518f">string_type</a> typedef</td><td><a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format&lt; CharType &gt;</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><b>~message_format</b>() (defined in <a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format&lt; CharType &gt;</a>)</td><td><a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format&lt; CharType &gt;</a></td><td><code> [inline, protected, virtual]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1message__format.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1message__format.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::message_format&lt; CharType &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format&lt; CharType &gt;</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Types &#124;
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::message_format&lt; CharType &gt; Class Template Reference<br/>
+<small>
+[<a class="el" href="group__message.html">Message Formatting (translation)</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::message_format" -->
+<p>This facet provides message formatting abilities.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="message_8hpp_source.html">boost/locale/message.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef CharType&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::basic_string<br class="typebreak"/>
+&lt; CharType &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gaaa932705310ce196fccc9d672b25518f">string_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gafa681d0df94a35f9d75c16dea099d03e">message_format</a> (size_t refs=0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> const *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga4f65e4e1c3995eb09dd8f8f0e150a012">get</a> (int domain_id, <a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> const *context, <a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> const *id) const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> const *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gabb35b8a77bca9d28c5d5c266b66fe291">get</a> (int domain_id, <a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> const *context, <a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> const *single_id, int n) const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga73e25178ba9ef91ebe1df0aade4d8ae6">domain</a> (std::string const &amp;domain) const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> const *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga3f2c9d7f9a363efa607738083a986251">convert</a> (<a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> const *msg, <a class="el" href="group__message.html#gaaa932705310ce196fccc9d672b25518f">string_type</a> &amp;buffer) const =0</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;typename CharType&gt;<br/>
+ class boost::locale::message_format&lt; CharType &gt;</h3>
+
+<p>This facet provides message formatting abilities. </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a83f473295edf14b9e1ae1476b81231bc"></a><!-- doxytag: member="boost::locale::message_format::char_type" ref="a83f473295edf14b9e1ae1476b81231bc" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef CharType <a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Character type </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="message_8hpp_source.html">message.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1period_1_1period__type-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1period_1_1period__type-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::period::period_type Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">boost::locale::period::period_type</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#ad81b414edc6ea88accc5dad5d17a351b">mark</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">boost::locale::period::period_type</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#a0156ce442f97fd86fa7c702e4d24031a">operator!=</a>(period_type const &amp;other) const </td><td><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">boost::locale::period::period_type</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#a53ac6fdbaa7ae1b6d90e67bb5aadcce0">operator==</a>(period_type const &amp;other) const </td><td><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">boost::locale::period::period_type</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#a8abba35d5073884677ce69ec3ba3eba7">period_type</a>(marks::period_mark m=marks::invalid)</td><td><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">boost::locale::period::period_type</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1period_1_1period__type.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1period_1_1period__type.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,187 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::period::period_type Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1period.html">period</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">boost::locale::period::period_type</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::period::period_type Class Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::period::period_type" -->
+<p>This class holds a type that represents certain period of time like year, hour, second and so on.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="date__time__facet_8hpp_source.html">boost/locale/date_time_facet.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#a8abba35d5073884677ce69ec3ba3eba7">period_type</a> (<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">marks::period_mark</a> m=marks::invalid)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">marks::period_mark</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#ad81b414edc6ea88accc5dad5d17a351b">mark</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#a53ac6fdbaa7ae1b6d90e67bb5aadcce0">operator==</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> const &amp;other) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#a0156ce442f97fd86fa7c702e4d24031a">operator!=</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> const &amp;other) const </td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This class holds a type that represents certain period of time like year, hour, second and so on. </p>
+<p>It can be created from either <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a" title="the type that defines a flag that holds a period identifier">marks::period_mark</a> type or by using shortcuts in period namespace - calling functions like <a class="el" href="namespaceboost_1_1locale_1_1period.html#a9ea8d1453bed512ee16bea3199fd92af">period::year()</a>, <a class="el" href="namespaceboost_1_1locale_1_1period.html#a35f2ca900e3cda757c4598b686ca5969">period::hour()</a> and so on.</p>
+<p>Basically it represents the same object as enum <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a" title="the type that defines a flag that holds a period identifier">marks::period_mark</a> but allows to provide save operator overloading that would not collide with casing of enum to numeric values. </p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a8abba35d5073884677ce69ec3ba3eba7"></a><!-- doxytag: member="boost::locale::period::period_type::period_type" ref="a8abba35d5073884677ce69ec3ba3eba7" args="(marks::period_mark m=marks::invalid)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::period::period_type::period_type </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">marks::period_mark</a>&nbsp;</td>
+ <td class="paramname"> <em>m</em> = <code>marks::invalid</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a period of specific type, default is invalid. </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ad81b414edc6ea88accc5dad5d17a351b"></a><!-- doxytag: member="boost::locale::period::period_type::mark" ref="ad81b414edc6ea88accc5dad5d17a351b" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">marks::period_mark</a> boost::locale::period::period_type::mark </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get the value of <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a" title="the type that defines a flag that holds a period identifier">marks::period_mark</a> it was created with. </p>
+
+</div>
+</div>
+<a class="anchor" id="a0156ce442f97fd86fa7c702e4d24031a"></a><!-- doxytag: member="boost::locale::period::period_type::operator!=" ref="a0156ce442f97fd86fa7c702e4d24031a" args="(period_type const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::period::period_type::operator!= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Check if two periods are different </p>
+
+</div>
+</div>
+<a class="anchor" id="a53ac6fdbaa7ae1b6d90e67bb5aadcce0"></a><!-- doxytag: member="boost::locale::period::period_type::operator==" ref="a53ac6fdbaa7ae1b6d90e67bb5aadcce0" args="(period_type const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::period::period_type::operator== </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Check if two periods are the same </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="date__time__facet_8hpp_source.html">date_time_facet.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1util_1_1base__converter-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1util_1_1base__converter-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::util::base_converter Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">boost::locale::util::base_converter</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#a702b31840be6f5c540cd22ac75cb2349">clone</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">boost::locale::util::base_converter</a></td><td><code> [inline, virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#afeecf1ee2699c26960cbf2d7d6d71d41">from_unicode</a>(uint32_t u, char *begin, char const *end)</td><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">boost::locale::util::base_converter</a></td><td><code> [inline, virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa02e2dfd8ddc2b40a8705c6ea7fa8d48">illegal</a></td><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">boost::locale::util::base_converter</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa78dd2bae2783e31a00849a4e74aeb1e">incomplete</a></td><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">boost::locale::util::base_converter</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#aadcc2c1a767f9d24972c6995e81c1315">is_thread_safe</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">boost::locale::util::base_converter</a></td><td><code> [inline, virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#ab2332b78e3e0c0b94ea3f6dafd123d60">max_len</a>() const </td><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">boost::locale::util::base_converter</a></td><td><code> [inline, virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#a27181b314e09f62ae9ea8fcd30d4e7c4">to_unicode</a>(char const *&amp;begin, char const *end)</td><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">boost::locale::util::base_converter</a></td><td><code> [inline, virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><b>~base_converter</b>() (defined in <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">boost::locale::util::base_converter</a>)</td><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">boost::locale::util::base_converter</a></td><td><code> [inline, virtual]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classboost_1_1locale_1_1util_1_1base__converter.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classboost_1_1locale_1_1util_1_1base__converter.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,272 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::util::base_converter Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1util.html">util</a> </li>
+ <li><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">boost::locale::util::base_converter</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions &#124;
+Static Public Attributes </div>
+ <div class="headertitle">
+<h1>boost::locale::util::base_converter Class Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::util::base_converter" -->
+<p>This class represent a simple stateless converter from UCS-4 and to UCS-4 for each single code point.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="util_8hpp_source.html">boost/locale/util.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#ab2332b78e3e0c0b94ea3f6dafd123d60">max_len</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#aadcc2c1a767f9d24972c6995e81c1315">is_thread_safe</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">base_converter</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#a702b31840be6f5c540cd22ac75cb2349">clone</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#a27181b314e09f62ae9ea8fcd30d4e7c4">to_unicode</a> (char const *&amp;begin, char const *end)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#afeecf1ee2699c26960cbf2d7d6d71d41">from_unicode</a> (uint32_t u, char *begin, char const *end)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa02e2dfd8ddc2b40a8705c6ea7fa8d48">illegal</a> = 0xFFFFFFFF</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa78dd2bae2783e31a00849a4e74aeb1e">incomplete</a> = 0xFFFFFFFE</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This class represent a simple stateless converter from UCS-4 and to UCS-4 for each single code point. </p>
+<p>This class is used for creation of std::codecvt facet for converting utf-16/utf-32 encoding to encoding supported by this converter</p>
+<p>Please note, this converter should be fully stateless. Fully stateless means it should never assume that it is called in any specific order on the text. Even if the encoding itself seems to be stateless like windows-1255 or shift-jis, some encoders (most notably iconv) can actually compose several code-point into one or decompose them in case composite characters are found. So be very careful when implementing these converters for certain character set. </p>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a702b31840be6f5c540cd22ac75cb2349"></a><!-- doxytag: member="boost::locale::util::base_converter::clone" ref="a702b31840be6f5c540cd22ac75cb2349" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">base_converter</a>* boost::locale::util::base_converter::clone </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a polymorphic copy of this object, usually called only if <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#aadcc2c1a767f9d24972c6995e81c1315">is_thread_safe()</a> return false </p>
+
+</div>
+</div>
+<a class="anchor" id="afeecf1ee2699c26960cbf2d7d6d71d41"></a><!-- doxytag: member="boost::locale::util::base_converter::from_unicode" ref="afeecf1ee2699c26960cbf2d7d6d71d41" args="(uint32_t u, char *begin, char const *end)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual uint32_t boost::locale::util::base_converter::from_unicode </td>
+ <td>(</td>
+ <td class="paramtype">uint32_t&nbsp;</td>
+ <td class="paramname"> <em>u</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char *&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline, virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a single code-point <em>u</em> into encoding and store it in [begin,end) range.</p>
+<p>If u is invalid Unicode code-point, or it can not be mapped correctly to represented character set, <em>illegal</em> should be returned</p>
+<p>If u can be converted to a sequence of bytes c1, ... , cN (1&lt;= N &lt;= <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#ab2332b78e3e0c0b94ea3f6dafd123d60">max_len()</a> ) then</p>
+<ol type="1">
+<li>If end - begin &gt;= N, c1, ... cN are written starting at begin and N is returned</li>
+<li>If end - begin &lt; N, incomplete is returned, it is unspecified what would be stored in bytes in range [begin,end) </li>
+</ol>
+
+</div>
+</div>
+<a class="anchor" id="aadcc2c1a767f9d24972c6995e81c1315"></a><!-- doxytag: member="boost::locale::util::base_converter::is_thread_safe" ref="aadcc2c1a767f9d24972c6995e81c1315" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool boost::locale::util::base_converter::is_thread_safe </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Returns true if calling the functions from_unicode, to_unicode, and max_len is thread safe.</p>
+<p>Rule of thumb: if this class' implementation uses simple tables that are unchanged or is purely algorithmic like UTF-8 - so it does not share any mutable bit for independent to_unicode, from_unicode calls, you may set it to true, otherwise, for example if you use iconv_t descriptor or UConverter as conversion object return false, and this object will be cloned for each use. </p>
+
+</div>
+</div>
+<a class="anchor" id="ab2332b78e3e0c0b94ea3f6dafd123d60"></a><!-- doxytag: member="boost::locale::util::base_converter::max_len" ref="ab2332b78e3e0c0b94ea3f6dafd123d60" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual int boost::locale::util::base_converter::max_len </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Return the maximal length that one Unicode code-point can be converted to, for example for UTF-8 it is 4, for Shift-JIS it is 2 and ISO-8859-1 is 1 </p>
+
+</div>
+</div>
+<a class="anchor" id="a27181b314e09f62ae9ea8fcd30d4e7c4"></a><!-- doxytag: member="boost::locale::util::base_converter::to_unicode" ref="a27181b314e09f62ae9ea8fcd30d4e7c4" args="(char const *&amp;begin, char const *end)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual uint32_t boost::locale::util::base_converter::to_unicode </td>
+ <td>(</td>
+ <td class="paramtype">char const *&amp;&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline, virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a single character starting at begin and ending at most at end to Unicode code-point.</p>
+<p>if valid input sequence found in [<em>begin</em>,<em>code_point_end</em>) such as <em>begin</em> &lt; <em>code_point_end</em> &amp;&amp; <em>code_point_end</em> &lt;= <em>end</em> it is converted to its Unicode code point equivalent, <em>begin</em> is set to <em>code_point_end</em> </p>
+<p>if incomplete input sequence found in [<em>begin</em>,<em>end</em>), i.e. there my be such <em>code_point_end</em> that <em>code_point_end</em> &gt; <em>end</em> and [<em>begin</em>, <em>code_point_end</em>) would be valid input sequence, then <em>incomplete</em> is returned begin stays unchanged, for example for UTF-8 conversion a *begin = 0xc2, <em>begin</em> +1 = <em>end</em> is such situation.</p>
+<p>if invalid input sequence found, i.e. there there is a sequence [<em>begin</em>, <em>code_point_end</em>) such as <em>code_point_end</em> &lt;= <em>end</em> that is illegal for this encoding, <em>illegal</em> is returned and begin stays unchanged. For example if *begin = 0xFF and begin &lt; end for UTF-8, then <em>illegal</em> is returned. </p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="aa02e2dfd8ddc2b40a8705c6ea7fa8d48"></a><!-- doxytag: member="boost::locale::util::base_converter::illegal" ref="aa02e2dfd8ddc2b40a8705c6ea7fa8d48" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const uint32_t <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa02e2dfd8ddc2b40a8705c6ea7fa8d48">boost::locale::util::base_converter::illegal</a> = 0xFFFFFFFF<code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>This value should be returned when an illegal input sequence or code-point is observed: For example if a UCS-32 code-point is in the range reserved for UTF-16 surrogates or an invalid UTF-8 sequence is found </p>
+
+</div>
+</div>
+<a class="anchor" id="aa78dd2bae2783e31a00849a4e74aeb1e"></a><!-- doxytag: member="boost::locale::util::base_converter::incomplete" ref="aa78dd2bae2783e31a00849a4e74aeb1e" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const uint32_t <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa78dd2bae2783e31a00849a4e74aeb1e">boost::locale::util::base_converter::incomplete</a> = 0xFFFFFFFE<code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>This value is returned in following cases: The of incomplete input sequence was found or insufficient output buffer was provided so complete output could not be written. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="util_8hpp_source.html">util.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/classes.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/classes.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Alphabetical List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Class Index</h1> </div>
+</div>
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_A">A</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_B">B</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_G">G</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_H">H</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_L">L</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_M">M</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_P">P</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a></div>
+<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;A&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;C&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;D&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;H&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;M&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">hold_ptr</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1message__format.html">message_format</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;B&nbs
p;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classboost_1_1locale_1_1calendar__facet.html">calendar_facet</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">messages_info</a> (<a class="el" href="namespaceboost_1_1locale_1_1gnu__gettext.html">boost::locale::gnu_gettext</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">base_converter</a> (<a class="el" href="namespaceboost_1_1locale_1_1util.html">boost::locale::util</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1collator.html">collator</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1date__time__error.html">date_time_error</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1info.html">info</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_P"></a><table border="0" cellspacing="0" ce
llpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;P&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="classboost_1_1locale_1_1basic__format.html">basic_format</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1collator__base.html">collator_base</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html">invalid_charset_error</a> (<a class="el" href="namespaceboost_1_1locale_1_1conv.html">boost::locale::conv</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> (<a class="el" href="namespaceboost_1_1locale_1_1period.html">boost::locale::period</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classb
oost_1_1locale_1_1basic__message.html">basic_message</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structboost_1_1locale_1_1comparator.html">comparator</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1ios__info.html">ios_info</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structboost_1_1locale_1_1posix__time.html">posix_time</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html">boundary_indexing</a> (<a class="el" href="namespaceboost_1_1loc
ale_1_1boundary.html">boost::locale::boundary</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1conv_1_1conversion__error.html">conversion_error</a> (<a class="el" href="namespaceboost_1_1locale_1_1conv.html">boost::locale::conv</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">messages_info::domain</a> (<a class="el" href="namespaceboost_1_1locale_1_1gnu__gettext.html">boost::locale::gnu_gettext</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;L&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;S&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a> (<a class="el" href="namespaceboost_1_1locale_1_1boundary.html">boost::locale::boundary</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_G"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;G&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classboost_1_1locale_1_1localization__backend.html">localization_backend</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a> (<a class="el" href="namespaceboost_1_1locale_1_1boundary.html">boost::locale::boundary</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a> (<a class="el" href="namespaceboost_1_1locale_1_1boundary.html">boost::locale::boundary</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1converter__base.html">converter_base</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1generator.html">generator</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classbo
ost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a> (<a class="el" href="namespaceboost_1_1locale.html">boost::locale</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a> (<a class="el" href="namespaceboost_1_1locale_1_1boundary.html">boost::locale::boundary</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html">break_info</a> (<a class="el" href="namespaceboost_1_1locale_1_1boundary.html">boost::locale::boundary</a>)&nbsp;&nbsp;&nbsp;</td></tr></table><div class="qindex"><a class="qindex" href="#letter_A">A</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_B">B</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_G">G</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_H">H</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a clas
s="qindex" href="#letter_L">L</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_M">M</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_P">P</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/closed.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/collate_8cpp-example.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/collate_8cpp-example.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: collate.cpp</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>collate.cpp</h1> </div>
+</div>
+<div class="contents">
+<p>Example of using collation functions</p>
+<div class="fragment"><pre class="fragment"><span class="comment">//</span>
+<span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<span class="comment">//</span>
+<span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<span class="comment">//</span>
+<span class="preprocessor">#include &lt;iostream&gt;</span>
+<span class="preprocessor">#include &lt;string&gt;</span>
+<span class="preprocessor">#include &lt;set&gt;</span>
+
+<span class="preprocessor">#include &lt;boost/locale.hpp&gt;</span>
+
+<span class="keyword">using namespace </span>std;
+<span class="keyword">using namespace </span>boost::locale;
+
+<span class="keywordtype">int</span> main()
+{
+ <a name="_a0"></a><a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">generator</a> gen;
+ std::locale::global(gen(<span class="stringliteral">&quot;&quot;</span>));
+
+ <span class="keyword">typedef</span> std::set&lt;std::string,std::locale&gt; set_type;
+ set_type all_strings;
+
+ <span class="keywordflow">while</span>(!cin.eof()) {
+ std::string tmp;
+ getline(cin,tmp);
+ all_strings.insert(tmp);
+ }
+ <span class="keywordflow">for</span>(set_type::iterator p=all_strings.begin();p!=all_strings.end();++p) {
+ cout&lt;&lt;*p&lt;&lt;endl;
+ }
+
+}
+<span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div> </div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/collation.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/collation.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Collation</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="using_boost_locale.html">Using Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Collation </h1> </div>
+</div>
+<div class="contents">
+<p>Boost.Locale provides a <a class="el" href="classboost_1_1locale_1_1collator.html">collator</a> class, derived from <code>std::collate</code>, that adds support for primary, secondary, tertiary, quaternary and identical comparison levels. They can be approximately defined as:</p>
+<ol type="1">
+<li>Primary -- ignore accents and character case, comparing base letters only. For example "facade" and "Façade" are the same.</li>
+<li>Secondary -- ignore character case but consider accents. "facade" and "façade" are different but "Façade" and "façade" are the same.</li>
+<li>Tertiary -- consider both case and accents: "Façade" and "façade" are different. Ignore punctuation.</li>
+<li>Quaternary -- consider all case, accents, and punctuation. The words must be identical in terms of Unicode representation.</li>
+<li>Identical -- as quaternary, but compare code points as well.</li>
+</ol>
+<p>There are two ways of using the <a class="el" href="classboost_1_1locale_1_1collator.html">collator</a> facet: directly, by calling its member functions <a class="el" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a>, <a class="el" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a> and <a class="el" href="classboost_1_1locale_1_1collator.html#a89752e2023643f972b6cc8024340d5d4">hash</a>, or indirectly by using the <a class="el" href="structboost_1_1locale_1_1comparator.html">comparator</a> template class in STL algorithms.</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"> wstring a=L<span class="stringliteral">&quot;Façade&quot;</span>, b=L<span class="stringliteral">&quot;facade&quot;</span>;
+ <span class="keywordtype">bool</span> eq = 0 == use_facet&lt;collator&lt;wchar_t&gt; &gt;(loc).compare(collator_base::secondary,a,b);
+ wcout &lt;&lt; a &lt;&lt;L<span class="stringliteral">&quot; and &quot;</span>&lt;&lt;b&lt;&lt;L<span class="stringliteral">&quot; are &quot;</span> &lt;&lt; (eq ? L<span class="stringliteral">&quot;identical&quot;</span> : L<span class="stringliteral">&quot;different&quot;</span>)&lt;&lt;endl;
+</pre></div><p><code>std::locale</code> is designed to be useful as a comparison class in STL collections and algorithms. To get similar functionality with comparison levels, you must use the comparator class.</p>
+<div class="fragment"><pre class="fragment"> std::map&lt;std::string,std::string,comparator&lt;char,collator_base::secondary&gt; &gt; strings;
+ <span class="comment">// Now strings uses the default system locale for string comparison</span>
+</pre></div><p>You can also set a specific locale or level when creating and using the <a class="el" href="structboost_1_1locale_1_1comparator.html">comparator</a> class:</p>
+<div class="fragment"><pre class="fragment"> comparator&lt;char&gt; comp(some_locale,some_level);
+ std::map&lt;std::string,std::string,comparator&lt;char&gt; &gt; strings(comp);
+</pre></div> </div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/collator_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/collator_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,221 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/collator.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/collator.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_COLLATOR_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_COLLATOR_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#include &lt;locale&gt;</span>
+<a name="l00017"></a>00017
+<a name="l00018"></a>00018
+<a name="l00019"></a>00019 <span class="keyword">namespace </span>boost {
+<a name="l00020"></a><a class="code" href="namespaceboost_1_1locale.html">00020</a> <span class="keyword">namespace </span>locale {
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022 <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1info.html" title="a facet that holds general information about locale">info</a>;
+<a name="l00023"></a>00023
+<a name="l00030"></a>00030
+<a name="l00034"></a>00034
+<a name="l00035"></a><a class="code" href="classboost_1_1locale_1_1collator__base.html">00035</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1collator__base.html" title="a base class that includes collation level flags">collator_base</a> {
+<a name="l00036"></a>00036 <span class="keyword">public</span>:
+<a name="l00040"></a><a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">00040</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00041"></a><a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ae57e842f398a27ee490208f5af39675b">00041</a> <a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ae57e842f398a27ee490208f5af39675b" title="1st collation level: base letters">primary</a> = 0,
+<a name="l00042"></a><a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ad8e103443d69f03f00ac4b68a7181866">00042</a> <a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ad8e103443d69f03f00ac4b68a7181866" title="2nd collation level: letters and accents">secondary</a> = 1,
+<a name="l00043"></a><a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3a852752e9663b7b3340c435d0cfe36a">00043</a> <a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3a852752e9663b7b3340c435d0cfe36a" title="3rd collation level: letters, accents and case">tertiary</a> = 2,
+<a name="l00044"></a><a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a22ca1875fd63667fbb018df16b0aedba">00044</a> <a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a22ca1875fd63667fbb018df16b0aedba" title="4th collation level: letters, accents, case and punctuation">quaternary</a> = 3,
+<a name="l00045"></a><a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3c209055ff840e311581ab43013026f2">00045</a> <a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3c209055ff840e311581ab43013026f2" title="identical collation level: include code-point comparison">identical</a> = 4
+<a name="l00046"></a>00046 } level_type;
+<a name="l00047"></a>00047 };
+<a name="l00048"></a>00048
+<a name="l00055"></a>00055 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00056"></a><a class="code" href="classboost_1_1locale_1_1collator.html">00056</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1collator.html" title="Collation facet.">collator</a> :
+<a name="l00057"></a>00057 <span class="keyword">public</span> std::collate&lt;CharType&gt;,
+<a name="l00058"></a>00058 <span class="keyword">public</span> <a class="code" href="classboost_1_1locale_1_1collator__base.html" title="a base class that includes collation level flags">collator_base</a>
+<a name="l00059"></a>00059 {
+<a name="l00060"></a>00060 <span class="keyword">public</span>:
+<a name="l00064"></a><a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">00064</a> <span class="keyword">typedef</span> CharType char_type;
+<a name="l00068"></a><a class="code" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">00068</a> <span class="keyword">typedef</span> std::basic_string&lt;CharType&gt; string_type;
+<a name="l00069"></a>00069
+<a name="l00070"></a>00070
+<a name="l00077"></a><a class="code" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">00077</a> <span class="keywordtype">int</span> <a class="code" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a>(<a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level,
+<a name="l00078"></a>00078 <a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *b1,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *e1,
+<a name="l00079"></a>00079 <a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *b2,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *e2)<span class="keyword"> const</span>
+<a name="l00080"></a>00080 <span class="keyword"> </span>{
+<a name="l00081"></a>00081 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1collator.html#ada3a683bed35789e081b710a8e9a9a07">do_compare</a>(level,b1,e1,b2,e2);
+<a name="l00082"></a>00082 }
+<a name="l00094"></a><a class="code" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">00094</a> <a class="code" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <a class="code" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a>(<a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *b,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *e)<span class="keyword"> const</span>
+<a name="l00095"></a>00095 <span class="keyword"> </span>{
+<a name="l00096"></a>00096 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1collator.html#a84b5cb6ff01cf1a1330e1556a2c674d5">do_transform</a>(level,b,e);
+<a name="l00097"></a>00097 }
+<a name="l00098"></a>00098
+<a name="l00106"></a><a class="code" href="classboost_1_1locale_1_1collator.html#a89752e2023643f972b6cc8024340d5d4">00106</a> <span class="keywordtype">long</span> <a class="code" href="classboost_1_1locale_1_1collator.html#a89752e2023643f972b6cc8024340d5d4">hash</a>(<a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *b,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *e)<span class="keyword"> const</span>
+<a name="l00107"></a>00107 <span class="keyword"> </span>{
+<a name="l00108"></a>00108 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1collator.html#aa093cd4ed0b4be4a5e38f0f04a56ac0b">do_hash</a>(level,b,e);
+<a name="l00109"></a>00109 }
+<a name="l00110"></a>00110
+<a name="l00118"></a><a class="code" href="classboost_1_1locale_1_1collator.html#a9ccdfec693cdc5a71b5adc1f083881bf">00118</a> <span class="keywordtype">int</span> <a class="code" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a>(<a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level,<a class="code" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <span class="keyword">const</span> &amp;l,<a class="code" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <span class="keyword">const</span> &amp;r)<span class="keyword"> const</span>
+<a name="l00119"></a>00119 <span class="keyword"> </span>{
+<a name="l00120"></a>00120 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1collator.html#ada3a683bed35789e081b710a8e9a9a07">do_compare</a>(level,l.data(),l.data()+l.size(),r.data(),r.data()+r.size());
+<a name="l00121"></a>00121 }
+<a name="l00122"></a>00122
+<a name="l00128"></a>00128
+<a name="l00129"></a><a class="code" href="classboost_1_1locale_1_1collator.html#a76000f6cf10bfe63dd7fd10652de3f5b">00129</a> <span class="keywordtype">long</span> <a class="code" href="classboost_1_1locale_1_1collator.html#a89752e2023643f972b6cc8024340d5d4">hash</a>(<a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level,<a class="code" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <span class="keyword">const</span> &amp;s)<span class="keyword"> const</span>
+<a name="l00130"></a>00130 <span class="keyword"> </span>{
+<a name="l00131"></a>00131 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1collator.html#aa093cd4ed0b4be4a5e38f0f04a56ac0b">do_hash</a>(level,s.data(),s.data()+s.size());
+<a name="l00132"></a>00132 }
+<a name="l00142"></a><a class="code" href="classboost_1_1locale_1_1collator.html#aa9976b4fa0fba6c5d1a1dea9b5ef02ca">00142</a> <a class="code" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <a class="code" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a>(<a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level,<a class="code" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <span class="keyword">const</span> &amp;s)<span class="keyword"> const</span>
+<a name="l00143"></a>00143 <span class="keyword"> </span>{
+<a name="l00144"></a>00144 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1collator.html#a84b5cb6ff01cf1a1330e1556a2c674d5">do_transform</a>(level,s.data(),s.data()+s.size());
+<a name="l00145"></a>00145 }
+<a name="l00146"></a>00146
+<a name="l00147"></a>00147 <span class="keyword">protected</span>:
+<a name="l00148"></a>00148
+<a name="l00152"></a><a class="code" href="classboost_1_1locale_1_1collator.html#a25a8b21a756756e850a7488a54610053">00152</a> <a class="code" href="classboost_1_1locale_1_1collator.html#a25a8b21a756756e850a7488a54610053">collator</a>(<span class="keywordtype">size_t</span> refs = 0) : std::collate&lt;CharType&gt;(refs)
+<a name="l00153"></a>00153 {
+<a name="l00154"></a>00154 }
+<a name="l00155"></a>00155
+<a name="l00156"></a>00156 <span class="keyword">virtual</span> ~<a class="code" href="classboost_1_1locale_1_1collator.html" title="Collation facet.">collator</a>()
+<a name="l00157"></a>00157 {
+<a name="l00158"></a>00158 }
+<a name="l00159"></a>00159
+<a name="l00164"></a><a class="code" href="classboost_1_1locale_1_1collator.html#ada3a683bed35789e081b710a8e9a9a07">00164</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classboost_1_1locale_1_1collator.html#ada3a683bed35789e081b710a8e9a9a07">do_compare</a>( <a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *b1,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *e1,
+<a name="l00165"></a>00165 <a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *b2,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *e2)<span class="keyword"> const</span>
+<a name="l00166"></a>00166 <span class="keyword"> </span>{
+<a name="l00167"></a>00167 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1collator.html#ada3a683bed35789e081b710a8e9a9a07">do_compare</a>(<a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3c209055ff840e311581ab43013026f2" title="identical collation level: include code-point comparison">identical</a>,b1,e1,b2,e2);
+<a name="l00168"></a>00168 }
+<a name="l00173"></a><a class="code" href="classboost_1_1locale_1_1collator.html#a84b5cb6ff01cf1a1330e1556a2c674d5">00173</a> <span class="keyword">virtual</span> <a class="code" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <a class="code" href="classboost_1_1locale_1_1collator.html#a84b5cb6ff01cf1a1330e1556a2c674d5">do_transform</a>(<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *b,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *e)<span class="keyword"> const</span>
+<a name="l00174"></a>00174 <span class="keyword"> </span>{
+<a name="l00175"></a>00175 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1collator.html#a84b5cb6ff01cf1a1330e1556a2c674d5">do_transform</a>(<a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3c209055ff840e311581ab43013026f2" title="identical collation level: include code-point comparison">identical</a>,b,e);
+<a name="l00176"></a>00176 }
+<a name="l00181"></a><a class="code" href="classboost_1_1locale_1_1collator.html#aa093cd4ed0b4be4a5e38f0f04a56ac0b">00181</a> <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="classboost_1_1locale_1_1collator.html#aa093cd4ed0b4be4a5e38f0f04a56ac0b">do_hash</a>(<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *b,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *e)<span class="keyword"> const</span>
+<a name="l00182"></a>00182 <span class="keyword"> </span>{
+<a name="l00183"></a>00183 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1collator.html#aa093cd4ed0b4be4a5e38f0f04a56ac0b">do_hash</a>(<a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3c209055ff840e311581ab43013026f2" title="identical collation level: include code-point comparison">identical</a>,b,e);
+<a name="l00184"></a>00184 }
+<a name="l00185"></a>00185
+<a name="l00189"></a>00189 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classboost_1_1locale_1_1collator.html#ada3a683bed35789e081b710a8e9a9a07">do_compare</a>( <a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level,
+<a name="l00190"></a>00190 <a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *b1,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *e1,
+<a name="l00191"></a>00191 <a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *b2,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *e2) <span class="keyword">const</span> = 0;
+<a name="l00195"></a>00195 <span class="keyword">virtual</span> <a class="code" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <a class="code" href="classboost_1_1locale_1_1collator.html#a84b5cb6ff01cf1a1330e1556a2c674d5">do_transform</a>(<a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *b,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *e) <span class="keyword">const</span> = 0;
+<a name="l00199"></a>00199 <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="classboost_1_1locale_1_1collator.html#aa093cd4ed0b4be4a5e38f0f04a56ac0b">do_hash</a>(<a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *b,<a class="code" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> <span class="keyword">const</span> *e) <span class="keyword">const</span> = 0;
+<a name="l00200"></a>00200
+<a name="l00201"></a>00201
+<a name="l00202"></a>00202 };
+<a name="l00203"></a>00203
+<a name="l00216"></a>00216 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,collator_base::level_type default_level = collator_base::<span class="keywordtype">id</span>entical&gt;
+<a name="l00217"></a><a class="code" href="structboost_1_1locale_1_1comparator.html">00217</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1locale_1_1comparator.html" title="This class can be used in STL algorithms and containers for comparison of strings with a level other ...">comparator</a>
+<a name="l00218"></a>00218 {
+<a name="l00219"></a>00219 <span class="keyword">public</span>:
+<a name="l00225"></a><a class="code" href="structboost_1_1locale_1_1comparator.html#af40ee48c6c93b6e5d91492a3e0cb96a8">00225</a> <a class="code" href="structboost_1_1locale_1_1comparator.html#af40ee48c6c93b6e5d91492a3e0cb96a8">comparator</a>(std::locale <span class="keyword">const</span> &amp;l=std::locale(),<a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">collator_base::level_type</a> level=default_level) :
+<a name="l00226"></a>00226 locale_(l),
+<a name="l00227"></a>00227 level_(level)
+<a name="l00228"></a>00228 {
+<a name="l00229"></a>00229 }
+<a name="l00230"></a>00230
+<a name="l00234"></a><a class="code" href="structboost_1_1locale_1_1comparator.html#abd62dbc2af0eb6e6c261a7c88e09f752">00234</a> <span class="keywordtype">bool</span> <a class="code" href="structboost_1_1locale_1_1comparator.html#abd62dbc2af0eb6e6c261a7c88e09f752">operator()</a>(std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;left,std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;right)<span class="keyword"> const</span>
+<a name="l00235"></a>00235 <span class="keyword"> </span>{
+<a name="l00236"></a>00236 <span class="keywordflow">return</span> std::use_facet&lt;collator&lt;CharType&gt; &gt;(locale_).compare(level_,left,right) &lt; 0;
+<a name="l00237"></a>00237 }
+<a name="l00238"></a>00238 <span class="keyword">private</span>:
+<a name="l00239"></a>00239 std::locale locale_;
+<a name="l00240"></a>00240 <a class="code" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">collator_base::level_type</a> level_;
+<a name="l00241"></a>00241 };
+<a name="l00242"></a>00242
+<a name="l00243"></a>00243
+<a name="l00247"></a>00247
+<a name="l00248"></a>00248 } <span class="comment">// locale</span>
+<a name="l00249"></a>00249 } <span class="comment">// boost</span>
+<a name="l00250"></a>00250
+<a name="l00251"></a>00251 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00252"></a>00252 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l00253"></a>00253 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00254"></a>00254 <span class="preprocessor"></span>
+<a name="l00255"></a>00255
+<a name="l00256"></a>00256 <span class="preprocessor">#endif</span>
+<a name="l00257"></a>00257 <span class="preprocessor"></span>
+<a name="l00258"></a>00258
+<a name="l00259"></a>00259
+<a name="l00260"></a>00260
+<a name="l00261"></a>00261 <span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/config_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/config_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/config.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/config.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_CONFIG_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_CONFIG_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/config.hpp&gt;</span>
+<a name="l00012"></a>00012
+<a name="l00013"></a>00013 <span class="comment">// Support older ICU versions</span>
+<a name="l00014"></a>00014 <span class="preprocessor">#ifndef BOOST_SYMBOL_VISIBLE</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor"># define BOOST_SYMBOL_VISIBLE</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span>
+<a name="l00018"></a>00018 <span class="preprocessor">#ifdef BOOST_HAS_DECLSPEC </span>
+<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor"># if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_LOCALE_DYN_LINK)</span>
+<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor"># ifdef BOOST_LOCALE_SOURCE</span>
+<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor"># define BOOST_LOCALE_DECL BOOST_SYMBOL_EXPORT</span>
+<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"># else</span>
+<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor"># define BOOST_LOCALE_DECL BOOST_SYMBOL_IMPORT</span>
+<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor"># endif // BOOST_LOCALE_SOURCE</span>
+<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor"># endif // DYN_LINK</span>
+<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#endif // BOOST_HAS_DECLSPEC</span>
+<a name="l00027"></a>00027 <span class="preprocessor"></span>
+<a name="l00028"></a>00028 <span class="preprocessor">#ifndef BOOST_LOCALE_DECL</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor"># define BOOST_LOCALE_DECL</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span>
+<a name="l00032"></a>00032 <span class="comment">//</span>
+<a name="l00033"></a>00033 <span class="comment">// Automatically link to the correct build variant where possible. </span>
+<a name="l00034"></a>00034 <span class="comment">// </span>
+<a name="l00035"></a>00035 <span class="preprocessor">#if !defined(BOOST_ALL_NO_LIB) &amp;&amp; !defined(BOOST_LOCALE_NO_LIB) &amp;&amp; !defined(BOOST_LOCALE_SOURCE)</span>
+<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="comment">//</span>
+<a name="l00037"></a>00037 <span class="comment">// Set the name of our library, this will get undef&#39;ed by auto_link.hpp</span>
+<a name="l00038"></a>00038 <span class="comment">// once it&#39;s done with it:</span>
+<a name="l00039"></a>00039 <span class="comment">//</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#define BOOST_LIB_NAME boost_locale</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="comment">//</span>
+<a name="l00042"></a>00042 <span class="comment">// If we&#39;re importing code from a dll, then tell auto_link.hpp about it:</span>
+<a name="l00043"></a>00043 <span class="comment">//</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_LOCALE_DYN_LINK)</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor"># define BOOST_DYN_LINK</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="comment">//</span>
+<a name="l00048"></a>00048 <span class="comment">// And include the header that does the work:</span>
+<a name="l00049"></a>00049 <span class="comment">//</span>
+<a name="l00050"></a>00050 <span class="preprocessor">#include &lt;boost/config/auto_link.hpp&gt;</span>
+<a name="l00051"></a>00051 <span class="preprocessor">#endif // auto-linking disabled</span>
+<a name="l00052"></a>00052 <span class="preprocessor"></span>
+<a name="l00053"></a>00053
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055 <span class="preprocessor">#endif // boost/locale/config.hpp</span>
+<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+<a name="l00057"></a>00057
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/conversion_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/conversion_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,332 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/conversion.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/conversion.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_CONVERTER_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_CONVERTER_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#include &lt;locale&gt;</span>
+<a name="l00017"></a>00017
+<a name="l00018"></a>00018
+<a name="l00019"></a>00019 <span class="keyword">namespace </span>boost {
+<a name="l00020"></a>00020 <span class="keyword">namespace </span>locale {
+<a name="l00021"></a>00021
+<a name="l00028"></a>00028
+<a name="l00029"></a>00029
+<a name="l00033"></a><a class="code" href="classboost_1_1locale_1_1converter__base.html">00033</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1converter__base.html" title="This class provides base flags for text manipulation. It is used as base for converter facet...">converter_base</a> {
+<a name="l00034"></a>00034 <span class="keyword">public</span>:
+<a name="l00038"></a><a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669b">00038</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00039"></a><a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bae20bf7eface68062a0b9f2396833354a">00039</a> normalization,
+<a name="l00040"></a><a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba0fee54e09732910ab30856d0e34c8ad2">00040</a> upper_case,
+<a name="l00041"></a><a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba2c5c38c6bc6ca01fb9e573c148ba8ebe">00041</a> lower_case,
+<a name="l00042"></a><a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba91936aed5b7c3a82b4d2c2354ead03d3">00042</a> case_folding,
+<a name="l00043"></a><a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bac136b257286085de7bd7eb4a7876dfa7">00043</a> <a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bac136b257286085de7bd7eb4a7876dfa7" title="Convert text to title case.">title_case</a>
+<a name="l00044"></a>00044 } conversion_type;
+<a name="l00045"></a>00045 };
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00048"></a>00048 <span class="keyword">class </span>converter;
+<a name="l00049"></a>00049
+<a name="l00050"></a>00050 <span class="preprocessor"> #ifdef BOOST_LOCALE_DOXYGEN</span>
+<a name="l00051"></a>00051 <span class="preprocessor"></span>
+<a name="l00052"></a>00052
+<a name="l00053"></a>00053
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055
+<a name="l00056"></a>00056
+<a name="l00057"></a>00057 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Char&gt;
+<a name="l00058"></a><a class="code" href="classboost_1_1locale_1_1converter.html">00058</a> <span class="keyword">class </span>BOOST_LOCALE_DECL <a class="code" href="classboost_1_1locale_1_1converter.html" title="The facet that implements text manipulation.">converter</a>: <span class="keyword">public</span> <a class="code" href="classboost_1_1locale_1_1converter__base.html" title="This class provides base flags for text manipulation. It is used as base for converter facet...">converter_base</a>, <span class="keyword">public</span> std::locale::facet {
+<a name="l00059"></a>00059 <span class="keyword">public</span>:
+<a name="l00061"></a><a class="code" href="classboost_1_1locale_1_1converter.html#a0ab17b265161bb2c5d7a233710d2740b">00061</a> <span class="keyword">static</span> std::locale::id id;
+<a name="l00062"></a>00062
+<a name="l00064"></a><a class="code" href="classboost_1_1locale_1_1converter.html#aba25fd4a18937543823cd61bef72c628">00064</a> <a class="code" href="classboost_1_1locale_1_1converter.html" title="The facet that implements text manipulation.">converter</a>(<span class="keywordtype">size_t</span> refs = 0) : std::locale::facet(refs)
+<a name="l00065"></a>00065 {
+<a name="l00066"></a>00066 }
+<a name="l00071"></a>00071 <span class="keyword">virtual</span> std::basic_string&lt;Char&gt; convert(conversion_type how,Char <span class="keyword">const</span> *begin,Char <span class="keyword">const</span> *end,<span class="keywordtype">int</span> flags = 0) <span class="keyword">const</span> = 0;
+<a name="l00072"></a>00072 <span class="preprocessor">#if defined (__SUNPRO_CC) &amp;&amp; defined (_RWSTD_VER)</span>
+<a name="l00073"></a>00073 <span class="preprocessor"></span> std::locale::id&amp; __get_id (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> id; }
+<a name="l00074"></a>00074 <span class="preprocessor">#endif</span>
+<a name="l00075"></a>00075 <span class="preprocessor"></span> };
+<a name="l00076"></a>00076 <span class="preprocessor"> #else</span>
+<a name="l00077"></a>00077 <span class="preprocessor"></span>
+<a name="l00078"></a>00078 <span class="keyword">template</span>&lt;&gt;
+<a name="l00079"></a>00079 <span class="keyword">class </span>BOOST_LOCALE_DECL converter&lt;char&gt; : <span class="keyword">public</span> converter_base, <span class="keyword">public</span> std::locale::facet {
+<a name="l00080"></a>00080 <span class="keyword">public</span>:
+<a name="l00081"></a>00081 <span class="keyword">static</span> std::locale::id id;
+<a name="l00082"></a>00082
+<a name="l00083"></a>00083 converter(<span class="keywordtype">size_t</span> refs = 0) : std::locale::facet(refs)
+<a name="l00084"></a>00084 {
+<a name="l00085"></a>00085 }
+<a name="l00086"></a>00086 <span class="keyword">virtual</span> std::string convert(conversion_type how,<span class="keywordtype">char</span> <span class="keyword">const</span> *begin,<span class="keywordtype">char</span> <span class="keyword">const</span> *end,<span class="keywordtype">int</span> flags = 0) <span class="keyword">const</span> = 0;
+<a name="l00087"></a>00087 <span class="preprocessor">#if defined (__SUNPRO_CC) &amp;&amp; defined (_RWSTD_VER)</span>
+<a name="l00088"></a>00088 <span class="preprocessor"></span> std::locale::id&amp; __get_id (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> id; }
+<a name="l00089"></a>00089 <span class="preprocessor">#endif</span>
+<a name="l00090"></a>00090 <span class="preprocessor"></span> };
+<a name="l00091"></a>00091
+<a name="l00092"></a>00092 <span class="keyword">template</span>&lt;&gt;
+<a name="l00093"></a>00093 <span class="keyword">class </span>BOOST_LOCALE_DECL converter&lt;wchar_t&gt; : <span class="keyword">public</span> converter_base, <span class="keyword">public</span> std::locale::facet {
+<a name="l00094"></a>00094 <span class="keyword">public</span>:
+<a name="l00095"></a>00095 <span class="keyword">static</span> std::locale::id id;
+<a name="l00096"></a>00096 converter(<span class="keywordtype">size_t</span> refs = 0) : std::locale::facet(refs)
+<a name="l00097"></a>00097 {
+<a name="l00098"></a>00098 }
+<a name="l00099"></a>00099 <span class="keyword">virtual</span> std::wstring convert(conversion_type how,<span class="keywordtype">wchar_t</span> <span class="keyword">const</span> *begin,<span class="keywordtype">wchar_t</span> <span class="keyword">const</span> *end,<span class="keywordtype">int</span> flags = 0) <span class="keyword">const</span> = 0;
+<a name="l00100"></a>00100 <span class="preprocessor">#if defined (__SUNPRO_CC) &amp;&amp; defined (_RWSTD_VER)</span>
+<a name="l00101"></a>00101 <span class="preprocessor"></span> std::locale::id&amp; __get_id (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> id; }
+<a name="l00102"></a>00102 <span class="preprocessor">#endif</span>
+<a name="l00103"></a>00103 <span class="preprocessor"></span> };
+<a name="l00104"></a>00104
+<a name="l00105"></a>00105 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR16_T</span>
+<a name="l00106"></a>00106 <span class="preprocessor"></span> <span class="keyword">template</span>&lt;&gt;
+<a name="l00107"></a>00107 <span class="keyword">class </span>BOOST_LOCALE_DECL converter&lt;char16_t&gt; : <span class="keyword">public</span> converter_base, <span class="keyword">public</span> std::locale::facet {
+<a name="l00108"></a>00108 <span class="keyword">public</span>:
+<a name="l00109"></a>00109 <span class="keyword">static</span> std::locale::id id;
+<a name="l00110"></a>00110 converter(<span class="keywordtype">size_t</span> refs = 0) : std::locale::facet(refs)
+<a name="l00111"></a>00111 {
+<a name="l00112"></a>00112 }
+<a name="l00113"></a>00113 <span class="keyword">virtual</span> std::u16string convert(conversion_type how,char16_t <span class="keyword">const</span> *begin,char16_t <span class="keyword">const</span> *end,<span class="keywordtype">int</span> flags = 0) <span class="keyword">const</span> = 0;
+<a name="l00114"></a>00114 <span class="preprocessor">#if defined (__SUNPRO_CC) &amp;&amp; defined (_RWSTD_VER)</span>
+<a name="l00115"></a>00115 <span class="preprocessor"></span> std::locale::id&amp; __get_id (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> id; }
+<a name="l00116"></a>00116 <span class="preprocessor">#endif</span>
+<a name="l00117"></a>00117 <span class="preprocessor"></span> };
+<a name="l00118"></a>00118 <span class="preprocessor"> #endif</span>
+<a name="l00119"></a>00119 <span class="preprocessor"></span>
+<a name="l00120"></a>00120 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR32_T</span>
+<a name="l00121"></a>00121 <span class="preprocessor"></span> <span class="keyword">template</span>&lt;&gt;
+<a name="l00122"></a>00122 <span class="keyword">class </span>BOOST_LOCALE_DECL converter&lt;char32_t&gt; : <span class="keyword">public</span> converter_base, <span class="keyword">public</span> std::locale::facet {
+<a name="l00123"></a>00123 <span class="keyword">public</span>:
+<a name="l00124"></a>00124 <span class="keyword">static</span> std::locale::id id;
+<a name="l00125"></a>00125 converter(<span class="keywordtype">size_t</span> refs = 0) : std::locale::facet(refs)
+<a name="l00126"></a>00126 {
+<a name="l00127"></a>00127 }
+<a name="l00128"></a>00128 <span class="keyword">virtual</span> std::u32string convert(conversion_type how,char32_t <span class="keyword">const</span> *begin,char32_t <span class="keyword">const</span> *end,<span class="keywordtype">int</span> flags = 0) <span class="keyword">const</span> = 0;
+<a name="l00129"></a>00129 <span class="preprocessor">#if defined (__SUNPRO_CC) &amp;&amp; defined (_RWSTD_VER)</span>
+<a name="l00130"></a>00130 <span class="preprocessor"></span> std::locale::id&amp; __get_id (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> id; }
+<a name="l00131"></a>00131 <span class="preprocessor">#endif</span>
+<a name="l00132"></a>00132 <span class="preprocessor"></span> };
+<a name="l00133"></a>00133 <span class="preprocessor"> #endif</span>
+<a name="l00134"></a>00134 <span class="preprocessor"></span>
+<a name="l00135"></a>00135 <span class="preprocessor"> #endif</span>
+<a name="l00136"></a>00136 <span class="preprocessor"></span>
+<a name="l00140"></a>00140
+<a name="l00141"></a><a class="code" href="group__convert.html#ga6a595a415b83b8a0c8f14c34eb66cc9f">00141</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00142"></a><a class="code" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9fa6648d0eabb931f2e9d258570b297e98f">00142</a> norm_nfd,
+<a name="l00143"></a><a class="code" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9faf6fe7be275e5e13df415ab258105ada0">00143</a> norm_nfc,
+<a name="l00144"></a><a class="code" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9fa0fbc2ac042fc6f58af5818bfd06d5379">00144</a> norm_nfkd,
+<a name="l00145"></a><a class="code" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9fa0305c1f3405ea70facf4c6a5ffa40583">00145</a> norm_nfkc,
+<a name="l00146"></a><a class="code" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9faa29173d73d9be7fefcbb18c8712465d2">00146</a> <a class="code" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9faa29173d73d9be7fefcbb18c8712465d2" title="Default normalization - canonical decomposition followed by canonical composition.">norm_default</a> = norm_nfc,
+<a name="l00147"></a>00147 } norm_type;
+<a name="l00148"></a>00148
+<a name="l00158"></a>00158 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00159"></a><a class="code" href="group__convert.html#ga11672e3cc3ed7eecf1dd07060265aab2">00159</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__convert.html#ga11672e3cc3ed7eecf1dd07060265aab2">normalize</a>(std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;str,<a class="code" href="group__convert.html#ga6a595a415b83b8a0c8f14c34eb66cc9f">norm_type</a> n=<a class="code" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9faa29173d73d9be7fefcbb18c8712465d2" title="Default normalization - canonical decomposition followed by canonical composition.">norm_default</a>,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00160"></a>00160 {
+<a name="l00161"></a>00161 <span class="keywordflow">return</span> std::use_facet&lt;converter&lt;CharType&gt; &gt;(loc).convert(<a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bae20bf7eface68062a0b9f2396833354a" title="Apply Unicode normalization on the text.">converter_base::normalization</a>,str.data(),str.data() + str.size(),n);
+<a name="l00162"></a>00162 }
+<a name="l00163"></a>00163
+<a name="l00173"></a>00173 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00174"></a><a class="code" href="group__convert.html#ga340161bd91c1a768e927a4c827084a4c">00174</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__convert.html#ga11672e3cc3ed7eecf1dd07060265aab2">normalize</a>(CharType <span class="keyword">const</span> *str,<a class="code" href="group__convert.html#ga6a595a415b83b8a0c8f14c34eb66cc9f">norm_type</a> n=<a class="code" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9faa29173d73d9be7fefcbb18c8712465d2" title="Default normalization - canonical decomposition followed by canonical composition.">norm_default</a>,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00175"></a>00175 {
+<a name="l00176"></a>00176 CharType <span class="keyword">const</span> *end=str;
+<a name="l00177"></a>00177 <span class="keywordflow">while</span>(*end)
+<a name="l00178"></a>00178 end++;
+<a name="l00179"></a>00179 <span class="keywordflow">return</span> std::use_facet&lt;converter&lt;CharType&gt; &gt;(loc).convert(<a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bae20bf7eface68062a0b9f2396833354a" title="Apply Unicode normalization on the text.">converter_base::normalization</a>,str,end,n);
+<a name="l00180"></a>00180 }
+<a name="l00181"></a>00181
+<a name="l00191"></a>00191 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00192"></a><a class="code" href="group__convert.html#ga348f607537413204e88c636392c29704">00192</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__convert.html#ga11672e3cc3ed7eecf1dd07060265aab2">normalize</a>( CharType <span class="keyword">const</span> *begin,
+<a name="l00193"></a>00193 CharType <span class="keyword">const</span> *end,
+<a name="l00194"></a>00194 <a class="code" href="group__convert.html#ga6a595a415b83b8a0c8f14c34eb66cc9f">norm_type</a> n=<a class="code" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9faa29173d73d9be7fefcbb18c8712465d2" title="Default normalization - canonical decomposition followed by canonical composition.">norm_default</a>,
+<a name="l00195"></a>00195 std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00196"></a>00196 {
+<a name="l00197"></a>00197 <span class="keywordflow">return</span> std::use_facet&lt;converter&lt;CharType&gt; &gt;(loc).convert(<a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bae20bf7eface68062a0b9f2396833354a" title="Apply Unicode normalization on the text.">converter_base::normalization</a>,begin,end,n);
+<a name="l00198"></a>00198 }
+<a name="l00199"></a>00199
+<a name="l00201"></a>00201
+<a name="l00207"></a>00207
+<a name="l00208"></a>00208 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00209"></a><a class="code" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">00209</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">to_upper</a>(std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;str,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00210"></a>00210 {
+<a name="l00211"></a>00211 <span class="keywordflow">return</span> std::use_facet&lt;converter&lt;CharType&gt; &gt;(loc).convert(<a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba0fee54e09732910ab30856d0e34c8ad2" title="Convert text to upper case.">converter_base::upper_case</a>,str.data(),str.data()+str.size());
+<a name="l00212"></a>00212 }
+<a name="l00213"></a>00213
+<a name="l00219"></a>00219 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00220"></a><a class="code" href="group__convert.html#ga21cc3d265fccd4dc4ac299edde0637f8">00220</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">to_upper</a>(CharType <span class="keyword">const</span> *str,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00221"></a>00221 {
+<a name="l00222"></a>00222 CharType <span class="keyword">const</span> *end=str;
+<a name="l00223"></a>00223 <span class="keywordflow">while</span>(*end)
+<a name="l00224"></a>00224 end++;
+<a name="l00225"></a>00225 <span class="keywordflow">return</span> std::use_facet&lt;converter&lt;CharType&gt; &gt;(loc).convert(<a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba0fee54e09732910ab30856d0e34c8ad2" title="Convert text to upper case.">converter_base::upper_case</a>,str,end);
+<a name="l00226"></a>00226 }
+<a name="l00227"></a>00227
+<a name="l00233"></a>00233 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00234"></a><a class="code" href="group__convert.html#ga612ddbe1ed3fd910b22bcd6ae401ac22">00234</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">to_upper</a>(CharType <span class="keyword">const</span> *begin,CharType <span class="keyword">const</span> *end,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00235"></a>00235 {
+<a name="l00236"></a>00236 <span class="keywordflow">return</span> std::use_facet&lt;converter&lt;CharType&gt; &gt;(loc).convert(<a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba0fee54e09732910ab30856d0e34c8ad2" title="Convert text to upper case.">converter_base::upper_case</a>,begin,end);
+<a name="l00237"></a>00237 }
+<a name="l00238"></a>00238
+<a name="l00240"></a>00240
+<a name="l00246"></a>00246
+<a name="l00247"></a>00247 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00248"></a><a class="code" href="group__convert.html#ga33de83f16ff2c09cac780977c6f67099">00248</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__convert.html#ga33de83f16ff2c09cac780977c6f67099">to_lower</a>(std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;str,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00249"></a>00249 {
+<a name="l00250"></a>00250 <span class="keywordflow">return</span> std::use_facet&lt;converter&lt;CharType&gt; &gt;(loc).convert(<a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba2c5c38c6bc6ca01fb9e573c148ba8ebe" title="Convert text to lower case.">converter_base::lower_case</a>,str.data(),str.data()+str.size());
+<a name="l00251"></a>00251 }
+<a name="l00252"></a>00252
+<a name="l00258"></a>00258 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00259"></a><a class="code" href="group__convert.html#ga676a7c90319f0f82657cb31ce20d3dbd">00259</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__convert.html#ga33de83f16ff2c09cac780977c6f67099">to_lower</a>(CharType <span class="keyword">const</span> *str,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00260"></a>00260 {
+<a name="l00261"></a>00261 CharType <span class="keyword">const</span> *end=str;
+<a name="l00262"></a>00262 <span class="keywordflow">while</span>(*end)
+<a name="l00263"></a>00263 end++;
+<a name="l00264"></a>00264 <span class="keywordflow">return</span> std::use_facet&lt;converter&lt;CharType&gt; &gt;(loc).convert(<a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba2c5c38c6bc6ca01fb9e573c148ba8ebe" title="Convert text to lower case.">converter_base::lower_case</a>,str,end);
+<a name="l00265"></a>00265 }
+<a name="l00266"></a>00266
+<a name="l00272"></a>00272 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00273"></a><a class="code" href="group__convert.html#gab2d86cb2219169ab69c1d29f5d2a854e">00273</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__convert.html#ga33de83f16ff2c09cac780977c6f67099">to_lower</a>(CharType <span class="keyword">const</span> *begin,CharType <span class="keyword">const</span> *end,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00274"></a>00274 {
+<a name="l00275"></a>00275 <span class="keywordflow">return</span> std::use_facet&lt;converter&lt;CharType&gt; &gt;(loc).convert(<a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba2c5c38c6bc6ca01fb9e573c148ba8ebe" title="Convert text to lower case.">converter_base::lower_case</a>,begin,end);
+<a name="l00276"></a>00276 }
+<a name="l00278"></a>00278
+<a name="l00284"></a>00284
+<a name="l00285"></a>00285 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00286"></a><a class="code" href="group__convert.html#ga646f42adb01baf395d632c32f556a5b9">00286</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__convert.html#ga646f42adb01baf395d632c32f556a5b9">to_title</a>(std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;str,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00287"></a>00287 {
+<a name="l00288"></a>00288 <span class="keywordflow">return</span> std::use_facet&lt;converter&lt;CharType&gt; &gt;(loc).convert(<a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bac136b257286085de7bd7eb4a7876dfa7" title="Convert text to title case.">converter_base::title_case</a>,str.data(),str.data()+str.size());
+<a name="l00289"></a>00289 }
+<a name="l00290"></a>00290
+<a name="l00296"></a>00296 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00297"></a><a class="code" href="group__convert.html#ga50fbad5e11e8e8ed0b04e6fb6bc25057">00297</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__convert.html#ga646f42adb01baf395d632c32f556a5b9">to_title</a>(CharType <span class="keyword">const</span> *str,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00298"></a>00298 {
+<a name="l00299"></a>00299 CharType <span class="keyword">const</span> *end=str;
+<a name="l00300"></a>00300 <span class="keywordflow">while</span>(*end)
+<a name="l00301"></a>00301 end++;
+<a name="l00302"></a>00302 <span class="keywordflow">return</span> std::use_facet&lt;converter&lt;CharType&gt; &gt;(loc).convert(<a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bac136b257286085de7bd7eb4a7876dfa7" title="Convert text to title case.">converter_base::title_case</a>,str,end);
+<a name="l00303"></a>00303 }
+<a name="l00304"></a>00304
+<a name="l00310"></a>00310 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00311"></a><a class="code" href="group__convert.html#gac9198c4fb61eefb72f1f863ed21b1e60">00311</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__convert.html#ga646f42adb01baf395d632c32f556a5b9">to_title</a>(CharType <span class="keyword">const</span> *begin,CharType <span class="keyword">const</span> *end,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00312"></a>00312 {
+<a name="l00313"></a>00313 <span class="keywordflow">return</span> std::use_facet&lt;converter&lt;CharType&gt; &gt;(loc).convert(<a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bac136b257286085de7bd7eb4a7876dfa7" title="Convert text to title case.">converter_base::title_case</a>,begin,end);
+<a name="l00314"></a>00314 }
+<a name="l00315"></a>00315
+<a name="l00317"></a>00317
+<a name="l00323"></a>00323
+<a name="l00324"></a>00324 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00325"></a><a class="code" href="group__convert.html#gabd1bc157122a5b9392487126fd0fffe5">00325</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__convert.html#gabd1bc157122a5b9392487126fd0fffe5">fold_case</a>(std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;str,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00326"></a>00326 {
+<a name="l00327"></a>00327 <span class="keywordflow">return</span> std::use_facet&lt;converter&lt;CharType&gt; &gt;(loc).convert(<a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba91936aed5b7c3a82b4d2c2354ead03d3" title="Fold case in the text.">converter_base::case_folding</a>,str.data(),str.data()+str.size());
+<a name="l00328"></a>00328 }
+<a name="l00329"></a>00329
+<a name="l00335"></a>00335 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00336"></a><a class="code" href="group__convert.html#ga4254d12cc75cb7b66ca96deca3e90fd1">00336</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__convert.html#gabd1bc157122a5b9392487126fd0fffe5">fold_case</a>(CharType <span class="keyword">const</span> *str,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00337"></a>00337 {
+<a name="l00338"></a>00338 CharType <span class="keyword">const</span> *end=str;
+<a name="l00339"></a>00339 <span class="keywordflow">while</span>(*end)
+<a name="l00340"></a>00340 end++;
+<a name="l00341"></a>00341 <span class="keywordflow">return</span> std::use_facet&lt;converter&lt;CharType&gt; &gt;(loc).convert(<a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba91936aed5b7c3a82b4d2c2354ead03d3" title="Fold case in the text.">converter_base::case_folding</a>,str,end);
+<a name="l00342"></a>00342 }
+<a name="l00343"></a>00343
+<a name="l00349"></a>00349 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00350"></a><a class="code" href="group__convert.html#ga597671217af41a3fdee10281fb6a0d17">00350</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__convert.html#gabd1bc157122a5b9392487126fd0fffe5">fold_case</a>(CharType <span class="keyword">const</span> *begin,CharType <span class="keyword">const</span> *end,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00351"></a>00351 {
+<a name="l00352"></a>00352 <span class="keywordflow">return</span> std::use_facet&lt;converter&lt;CharType&gt; &gt;(loc).convert(<a class="code" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba91936aed5b7c3a82b4d2c2354ead03d3" title="Fold case in the text.">converter_base::case_folding</a>,begin,end);
+<a name="l00353"></a>00353 }
+<a name="l00354"></a>00354
+<a name="l00358"></a>00358 } <span class="comment">// locale</span>
+<a name="l00359"></a>00359
+<a name="l00360"></a>00360 } <span class="comment">// boost</span>
+<a name="l00361"></a>00361
+<a name="l00362"></a>00362 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00363"></a>00363 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l00364"></a>00364 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00365"></a>00365 <span class="preprocessor"></span>
+<a name="l00366"></a>00366
+<a name="l00367"></a>00367 <span class="preprocessor">#endif</span>
+<a name="l00368"></a>00368 <span class="preprocessor"></span>
+<a name="l00378"></a>00378
+<a name="l00379"></a>00379 <span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+<a name="l00380"></a>00380
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/conversions.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/conversions.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Text Conversions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="using_boost_locale.html">Using Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Text Conversions </h1> </div>
+</div>
+<div class="contents">
+<p>There is a set of functions that perform basic string conversion operations: upper, lower and <a class="el" href="glossary.html#term_title_case">title case</a> conversions, <a class="el" href="glossary.html#term_case_folding">case folding</a> and Unicode <a class="el" href="glossary.html#term_normalization">normalization</a>. These are <a class="el" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">to_upper</a> , <a class="el" href="group__convert.html#ga33de83f16ff2c09cac780977c6f67099">to_lower</a>, <a class="el" href="group__convert.html#ga646f42adb01baf395d632c32f556a5b9">to_title</a>, <a class="el" href="group__convert.html#gabd1bc157122a5b9392487126fd0fffe5">fold_case</a> and <a class="el" href="group__convert.html#ga11672e3cc3ed7eecf1dd07060265aab2">normalize</a>.</p>
+<p>All these functions receive an <code>std::locale</code> object as parameter or use a global locale by default.</p>
+<p>Global locale is used in all examples below.</p>
+<h2><a class="anchor" id="conversions_case"></a>
+Case Handing</h2>
+<p>For example: </p>
+<div class="fragment"><pre class="fragment"> std::string grussen = <span class="stringliteral">&quot;grüßEN&quot;</span>;
+ std::cout &lt;&lt;<span class="stringliteral">&quot;Upper &quot;</span>&lt;&lt; <a class="code" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">boost::locale::to_upper</a>(grussen) &lt;&lt; std::endl
+ &lt;&lt;<span class="stringliteral">&quot;Lower &quot;</span>&lt;&lt; <a class="code" href="group__convert.html#ga33de83f16ff2c09cac780977c6f67099">boost::locale::to_lower</a>(grussen) &lt;&lt; std::endl
+ &lt;&lt;<span class="stringliteral">&quot;Title &quot;</span>&lt;&lt; <a class="code" href="group__convert.html#ga646f42adb01baf395d632c32f556a5b9">boost::locale::to_title</a>(grussen) &lt;&lt; std::endl
+ &lt;&lt;<span class="stringliteral">&quot;Fold &quot;</span>&lt;&lt; <a class="code" href="group__convert.html#gabd1bc157122a5b9392487126fd0fffe5">boost::locale::fold_case</a>(grussen) &lt;&lt; std::endl;
+</pre></div><p>Would print:</p>
+<div class="fragment"><pre class="fragment">
+Upper GRÃœSSEN
+Lower grüßen
+Title Grüßen
+Fold grüssen
+</pre></div><p>You may notice that there are existing functions <code>to_upper</code> and <code>to_lower</code> in the Boost.StringAlgo library. The difference is that these function operate over an entire string instead of performing incorrect character-by-character conversions.</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"> std::wstring grussen = L<span class="stringliteral">&quot;grüßen&quot;</span>;
+ std::wcout &lt;&lt; boost::algorithm::to_upper_copy(grussen) &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">boost::locale::to_upper</a>(grussen) &lt;&lt; std::endl;
+</pre></div><p>Would give in output:</p>
+<div class="fragment"><pre class="fragment">
+GRÜßEN GRÜSSEN
+</pre></div><p>Where a letter "ß" was not converted correctly to double-S in first case because of a limitation of <code>std::ctype</code> facet.</p>
+<p>This is even more problematic in case of UTF-8 encodings where non US-ASCII are not converted at all. For example, this code</p>
+<div class="fragment"><pre class="fragment"> std::string grussen = <span class="stringliteral">&quot;grüßen&quot;</span>;
+ std::cout &lt;&lt; boost::algorithm::to_upper_copy(grussen) &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">boost::locale::to_upper</a>(grussen) &lt;&lt; std::endl;
+</pre></div><p>Would modify ASCII characters only</p>
+<div class="fragment"><pre class="fragment">
+GRüßEN GRÜSSEN
+</pre></div><h2><a class="anchor" id="conversions_normalization"></a>
+Unicode Normalization</h2>
+<p>Unicode normalization is the process of converting strings to a standard form, suitable for text processing and comparison. For example, character "ü" can be represented by a single code point or a combination of the character "u" and the diaeresis "¨". Normalization is an important part of Unicode text processing.</p>
+<p>Unicode defines four normalization forms. Each specific form is selected by a flag passed to <a class="el" href="group__convert.html#ga11672e3cc3ed7eecf1dd07060265aab2">normalize</a> function:</p>
+<ul>
+<li>NFD - Canonical decomposition - boost::locale::norm_nfd</li>
+<li>NFC - Canonical decomposition followed by canonical composition - boost::locale::norm_nfc or boost::locale::norm_default</li>
+<li>NFKD - Compatibility decomposition - boost::locale::norm_nfkd</li>
+<li>NFKC - Compatibility decomposition followed by canonical composition - boost::locale::norm_nfkc</li>
+</ul>
+<p>For more details on normalization forms, read this article.</p>
+<h2><a class="anchor" id="conversions_notes"></a>
+Notes</h2>
+<ul>
+<li><a class="el" href="group__convert.html#ga11672e3cc3ed7eecf1dd07060265aab2">normalize</a> operates only on Unicode-encoded strings, i.e.: UTF-8, UTF-16 and UTF-32 depending on the character width. So be careful when using non-UTF encodings as they may be treated incorrectly.</li>
+<li><a class="el" href="group__convert.html#gabd1bc157122a5b9392487126fd0fffe5">fold_case</a> is generally a locale-independent operation, but it receives a locale as a parameter to determine the 8-bit encoding.</li>
+<li>All of these functions can work with an STL string, a NUL terminated string, or a range defined by two pointers. They always return a newly created STL string.</li>
+<li>The length of the string may change, see the above example. </li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/conversions_8cpp-example.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/conversions_8cpp-example.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: conversions.cpp</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>conversions.cpp</h1> </div>
+</div>
+<div class="contents">
+<p>Example of using various text conversion functions.</p>
+<div class="fragment"><pre class="fragment"><span class="comment">//</span>
+<span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<span class="comment">//</span>
+<span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<span class="comment">//</span>
+<span class="preprocessor">#include &lt;boost/locale.hpp&gt;</span>
+<span class="preprocessor">#include &lt;boost/algorithm/string/case_conv.hpp&gt;</span>
+<span class="preprocessor">#include &lt;iostream&gt;</span>
+
+<span class="preprocessor">#include &lt;ctime&gt;</span>
+
+
+
+<span class="keywordtype">int</span> main()
+{
+ <span class="keyword">using namespace </span>boost::locale;
+ <span class="keyword">using namespace </span>std;
+ <span class="comment">// Create system default locale</span>
+ <a name="_a0"></a><a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">generator</a> gen;
+ locale loc=gen(<span class="stringliteral">&quot;&quot;</span>);
+ locale::global(loc);
+ cout.imbue(loc);
+
+
+ cout&lt;&lt;<span class="stringliteral">&quot;Correct case conversion can&#39;t be done by simple, character by character conversion&quot;</span>&lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot;because case conversion is context sensitive and not 1-to-1 conversion&quot;</span>&lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot;For example:&quot;</span>&lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot; German grüßen correctly converted to &quot;</span>&lt;&lt;<a name="a1"></a><a class="code" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">to_upper</a>(<span class="stringliteral">&quot;grüßen&quot;</span>)&lt;&lt;<span class="stringliteral">&quot;, instead of incorrect &quot;</span>
+ &lt;&lt;boost::to_upper_copy(std::string(<span class="stringliteral">&quot;grüßen&quot;</span>))&lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot; where ß is replaced with SS&quot;</span>&lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot; Greek ὈΔΥΣΣΕΎΣ is correctly converted to &quot;</span>&lt;&lt;<a name="a2"></a><a class="code" href="group__convert.html#ga33de83f16ff2c09cac780977c6f67099">to_lower</a>(<span class="stringliteral">&quot;ὈΔΥΣΣΕΎΣ&quot;</span>)&lt;&lt;<span class="stringliteral">&quot;, instead of incorrect &quot;</span>
+ &lt;&lt;boost::to_lower_copy(std::string(<span class="stringliteral">&quot;ὈΔΥΣΣΕΎΣ&quot;</span>))&lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot; where Σ is converted to σ or to ς, according to position in the word&quot;</span>&lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot;Such type of conversion just can be done using std::toupper that work on character base, also std::toupper is &quot;</span>&lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot;not even applicable when working with variable character length like in UTF-8 or UTF-16 limiting the correct &quot;</span>&lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot;behavior to unicode subset BMP or ASCII only&quot;</span>&lt;&lt;endl;
+
+}
+
+<span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div> </div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/date__time_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/date__time_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,567 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/date_time.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/date_time.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_DATE_TIME_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_DATE_TIME_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;boost/locale/hold_ptr.hpp&gt;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;boost/locale/date_time_facet.hpp&gt;</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;boost/locale/formatting.hpp&gt;</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include &lt;boost/locale/time_zone.hpp&gt;</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;locale&gt;</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;stdexcept&gt;</span>
+<a name="l00024"></a>00024
+<a name="l00025"></a>00025
+<a name="l00026"></a>00026 <span class="keyword">namespace </span>boost {
+<a name="l00027"></a>00027 <span class="keyword">namespace </span>locale {
+<a name="l00034"></a>00034
+<a name="l00035"></a>00035
+<a name="l00039"></a><a class="code" href="classboost_1_1locale_1_1date__time__error.html">00039</a> <span class="keyword">class </span>BOOST_SYMBOL_VISIBLE <a class="code" href="classboost_1_1locale_1_1date__time__error.html" title="This error is thrown in case of invalid state that occurred.">date_time_error</a> : <span class="keyword">public</span> std::runtime_error {
+<a name="l00040"></a>00040 <span class="keyword">public</span>:
+<a name="l00044"></a><a class="code" href="classboost_1_1locale_1_1date__time__error.html#abbd57421fc4617b23ecb33c398152dc8">00044</a> <a class="code" href="classboost_1_1locale_1_1date__time__error.html#abbd57421fc4617b23ecb33c398152dc8">date_time_error</a>(std::string <span class="keyword">const</span> &amp;e) : std::runtime_error(e) {}
+<a name="l00045"></a>00045 };
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047
+<a name="l00056"></a><a class="code" href="structboost_1_1locale_1_1date__time__period.html">00056</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>
+<a name="l00057"></a>00057 {
+<a name="l00058"></a><a class="code" href="structboost_1_1locale_1_1date__time__period.html#aa6511600eb5264c8597f700668e9c628">00058</a> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> <a class="code" href="structboost_1_1locale_1_1date__time__period.html#aa6511600eb5264c8597f700668e9c628" title="The type of period, i.e. era, year, day etc.">type</a>;
+<a name="l00059"></a><a class="code" href="structboost_1_1locale_1_1date__time__period.html#aec776b16ed46a22833308a4112886ca4">00059</a> <span class="keywordtype">int</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html#aec776b16ed46a22833308a4112886ca4">value</a>;
+<a name="l00060"></a>00060
+<a name="l00061"></a>00061
+<a name="l00062"></a>00062
+<a name="l00063"></a><a class="code" href="structboost_1_1locale_1_1date__time__period.html#a219fa833071824e308a45dc44384fb99">00063</a> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="structboost_1_1locale_1_1date__time__period.html#a219fa833071824e308a45dc44384fb99">operator+</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00067"></a><a class="code" href="structboost_1_1locale_1_1date__time__period.html#ab3937bd69fcfeac096dceeee0f13437e">00067</a> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="structboost_1_1locale_1_1date__time__period.html#ab3937bd69fcfeac096dceeee0f13437e">operator-</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html#a61b11b2243098412dddd804ca7e104af">date_time_period</a>(<a class="code" href="structboost_1_1locale_1_1date__time__period.html#aa6511600eb5264c8597f700668e9c628" title="The type of period, i.e. era, year, day etc.">type</a>,-<a class="code" href="structboost_1_1locale_1_1date__time__period.html#aec776b16ed46a22833308a4112886ca4">value</a>); }
+<a name="l00068"></a>00068
+<a name="l00072"></a><a class="code" href="structboost_1_1locale_1_1date__time__period.html#a61b11b2243098412dddd804ca7e104af">00072</a> <a class="code" href="structboost_1_1locale_1_1date__time__period.html#a61b11b2243098412dddd804ca7e104af">date_time_period</a>(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f=<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a>(),<span class="keywordtype">int</span> v=1) : <a class="code" href="structboost_1_1locale_1_1date__time__period.html#aa6511600eb5264c8597f700668e9c628" title="The type of period, i.e. era, year, day etc.">type</a>(f), <a class="code" href="structboost_1_1locale_1_1date__time__period.html#aec776b16ed46a22833308a4112886ca4">value<
/a>(v) {}
+<a name="l00073"></a>00073 };
+<a name="l00074"></a>00074
+<a name="l00075"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html">00075</a> <span class="keyword">namespace </span>period {
+<a name="l00079"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a6468414599fd81815943e8d9e868fd1b">00079</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a6468414599fd81815943e8d9e868fd1b">invalid</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aab24556edbe246e0bc3b4b0d3f2e627eb" title="Special invalid value, should not be used directly.">marks::invalid</a>); }
+<a name="l00083"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a62d0745dbb555066a7281b9c805ceab7">00083</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a62d0745dbb555066a7281b9c805ceab7">era</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aacc399d4cddd6d129a7d36cc2ce94b47a" title="Era i.e. AC, BC in Gregorian and Julian calendar, range [0,1].">marks::era</a>); }
+<a name="l00087"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a9ea8d1453bed512ee16bea3199fd92af">00087</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a9ea8d1453bed512ee16bea3199fd92af">year</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa57de42317988a555460cf98be583addc" title="Year, it is calendar specific, for example 2011 in Gregorian calendar.">marks::year</a>); }
+<a name="l00091"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#aeb2dfdc73c6d16796360eca141654aba">00091</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#aeb2dfdc73c6d16796360eca141654aba">extended_year</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa827e0e9673cbb1e0983191ea42c88c88" title="Extended year for Gregorian/Julian calendars, where 1 BC == 0, 2 BC == -1.">marks::extended_year</a>); }
+<a name="l00095"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">00095</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa1fe197c6bcc18839b75fc550857ed89a" title="The month of year, calendar specific, in Gregorian [0..11].">marks::month</a>); }
+<a name="l00099"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">00099</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">day</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aac944d440d0afd38cc75c1011319f790e" title="The day of month, calendar specific, in Gregorian [1..31].">marks::day</a>); }
+<a name="l00103"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a33e67d3354486021fa1e7076d30d51a4">00103</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a33e67d3354486021fa1e7076d30d51a4">day_of_year</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa6e0f5f21ddfe455d27dfdafb5e58796b" title="The number of day in year, starting from 1, in Gregorian [1..366].">marks::day_of_year</a>); }
+<a name="l00112"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">00112</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">day_of_week</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aaefcf18fd66bcbbac887950c40d5e039b">marks::day_of_week</a>); }
+<a name="l00117"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a083c271b3bbd29e4644b59fb3e34a4d7">00117</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a083c271b3bbd29e4644b59fb3e34a4d7">day_of_week_in_month</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aada04317134ebd8c192c431fdc6776756">marks::day_of_week_in_month</a>); }
+<a name="l00121"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a57d6b8f97bd6604e13c6982ed0953678">00121</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a57d6b8f97bd6604e13c6982ed0953678">day_of_week_local</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa16f1add720e3211b165609cc8bf49edf" title="Local day of week, for example in France Monday is 1, in US Sunday is 1, [1..7].">marks::day_of_week_local</a>); }
+<a name="l00125"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a35f2ca900e3cda757c4598b686ca5969">00125</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a35f2ca900e3cda757c4598b686ca5969">hour</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa889701bc6cf11a9ee39d7223691966e1" title="24 clock hour [0..23]">marks::hour</a>); }
+<a name="l00129"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#af96ab88b9d168801bfde95c7ad24613a">00129</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#af96ab88b9d168801bfde95c7ad24613a">hour_12</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa33760c5f41e6cb76695f18d65f5d0a9d" title="12 clock hour [0..11]">marks::hour_12</a>); }
+<a name="l00133"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a61b2390a32e15c6aa2c26bc06d21a20c">00133</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a61b2390a32e15c6aa2c26bc06d21a20c">am_pm</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa8c4f7415895e44b3c1c9484a8eadcf06" title="am or pm marker [0..1]">marks::am_pm</a>); }
+<a name="l00137"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a0076efc591f6341ef785f49422b6fa89">00137</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a0076efc591f6341ef785f49422b6fa89">minute</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa1fec41808558d9452161712537717906" title="minute [0..59]">marks::minute</a>); }
+<a name="l00141"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#adee2c2dcbbea3653604cb6d514cb9a9b">00141</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#adee2c2dcbbea3653604cb6d514cb9a9b">second</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa3afc5b74b9e5e23bdfeab56a297bb7c7" title="second [0..59]">marks::second</a>); }
+<a name="l00145"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a4cb28c5353004068b73d0f12136bbfe9">00145</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a4cb28c5353004068b73d0f12136bbfe9">week_of_year</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa779ca20cc3ae59a2421293f5d8023c2e" title="The week number in the year.">marks::week_of_year</a>); }
+<a name="l00149"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ab01f299cdb64c780cadca7d64f87cd5f">00149</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ab01f299cdb64c780cadca7d64f87cd5f">week_of_month</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa91d7d091168f60438e08ecfb72a47aed" title="The week number within current month.">marks::week_of_month</a>); }
+<a name="l00153"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a1569da2e8680ef5d3409361069905541">00153</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a1569da2e8680ef5d3409361069905541">first_day_of_week</a>(){ <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa8cc9f718b5bdf9c30cff3846118039bd" title="First day of week, constant, for example Sunday in US = 1, Monday in France = 2.">marks::first_day_of_week</a>); }
+<a name="l00154"></a>00154
+<a name="l00158"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a9d37769736a55787e6f1b82b620b5ef4">00158</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a62d0745dbb555066a7281b9c805ceab7">era</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a62d0745dbb555066a7281b9c805ceab7">era</a>(),v); }
+<a name="l00162"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ab3a1f7646bf3496bde51942509d848d5">00162</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a9ea8d1453bed512ee16bea3199fd92af">year</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a9ea8d1453bed512ee16bea3199fd92af">year</a>(),v); }
+<a name="l00166"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a484606afd8fb5bc756b97d009052c809">00166</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#aeb2dfdc73c6d16796360eca141654aba">extended_year</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aeb2dfdc73c6d16796360eca141654aba">extended_year</a>(),v); }
+<a name="l00170"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a8d5844402628043891f77fccab0f6c16">00170</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(),v); }
+<a name="l00174"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a0170a70ce66c0cd31bd64e9be1662591">00174</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">day</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">day</a>(),v); }
+<a name="l00178"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#aad2e66d5af580de384b94f8c71ba697c">00178</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a33e67d3354486021fa1e7076d30d51a4">day_of_year</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a33e67d3354486021fa1e7076d30d51a4">day_of_year</a>(),v); }
+<a name="l00187"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a754856ee5d0492db9367bdc3e1f4fb88">00187</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">day_of_week</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">day_of_week</a>(),v); }
+<a name="l00192"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#af60490df8e226368cea043cc6046db19">00192</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a083c271b3bbd29e4644b59fb3e34a4d7">day_of_week_in_month</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a083c271b3bbd29e4644b59fb3e34a4d7">day_of_week_in_month</a>(),v); }
+<a name="l00196"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a673f97f4427f8a3f0e6453a5ed6aaf1f">00196</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a57d6b8f97bd6604e13c6982ed0953678">day_of_week_local</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a57d6b8f97bd6604e13c6982ed0953678">day_of_week_local</a>(),v); }
+<a name="l00200"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a0acb70742e1b2f17cc13152c544ac242">00200</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a35f2ca900e3cda757c4598b686ca5969">hour</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a35f2ca900e3cda757c4598b686ca5969">hour</a>(),v); }
+<a name="l00204"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ad805b92b111e4fd7dc00d911b07f6ab8">00204</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#af96ab88b9d168801bfde95c7ad24613a">hour_12</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#af96ab88b9d168801bfde95c7ad24613a">hour_12</a>(),v); }
+<a name="l00208"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ab1288da3e9e6cff57a4d964abe463ab1">00208</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a61b2390a32e15c6aa2c26bc06d21a20c">am_pm</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a61b2390a32e15c6aa2c26bc06d21a20c">am_pm</a>(),v); }
+<a name="l00212"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a0490daa370b1e8c89b14d0af2db48073">00212</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a0076efc591f6341ef785f49422b6fa89">minute</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a0076efc591f6341ef785f49422b6fa89">minute</a>(),v); }
+<a name="l00216"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#aa75c0462a5cada6fc3661e48ca0ae016">00216</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#adee2c2dcbbea3653604cb6d514cb9a9b">second</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#adee2c2dcbbea3653604cb6d514cb9a9b">second</a>(),v); }
+<a name="l00220"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a9e8cc55821326edd169fbd90af7304ec">00220</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a4cb28c5353004068b73d0f12136bbfe9">week_of_year</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a4cb28c5353004068b73d0f12136bbfe9">week_of_year</a>(),v); }
+<a name="l00224"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#aeb20ca7d1a9fbba527939202dcd8a1a8">00224</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ab01f299cdb64c780cadca7d64f87cd5f">week_of_month</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#ab01f299cdb64c780cadca7d64f87cd5f">week_of_month</a>(),v); }
+<a name="l00228"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ab1a52ed7a8042fa428d14c4f87642bc4">00228</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a1569da2e8680ef5d3409361069905541">first_day_of_week</a>(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a1569da2e8680ef5d3409361069905541">first_day_of_week</a>(),v); }
+<a name="l00229"></a>00229
+<a name="l00233"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a6073ebcf60bf690662c3a9d113b49e9b">00233</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a6073ebcf60bf690662c3a9d113b49e9b">january</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(),0); }
+<a name="l00237"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ab0610583a720120e8dcf90d0fe01cb01">00237</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ab0610583a720120e8dcf90d0fe01cb01">february</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(),1); }
+<a name="l00241"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ac0d844780c28dc783879d82eaa192961">00241</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ac0d844780c28dc783879d82eaa192961">march</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(),2); }
+<a name="l00245"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a1b4663ee24f7687e592f0b790e8df494">00245</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a1b4663ee24f7687e592f0b790e8df494">april</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(),3); }
+<a name="l00249"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a420d04f471ef28107ba1bd6a8edae263">00249</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a420d04f471ef28107ba1bd6a8edae263">may</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(),4); }
+<a name="l00253"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ab9269cd77b2d055022a587c9c0d13673">00253</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ab9269cd77b2d055022a587c9c0d13673">june</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(),5); }
+<a name="l00257"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a41e228841e03b61187660fb3e9692c7d">00257</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a41e228841e03b61187660fb3e9692c7d">july</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(),6); }
+<a name="l00261"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ab5d2e72c7d5b842c26af29af4c96a853">00261</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ab5d2e72c7d5b842c26af29af4c96a853">august</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(),7); }
+<a name="l00265"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ad325c929fb0a1173097cb9195367b209">00265</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ad325c929fb0a1173097cb9195367b209">september</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(),8); }
+<a name="l00269"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ad0e376bf63fb32da0dad13b0c4a6fef1">00269</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ad0e376bf63fb32da0dad13b0c4a6fef1">october</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(),9); }
+<a name="l00273"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ab2810f9718b18b77e47b4d23f94589ae">00273</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ab2810f9718b18b77e47b4d23f94589ae">november</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(),10); }
+<a name="l00277"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#aad0c72b6aa0ade2e71a71223eefab6fd">00277</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#aad0c72b6aa0ade2e71a71223eefab6fd">december</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(),11); }
+<a name="l00278"></a>00278
+<a name="l00282"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a12e3cce2dc169b65062c7fadd1143b0b">00282</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a12e3cce2dc169b65062c7fadd1143b0b">sunday</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">day_of_week</a>(),1); }
+<a name="l00286"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a45ad1aeaf7a0e62ef26a42adca38da70">00286</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a45ad1aeaf7a0e62ef26a42adca38da70">monday</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">day_of_week</a>(),2); }
+<a name="l00290"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a2426159fe1f6cb25f2598f35adf14267">00290</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a2426159fe1f6cb25f2598f35adf14267">tuesday</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">day_of_week</a>(),3); }
+<a name="l00294"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a856d680245af08ff3bd1618817a90ef1">00294</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a856d680245af08ff3bd1618817a90ef1">wednesday</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">day_of_week</a>(),4); }
+<a name="l00298"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ab03ddec166d072a7465e87dbaccc1389">00298</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ab03ddec166d072a7465e87dbaccc1389">thursday</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">day_of_week</a>(),5); }
+<a name="l00302"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a26ef9fa6f6df065606a36c9b42e165eb">00302</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a26ef9fa6f6df065606a36c9b42e165eb">friday</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">day_of_week</a>(),6); }
+<a name="l00306"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ac16b397e27e29fe6483540910e8ade3a">00306</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ac16b397e27e29fe6483540910e8ade3a">saturday</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">day_of_week</a>(),7); }
+<a name="l00310"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a683b393abc6276f3d77289af0f5d6404">00310</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a683b393abc6276f3d77289af0f5d6404">am</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a61b2390a32e15c6aa2c26bc06d21a20c">am_pm</a>(),0); }
+<a name="l00314"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a5ee88cdab049350f1346466b2da6ccf0">00314</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a5ee88cdab049350f1346466b2da6ccf0">pm</a>() { <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a61b2390a32e15c6aa2c26bc06d21a20c">am_pm</a>(),1); }
+<a name="l00315"></a>00315
+<a name="l00319"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a1399317fdf67b50ec11aa9298176ab70">00319</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a1399317fdf67b50ec11aa9298176ab70">operator+</a>(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f)
+<a name="l00320"></a>00320 {
+<a name="l00321"></a>00321 <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f);
+<a name="l00322"></a>00322 }
+<a name="l00326"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a9c5588c1059eff9e9ab8034f7442bf00">00326</a> <span class="keyword">inline</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a9c5588c1059eff9e9ab8034f7442bf00">operator-</a>(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f)
+<a name="l00327"></a>00327 {
+<a name="l00328"></a>00328 <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f,-1);
+<a name="l00329"></a>00329 }
+<a name="l00330"></a>00330
+<a name="l00334"></a>00334 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
+<a name="l00335"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ac5df80720f82ac2f36e42d9df493b2e0">00335</a> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ac5df80720f82ac2f36e42d9df493b2e0">operator*</a>(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f,T v)
+<a name="l00336"></a>00336 {
+<a name="l00337"></a>00337 <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f,v);
+<a name="l00338"></a>00338 }
+<a name="l00339"></a>00339
+<a name="l00343"></a>00343 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
+<a name="l00344"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#abb23e95e2a456ad6224f9c9f810e31e7">00344</a> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ac5df80720f82ac2f36e42d9df493b2e0">operator*</a>(T v,<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f)
+<a name="l00345"></a>00345 {
+<a name="l00346"></a>00346 <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f,v);
+<a name="l00347"></a>00347 }
+<a name="l00351"></a>00351 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
+<a name="l00352"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#af84b105a6cff4eb66cfcbaa33a73da7b">00352</a> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ac5df80720f82ac2f36e42d9df493b2e0">operator*</a>(T v,<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> f)
+<a name="l00353"></a>00353 {
+<a name="l00354"></a>00354 <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f.<a class="code" href="structboost_1_1locale_1_1date__time__period.html#aa6511600eb5264c8597f700668e9c628" title="The type of period, i.e. era, year, day etc.">type</a>,f.<a class="code" href="structboost_1_1locale_1_1date__time__period.html#aec776b16ed46a22833308a4112886ca4">value</a>*v);
+<a name="l00355"></a>00355 }
+<a name="l00356"></a>00356
+<a name="l00360"></a>00360 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
+<a name="l00361"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a1f4ef70b388a2892847b2b2662118ce9">00361</a> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ac5df80720f82ac2f36e42d9df493b2e0">operator*</a>(<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> f,T v)
+<a name="l00362"></a>00362 {
+<a name="l00363"></a>00363 <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f.<a class="code" href="structboost_1_1locale_1_1date__time__period.html#aa6511600eb5264c8597f700668e9c628" title="The type of period, i.e. era, year, day etc.">type</a>,f.<a class="code" href="structboost_1_1locale_1_1date__time__period.html#aec776b16ed46a22833308a4112886ca4">value</a>*v);
+<a name="l00364"></a>00364 }
+<a name="l00365"></a>00365
+<a name="l00366"></a>00366
+<a name="l00367"></a>00367 } <span class="comment">// period</span>
+<a name="l00368"></a>00368
+<a name="l00369"></a>00369
+<a name="l00376"></a><a class="code" href="classboost_1_1locale_1_1date__time__period__set.html">00376</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> {
+<a name="l00377"></a>00377 <span class="keyword">public</span>:
+<a name="l00378"></a>00378
+<a name="l00382"></a><a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a635b8d91c4c8da99857810e42a0aff65">00382</a> <a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a635b8d91c4c8da99857810e42a0aff65">date_time_period_set</a>()
+<a name="l00383"></a>00383 {
+<a name="l00384"></a>00384 }
+<a name="l00388"></a><a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a0966962f5da78fc06121d1455efcbbae">00388</a> <a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a635b8d91c4c8da99857810e42a0aff65">date_time_period_set</a>(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f)
+<a name="l00389"></a>00389 {
+<a name="l00390"></a>00390 basic_[0]=<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f);
+<a name="l00391"></a>00391 }
+<a name="l00395"></a><a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a144842e64250343d87aaff270a9b53a0">00395</a> <a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a635b8d91c4c8da99857810e42a0aff65">date_time_period_set</a>(<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <span class="keyword">const</span> &amp;fl)
+<a name="l00396"></a>00396 {
+<a name="l00397"></a>00397 basic_[0]=fl;
+<a name="l00398"></a>00398 }
+<a name="l00402"></a><a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a0e70247c1738dbf6869e6d8c04461893">00402</a> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a0e70247c1738dbf6869e6d8c04461893">add</a>(<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> f)
+<a name="l00403"></a>00403 {
+<a name="l00404"></a>00404 <span class="keywordtype">size_t</span> n=<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a0b726bd57ce8b631de89bbf404b8df2a">size</a>();
+<a name="l00405"></a>00405 <span class="keywordflow">if</span>(n &lt; 4)
+<a name="l00406"></a>00406 basic_[n]=f;
+<a name="l00407"></a>00407 <span class="keywordflow">else</span>
+<a name="l00408"></a>00408 periods_.push_back(f);
+<a name="l00409"></a>00409 }
+<a name="l00413"></a><a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a0b726bd57ce8b631de89bbf404b8df2a">00413</a> <span class="keywordtype">size_t</span> <a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a0b726bd57ce8b631de89bbf404b8df2a">size</a>()<span class="keyword"> const</span>
+<a name="l00414"></a>00414 <span class="keyword"> </span>{
+<a name="l00415"></a>00415 <span class="keywordflow">if</span>(basic_[0].type == <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a>())
+<a name="l00416"></a>00416 <span class="keywordflow">return</span> 0;
+<a name="l00417"></a>00417 <span class="keywordflow">if</span>(basic_[1].type == <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a>())
+<a name="l00418"></a>00418 <span class="keywordflow">return</span> 1;
+<a name="l00419"></a>00419 <span class="keywordflow">if</span>(basic_[2].type == <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a>())
+<a name="l00420"></a>00420 <span class="keywordflow">return</span> 2;
+<a name="l00421"></a>00421 <span class="keywordflow">if</span>(basic_[3].type == <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a>())
+<a name="l00422"></a>00422 <span class="keywordflow">return</span> 3;
+<a name="l00423"></a>00423 <span class="keywordflow">return</span> 4+periods_.size();
+<a name="l00424"></a>00424 }
+<a name="l00428"></a><a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a177a4c3cb2de3b5c9b5fe5738660eba4">00428</a> <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <span class="keyword">const</span> &amp;<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a177a4c3cb2de3b5c9b5fe5738660eba4">operator[]</a>(<span class="keywordtype">size_t</span> n)<span class="keyword"> const </span>
+<a name="l00429"></a>00429 <span class="keyword"> </span>{
+<a name="l00430"></a>00430 <span class="keywordflow">if</span>(n &gt;= <a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a0b726bd57ce8b631de89bbf404b8df2a">size</a>())
+<a name="l00431"></a>00431 <span class="keywordflow">throw</span> std::out_of_range(<span class="stringliteral">&quot;Invalid index to date_time_period&quot;</span>);
+<a name="l00432"></a>00432 <span class="keywordflow">if</span>(n &lt; 4)
+<a name="l00433"></a>00433 <span class="keywordflow">return</span> basic_[n];
+<a name="l00434"></a>00434 <span class="keywordflow">else</span>
+<a name="l00435"></a>00435 <span class="keywordflow">return</span> periods_[n-4];
+<a name="l00436"></a>00436 }
+<a name="l00437"></a>00437 <span class="keyword">private</span>:
+<a name="l00438"></a>00438 <a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> basic_[4];
+<a name="l00439"></a>00439 std::vector&lt;date_time_period&gt; periods_;
+<a name="l00440"></a>00440 };
+<a name="l00441"></a>00441
+<a name="l00442"></a>00442
+<a name="l00446"></a><a class="code" href="group__date__time.html#gaa7e728633f76cae8fa19e76cfb5e113b">00446</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <a class="code" href="group__date__time.html#gaa7e728633f76cae8fa19e76cfb5e113b">operator+</a>(<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;a,<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;b)
+<a name="l00447"></a>00447 {
+<a name="l00448"></a>00448 <a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> s(a);
+<a name="l00449"></a>00449 <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> i=0;i&lt;b.<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a0b726bd57ce8b631de89bbf404b8df2a">size</a>();i++)
+<a name="l00450"></a>00450 s.<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a0e70247c1738dbf6869e6d8c04461893">add</a>(b[i]);
+<a name="l00451"></a>00451 <span class="keywordflow">return</span> s;
+<a name="l00452"></a>00452 }
+<a name="l00453"></a>00453
+<a name="l00457"></a><a class="code" href="group__date__time.html#ga023333646e070abf361be3890c12560b">00457</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <a class="code" href="group__date__time.html#ga023333646e070abf361be3890c12560b">operator-</a>(<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;a,<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;b)
+<a name="l00458"></a>00458 {
+<a name="l00459"></a>00459 <a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> s(a);
+<a name="l00460"></a>00460 <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> i=0;i&lt;b.<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a0b726bd57ce8b631de89bbf404b8df2a">size</a>();i++)
+<a name="l00461"></a>00461 s.<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html#a0e70247c1738dbf6869e6d8c04461893">add</a>(-b[i]);
+<a name="l00462"></a>00462 <span class="keywordflow">return</span> s;
+<a name="l00463"></a>00463 }
+<a name="l00464"></a>00464
+<a name="l00465"></a>00465
+<a name="l00473"></a><a class="code" href="classboost_1_1locale_1_1calendar.html">00473</a> <span class="keyword">class </span>BOOST_LOCALE_DECL <a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a> {
+<a name="l00474"></a>00474 <span class="keyword">public</span>:
+<a name="l00475"></a>00475
+<a name="l00482"></a>00482 <a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a>(std::ios_base &amp;ios);
+<a name="l00488"></a>00488 <a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a>(std::locale <span class="keyword">const</span> &amp;l,std::string <span class="keyword">const</span> &amp;zone);
+<a name="l00494"></a>00494 <a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a>(std::locale <span class="keyword">const</span> &amp;l);
+<a name="l00500"></a>00500 <a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a>(std::string <span class="keyword">const</span> &amp;zone);
+<a name="l00506"></a>00506 <a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a>();
+<a name="l00507"></a>00507 ~<a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a>();
+<a name="l00508"></a>00508
+<a name="l00512"></a>00512 <a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a>(<a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a> <span class="keyword">const</span> &amp;other);
+<a name="l00516"></a>00516 <a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a> <span class="keyword">const</span> &amp;operator=(<a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a> <span class="keyword">const</span> &amp;other);
+<a name="l00517"></a>00517
+<a name="l00521"></a>00521 <span class="keywordtype">int</span> minimum(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f) <span class="keyword">const</span>;
+<a name="l00525"></a>00525 <span class="keywordtype">int</span> greatest_minimum(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f) <span class="keyword">const</span>;
+<a name="l00529"></a>00529 <span class="keywordtype">int</span> maximum(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f) <span class="keyword">const</span>;
+<a name="l00533"></a>00533 <span class="keywordtype">int</span> least_maximum(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f) <span class="keyword">const</span>;
+<a name="l00534"></a>00534
+<a name="l00537"></a>00537 <span class="keywordtype">int</span> first_day_of_week() <span class="keyword">const</span>;
+<a name="l00538"></a>00538
+<a name="l00542"></a>00542 std::locale get_locale() <span class="keyword">const</span>;
+<a name="l00546"></a>00546 std::string get_time_zone() <span class="keyword">const</span>;
+<a name="l00547"></a>00547
+<a name="l00551"></a>00551 <span class="keywordtype">bool</span> is_gregorian() <span class="keyword">const</span>;
+<a name="l00552"></a>00552
+<a name="l00556"></a>00556 <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga43283ecda927605b1b802a3c3306bfb1">operator==</a>(<a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a> <span class="keyword">const</span> &amp;other) <span class="keyword">const</span>;
+<a name="l00560"></a>00560 <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga11ff477ceecc7cbc274d998c3676126e">operator!=</a>(<a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a> <span class="keyword">const</span> &amp;other) <span class="keyword">const</span>;
+<a name="l00561"></a>00561
+<a name="l00562"></a>00562 <span class="keyword">private</span>:
+<a name="l00563"></a>00563 <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>;
+<a name="l00564"></a>00564 std::locale locale_;
+<a name="l00565"></a>00565 std::string tz_;
+<a name="l00566"></a>00566 <a class="code" href="classboost_1_1locale_1_1hold__ptr.html">hold_ptr&lt;abstract_calendar&gt;</a> impl_;
+<a name="l00567"></a>00567 };
+<a name="l00568"></a>00568
+<a name="l00589"></a>00589
+<a name="l00590"></a><a class="code" href="classboost_1_1locale_1_1date__time.html">00590</a> <span class="keyword">class </span>BOOST_LOCALE_DECL <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> {
+<a name="l00591"></a>00591 <span class="keyword">public</span>:
+<a name="l00592"></a>00592
+<a name="l00598"></a>00598 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>();
+<a name="l00602"></a>00602 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;other);
+<a name="l00606"></a>00606 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;other,<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;<span class="keyword">set</span>);
+<a name="l00610"></a>00610 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;operator=(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;other);
+<a name="l00611"></a>00611 ~<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>();
+<a name="l00612"></a>00612
+<a name="l00618"></a>00618 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>(<span class="keywordtype">double</span> <a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">time</a>);
+<a name="l00622"></a>00622 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>(<span class="keywordtype">double</span> time,<a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a> <span class="keyword">const</span> &amp;cal);
+<a name="l00626"></a>00626 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>(<a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a> <span class="keyword">const</span> &amp;cal);
+<a name="l00627"></a>00627
+<a name="l00633"></a>00633 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>(<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;<span class="keyword">set</span>);
+<a name="l00637"></a>00637 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a>(<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;<span class="keyword">set</span>,<a class="code" href="classboost_1_1locale_1_1calendar.html" title="this class provides an access to general calendar information.">calendar</a> <span class="keyword">const</span> &amp;cal);
+<a name="l00638"></a>00638
+<a name="l00639"></a>00639
+<a name="l00643"></a>00643 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;operator=(<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;f);
+<a name="l00644"></a>00644
+<a name="l00648"></a>00648 <span class="keywordtype">void</span> <span class="keyword">set</span>(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f,<span class="keywordtype">int</span> v);
+<a name="l00652"></a>00652 <span class="keywordtype">int</span> <span class="keyword">get</span>(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f) <span class="keyword">const</span>;
+<a name="l00653"></a>00653
+<a name="l00657"></a><a class="code" href="classboost_1_1locale_1_1date__time.html#ac2a3a8f6fdba552b19e478bb6757523e">00657</a> <span class="keywordtype">int</span> operator/(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f)<span class="keyword"> const</span>
+<a name="l00658"></a>00658 <span class="keyword"> </span>{
+<a name="l00659"></a>00659 <span class="keywordflow">return</span> <span class="keyword">get</span>(f);
+<a name="l00660"></a>00660 }
+<a name="l00661"></a>00661
+<a name="l00665"></a><a class="code" href="classboost_1_1locale_1_1date__time.html#a0df3596add1804b1f64d363fea181fe2">00665</a> <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <a class="code" href="group__date__time.html#gaa7e728633f76cae8fa19e76cfb5e113b">operator+</a>(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f)<span class="keyword"> const</span>
+<a name="l00666"></a>00666 <span class="keyword"> </span>{
+<a name="l00667"></a>00667 <span class="keywordflow">return</span> *<span class="keyword">this</span>+<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f);
+<a name="l00668"></a>00668 }
+<a name="l00669"></a>00669
+<a name="l00673"></a><a class="code" href="classboost_1_1locale_1_1date__time.html#ac870c0fcba5814cd91bb9c63823e280a">00673</a> <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <a class="code" href="group__date__time.html#ga023333646e070abf361be3890c12560b">operator-</a>(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f)<span class="keyword"> const</span>
+<a name="l00674"></a>00674 <span class="keyword"> </span>{
+<a name="l00675"></a>00675 <span class="keywordflow">return</span> *<span class="keyword">this</span>-<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f);
+<a name="l00676"></a>00676 }
+<a name="l00677"></a>00677
+<a name="l00681"></a><a class="code" href="classboost_1_1locale_1_1date__time.html#ab3117067df65d1c33e89ab375f03d27c">00681</a> <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;operator+=(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f)
+<a name="l00682"></a>00682 {
+<a name="l00683"></a>00683 <span class="keywordflow">return</span> *<span class="keyword">this</span>+=<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f);
+<a name="l00684"></a>00684 }
+<a name="l00688"></a><a class="code" href="classboost_1_1locale_1_1date__time.html#a38468aff1a820dc1c41a2a8280120848">00688</a> <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;operator-=(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f)
+<a name="l00689"></a>00689 {
+<a name="l00690"></a>00690 <span class="keywordflow">return</span> *<span class="keyword">this</span>-=<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f);
+<a name="l00691"></a>00691 }
+<a name="l00692"></a>00692
+<a name="l00696"></a><a class="code" href="classboost_1_1locale_1_1date__time.html#a22d2b503e2d58c7e2983b89c69ed13bd">00696</a> <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <a class="code" href="group__date__time.html#ga0055f16ba156eb9a3f333c2bf2eae815">operator&lt;&lt;</a>(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f)<span class="keyword"> const</span>
+<a name="l00697"></a>00697 <span class="keyword"> </span>{
+<a name="l00698"></a>00698 <span class="keywordflow">return</span> *<span class="keyword">this</span>&lt;&lt;<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f);
+<a name="l00699"></a>00699 }
+<a name="l00700"></a>00700
+<a name="l00704"></a><a class="code" href="classboost_1_1locale_1_1date__time.html#a3a53ba943cb5140bafbfbda3d44b4083">00704</a> <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <a class="code" href="group__date__time.html#gaaf12ac2d38329331a8d9101ecc5e64d5">operator&gt;&gt;</a>(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f)<span class="keyword"> const</span>
+<a name="l00705"></a>00705 <span class="keyword"> </span>{
+<a name="l00706"></a>00706 <span class="keywordflow">return</span> *<span class="keyword">this</span>&gt;&gt;<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f);
+<a name="l00707"></a>00707 }
+<a name="l00708"></a>00708
+<a name="l00712"></a><a class="code" href="classboost_1_1locale_1_1date__time.html#ae71279d6e8dcc984fe3703b61d545416">00712</a> <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;operator&lt;&lt;=(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f)
+<a name="l00713"></a>00713 {
+<a name="l00714"></a>00714 <span class="keywordflow">return</span> *<span class="keyword">this</span>&lt;&lt;=<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f);
+<a name="l00715"></a>00715 }
+<a name="l00719"></a><a class="code" href="classboost_1_1locale_1_1date__time.html#a178faa979338310b9a92370a3618fa0e">00719</a> <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;operator&gt;&gt;=(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f)
+<a name="l00720"></a>00720 {
+<a name="l00721"></a>00721 <span class="keywordflow">return</span> *<span class="keyword">this</span>&gt;&gt;=<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f);
+<a name="l00722"></a>00722 }
+<a name="l00723"></a>00723
+<a name="l00727"></a>00727 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <a class="code" href="group__date__time.html#gaa7e728633f76cae8fa19e76cfb5e113b">operator+</a>(<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <span class="keyword">const</span> &amp;v) <span class="keyword">const</span>;
+<a name="l00731"></a>00731 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <a class="code" href="group__date__time.html#ga023333646e070abf361be3890c12560b">operator-</a>(<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <span class="keyword">const</span> &amp;v) <span class="keyword">const</span>;
+<a name="l00735"></a>00735 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;operator+=(<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <span class="keyword">const</span> &amp;v);
+<a name="l00739"></a>00739 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;operator-=(<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <span class="keyword">const</span> &amp;v);
+<a name="l00740"></a>00740
+<a name="l00744"></a>00744 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <a class="code" href="group__date__time.html#ga0055f16ba156eb9a3f333c2bf2eae815">operator&lt;&lt;</a>(<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <span class="keyword">const</span> &amp;v) <span class="keyword">const</span>;
+<a name="l00748"></a>00748 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <a class="code" href="group__date__time.html#gaaf12ac2d38329331a8d9101ecc5e64d5">operator&gt;&gt;</a>(<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <span class="keyword">const</span> &amp;v) <span class="keyword">const</span> ;
+<a name="l00752"></a>00752 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;operator&lt;&lt;=(<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <span class="keyword">const</span> &amp;v);
+<a name="l00756"></a>00756 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;operator&gt;&gt;=(<a class="code" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> <span class="keyword">const</span> &amp;v);
+<a name="l00757"></a>00757
+<a name="l00761"></a>00761 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <a class="code" href="group__date__time.html#gaa7e728633f76cae8fa19e76cfb5e113b">operator+</a>(<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;v) <span class="keyword">const</span>;
+<a name="l00765"></a>00765 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <a class="code" href="group__date__time.html#ga023333646e070abf361be3890c12560b">operator-</a>(<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;v) <span class="keyword">const</span>;
+<a name="l00769"></a>00769 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;operator+=(<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;v);
+<a name="l00773"></a>00773 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;operator-=(<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;v);
+<a name="l00774"></a>00774
+<a name="l00778"></a>00778 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <a class="code" href="group__date__time.html#ga0055f16ba156eb9a3f333c2bf2eae815">operator&lt;&lt;</a>(<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;v) <span class="keyword">const</span>;
+<a name="l00782"></a>00782 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <a class="code" href="group__date__time.html#gaaf12ac2d38329331a8d9101ecc5e64d5">operator&gt;&gt;</a>(<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;v) <span class="keyword">const</span> ;
+<a name="l00786"></a>00786 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;operator&lt;&lt;=(<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;v);
+<a name="l00790"></a>00790 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;operator&gt;&gt;=(<a class="code" href="classboost_1_1locale_1_1date__time__period__set.html" title="this class that represents a set of periods,">date_time_period_set</a> <span class="keyword">const</span> &amp;v);
+<a name="l00791"></a>00791
+<a name="l00797"></a>00797 <span class="keywordtype">double</span> <a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">time</a>() <span class="keyword">const</span>;
+<a name="l00804"></a>00804 <span class="keywordtype">void</span> <a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">time</a>(<span class="keywordtype">double</span> v);
+<a name="l00805"></a>00805
+<a name="l00809"></a>00809 <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga43283ecda927605b1b802a3c3306bfb1">operator==</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;other) <span class="keyword">const</span>;
+<a name="l00813"></a>00813 <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga11ff477ceecc7cbc274d998c3676126e">operator!=</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;other) <span class="keyword">const</span>;
+<a name="l00817"></a>00817 <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga3312b16b2a678780f2354e8addac83fd" title="Compare two segments.">operator&lt;</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;other) <span class="keyword">const</span>;
+<a name="l00821"></a>00821 <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#gac09337a84a82c4f366148c98a69dddd4" title="Compare two segments.">operator&gt;</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;other) <span class="keyword">const</span>;
+<a name="l00825"></a>00825 <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#gaf36ebfa12ec261fd4425eafe49245009" title="Compare two segments.">operator&lt;=</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;other) <span class="keyword">const</span>;
+<a name="l00829"></a>00829 <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga4cb705d03b2611464478733338539430" title="Compare two segments.">operator&gt;=</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;other) <span class="keyword">const</span>;
+<a name="l00830"></a>00830
+<a name="l00834"></a>00834 <span class="keywordtype">void</span> swap(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> &amp;other);
+<a name="l00835"></a>00835
+<a name="l00839"></a>00839 <span class="keywordtype">int</span> difference(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;other,<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f) <span class="keyword">const</span>;
+<a name="l00840"></a>00840
+<a name="l00844"></a>00844 <span class="keywordtype">int</span> minimum(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f) <span class="keyword">const</span>;
+<a name="l00849"></a>00849 <span class="keywordtype">int</span> maximum(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f) <span class="keyword">const</span>;
+<a name="l00850"></a>00850
+<a name="l00854"></a>00854 <span class="keywordtype">bool</span> is_in_daylight_saving_time() <span class="keyword">const</span>;
+<a name="l00855"></a>00855
+<a name="l00856"></a>00856 <span class="keyword">private</span>:
+<a name="l00857"></a>00857 <a class="code" href="classboost_1_1locale_1_1hold__ptr.html">hold_ptr&lt;abstract_calendar&gt;</a> impl_;
+<a name="l00858"></a>00858 };
+<a name="l00859"></a>00859
+<a name="l00873"></a>00873 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00874"></a><a class="code" href="group__date__time.html#ga0055f16ba156eb9a3f333c2bf2eae815">00874</a> std::basic_ostream&lt;CharType&gt; &amp;operator&lt;&lt;(std::basic_ostream&lt;CharType&gt; &amp;out,<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;t)
+<a name="l00875"></a>00875 {
+<a name="l00876"></a>00876 <span class="keywordtype">double</span> time_point = t.time();
+<a name="l00877"></a>00877 uint64_t display_flags = <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(out).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>();
+<a name="l00878"></a>00878 <span class="keywordflow">if</span> (
+<a name="l00879"></a>00879 display_flags == flags::date
+<a name="l00880"></a>00880 || display_flags == flags::time
+<a name="l00881"></a>00881 || display_flags == flags::datetime
+<a name="l00882"></a>00882 || display_flags == flags::strftime
+<a name="l00883"></a>00883 )
+<a name="l00884"></a>00884 {
+<a name="l00885"></a>00885 out &lt;&lt; time_point;
+<a name="l00886"></a>00886 }
+<a name="l00887"></a>00887 <span class="keywordflow">else</span> {
+<a name="l00888"></a>00888 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(out).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>(flags::datetime);
+<a name="l00889"></a>00889 out &lt;&lt; time_point;
+<a name="l00890"></a>00890 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(out).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>(display_flags);
+<a name="l00891"></a>00891 }
+<a name="l00892"></a>00892 <span class="keywordflow">return</span> out;
+<a name="l00893"></a>00893 }
+<a name="l00894"></a>00894
+<a name="l00900"></a>00900 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00901"></a><a class="code" href="group__date__time.html#gaaf12ac2d38329331a8d9101ecc5e64d5">00901</a> std::basic_istream&lt;CharType&gt; &amp;<a class="code" href="group__date__time.html#gaaf12ac2d38329331a8d9101ecc5e64d5">operator&gt;&gt;</a>(std::basic_istream&lt;CharType&gt; &amp;in,<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> &amp;t)
+<a name="l00902"></a>00902 {
+<a name="l00903"></a>00903 <span class="keywordtype">double</span> v;
+<a name="l00904"></a>00904 uint64_t display_flags = <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(in).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>();
+<a name="l00905"></a>00905 <span class="keywordflow">if</span> (
+<a name="l00906"></a>00906 display_flags == flags::date
+<a name="l00907"></a>00907 || display_flags == flags::time
+<a name="l00908"></a>00908 || display_flags == flags::datetime
+<a name="l00909"></a>00909 || display_flags == flags::strftime
+<a name="l00910"></a>00910 )
+<a name="l00911"></a>00911 {
+<a name="l00912"></a>00912 in &gt;&gt; v;
+<a name="l00913"></a>00913 }
+<a name="l00914"></a>00914 <span class="keywordflow">else</span> {
+<a name="l00915"></a>00915 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(in).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>(flags::datetime);
+<a name="l00916"></a>00916 in &gt;&gt; v;
+<a name="l00917"></a>00917 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(in).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>(display_flags);
+<a name="l00918"></a>00918 }
+<a name="l00919"></a>00919 <span class="keywordflow">if</span>(!in.fail())
+<a name="l00920"></a>00920 t.<a class="code" href="classboost_1_1locale_1_1date__time.html#a17aa2b54462ebcf1860f8e4db9f7868e">time</a>(v);
+<a name="l00921"></a>00921 <span class="keywordflow">return</span> in;
+<a name="l00922"></a>00922 }
+<a name="l00923"></a>00923
+<a name="l00932"></a><a class="code" href="classboost_1_1locale_1_1date__time__duration.html">00932</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> {
+<a name="l00933"></a>00933 <span class="keyword">public</span>:
+<a name="l00934"></a>00934
+<a name="l00939"></a><a class="code" href="classboost_1_1locale_1_1date__time__duration.html#ac4b0d49c998032003553e8faf0e5f2cb">00939</a> <a class="code" href="classboost_1_1locale_1_1date__time__duration.html#ac4b0d49c998032003553e8faf0e5f2cb">date_time_duration</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;first,<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;second) :
+<a name="l00940"></a>00940 s_(first),
+<a name="l00941"></a>00941 e_(second)
+<a name="l00942"></a>00942 {
+<a name="l00943"></a>00943 }
+<a name="l00944"></a>00944
+<a name="l00948"></a><a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">00948</a> <span class="keywordtype">int</span> <span class="keyword">get</span>(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f) <span class="keyword">const</span>
+<a name="l00949"></a>00949 {
+<a name="l00950"></a>00950 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1date__time__duration.html#afc2f075595d1774c866250d192b9db31">start</a>().<a class="code" href="classboost_1_1locale_1_1date__time.html#a36df44f891d2a39ca16f57e568b67a3d">difference</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a100bac2003f4e07ea498e10d0dd1f6b1">end</a>(),f);
+<a name="l00951"></a>00951 }
+<a name="l00952"></a>00952
+<a name="l00956"></a><a class="code" href="classboost_1_1locale_1_1date__time__duration.html#ac1a04091cc80b98f6faf7e5e73ce5f35">00956</a> <span class="keywordtype">int</span> <a class="code" href="classboost_1_1locale_1_1date__time__duration.html#ac1a04091cc80b98f6faf7e5e73ce5f35">operator / </a>(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period::period_type</a> f)<span class="keyword"> const</span>
+<a name="l00957"></a>00957 <span class="keyword"> </span>{
+<a name="l00958"></a>00958 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1date__time__duration.html#afc2f075595d1774c866250d192b9db31">start</a>().<a class="code" href="classboost_1_1locale_1_1date__time.html#a36df44f891d2a39ca16f57e568b67a3d">difference</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a100bac2003f4e07ea498e10d0dd1f6b1">end</a>(),f);
+<a name="l00959"></a>00959 }
+<a name="l00960"></a>00960
+<a name="l00964"></a><a class="code" href="classboost_1_1locale_1_1date__time__duration.html#afc2f075595d1774c866250d192b9db31">00964</a> <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#afc2f075595d1774c866250d192b9db31">start</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> s_; }
+<a name="l00968"></a><a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a100bac2003f4e07ea498e10d0dd1f6b1">00968</a> <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a100bac2003f4e07ea498e10d0dd1f6b1">end</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> e_; }
+<a name="l00969"></a>00969 <span class="keyword">private</span>:
+<a name="l00970"></a>00970 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;s_;
+<a name="l00971"></a>00971 <a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;e_;
+<a name="l00972"></a>00972 };
+<a name="l00973"></a>00973
+<a name="l00978"></a><a class="code" href="group__date__time.html#ga13c05afeb4ea7904b944b42f6c685022">00978</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <a class="code" href="group__date__time.html#ga023333646e070abf361be3890c12560b">operator-</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;later,<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;earlier)
+<a name="l00979"></a>00979 {
+<a name="l00980"></a>00980 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a>(earlier,later);
+<a name="l00981"></a>00981 }
+<a name="l00982"></a>00982
+<a name="l00983"></a>00983
+<a name="l00984"></a>00984 <span class="keyword">namespace </span>period {
+<a name="l00988"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ae463c1aef853fac6a434e5ebe0efa7bc">00988</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a62d0745dbb555066a7281b9c805ceab7">era</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a62d0745dbb555066a7281b9c805ceab7">era</a>()); }
+<a name="l00992"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a6990cb547cc6b0d46a71e9e93260b764">00992</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a9ea8d1453bed512ee16bea3199fd92af">year</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a9ea8d1453bed512ee16bea3199fd92af">year</a>()); }
+<a name="l00996"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a3b75a9bb1693373fbc11e709b866c4a4">00996</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#aeb2dfdc73c6d16796360eca141654aba">extended_year</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aeb2dfdc73c6d16796360eca141654aba">extended_year</a>()); }
+<a name="l01000"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a0f8bf7a07ded99184b22ebf4322e14e3">01000</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>()); }
+<a name="l01004"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a1a18f699d77055559a338b721ffd67bc">01004</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">day</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">day</a>()); }
+<a name="l01008"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a3af9fced8291a4dd68c0e342cc2aeff6">01008</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a33e67d3354486021fa1e7076d30d51a4">day_of_year</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a33e67d3354486021fa1e7076d30d51a4">day_of_year</a>()); }
+<a name="l01017"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a1304d65dfac45b50ba8a1ccba7eeb615">01017</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">day_of_week</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">day_of_week</a>()); }
+<a name="l01022"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a39eebff5ecf7dfbebfa159773fa0fafa">01022</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a083c271b3bbd29e4644b59fb3e34a4d7">day_of_week_in_month</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a083c271b3bbd29e4644b59fb3e34a4d7">day_of_week_in_month</a>()); }
+<a name="l01026"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a4cbc3c60e06552569af8e4c754c68ccf">01026</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a57d6b8f97bd6604e13c6982ed0953678">day_of_week_local</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a57d6b8f97bd6604e13c6982ed0953678">day_of_week_local</a>()); }
+<a name="l01030"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#abf42ad6e3c0ff5f65eede3ca8b03649e">01030</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a35f2ca900e3cda757c4598b686ca5969">hour</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a35f2ca900e3cda757c4598b686ca5969">hour</a>()); }
+<a name="l01034"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a5de2d1eb76264a004bd7de32787d5e04">01034</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#af96ab88b9d168801bfde95c7ad24613a">hour_12</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#af96ab88b9d168801bfde95c7ad24613a">hour_12</a>()); }
+<a name="l01038"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#aa0e5fd0e823eeb693d1289bc7620e9c6">01038</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a61b2390a32e15c6aa2c26bc06d21a20c">am_pm</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a61b2390a32e15c6aa2c26bc06d21a20c">am_pm</a>()); }
+<a name="l01042"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#aee91078a72717b913d032c339b71aae1">01042</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a0076efc591f6341ef785f49422b6fa89">minute</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a0076efc591f6341ef785f49422b6fa89">minute</a>()); }
+<a name="l01046"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ad42c02ea2dd7ff74cefe44e2f33350ba">01046</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#adee2c2dcbbea3653604cb6d514cb9a9b">second</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#adee2c2dcbbea3653604cb6d514cb9a9b">second</a>()); }
+<a name="l01050"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#acee2c7677af0ee00a9e69ad7bae4eca6">01050</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a4cb28c5353004068b73d0f12136bbfe9">week_of_year</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a4cb28c5353004068b73d0f12136bbfe9">week_of_year</a>()); }
+<a name="l01054"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a43006158737c71e5710d0838dbfdc471">01054</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ab01f299cdb64c780cadca7d64f87cd5f">week_of_month</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#ab01f299cdb64c780cadca7d64f87cd5f">week_of_month</a>()); }
+<a name="l01058"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a8b54a5a3841f233e2815a3f9c8fa8ebd">01058</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a1569da2e8680ef5d3409361069905541">first_day_of_week</a>(<a class="code" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a1569da2e8680ef5d3409361069905541">first_day_of_week</a>()); }
+<a name="l01059"></a>01059
+<a name="l01063"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a1f13d857994b5f415f323cc7837295b6">01063</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a62d0745dbb555066a7281b9c805ceab7">era</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a62d0745dbb555066a7281b9c805ceab7">era</a>()); }
+<a name="l01067"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#abf08701667238bc060923e8951a5412f">01067</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a9ea8d1453bed512ee16bea3199fd92af">year</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a9ea8d1453bed512ee16bea3199fd92af">year</a>()); }
+<a name="l01071"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#acd90973d68b0141c7cb7883eb20bc95e">01071</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#aeb2dfdc73c6d16796360eca141654aba">extended_year</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aeb2dfdc73c6d16796360eca141654aba">extended_year</a>()); }
+<a name="l01075"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#aacafebe772a38c196a5bc05c7343dabf">01075</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a>()); }
+<a name="l01079"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a4fc7bd863c6fe3ba1afe59a6027b4a71">01079</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">day</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">day</a>()); }
+<a name="l01083"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ab10c8ad1d752f849263b3c49fab6bdeb">01083</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a33e67d3354486021fa1e7076d30d51a4">day_of_year</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a33e67d3354486021fa1e7076d30d51a4">day_of_year</a>()); }
+<a name="l01087"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a5743a65a383b5b793765c59b74390daf">01087</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">day_of_week</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">day_of_week</a>()); }
+<a name="l01091"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a70abd9dc28f8c30ecb9490a7e6e74cf6">01091</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a083c271b3bbd29e4644b59fb3e34a4d7">day_of_week_in_month</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a083c271b3bbd29e4644b59fb3e34a4d7">day_of_week_in_month</a>()); }
+<a name="l01095"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#adcff30ce44d9eceec07aa27a6d989472">01095</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a57d6b8f97bd6604e13c6982ed0953678">day_of_week_local</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a57d6b8f97bd6604e13c6982ed0953678">day_of_week_local</a>()); }
+<a name="l01099"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ad9352f5a7dc6b60249656165963b2f25">01099</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a35f2ca900e3cda757c4598b686ca5969">hour</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a35f2ca900e3cda757c4598b686ca5969">hour</a>()); }
+<a name="l01103"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a5c8f153c6f82c9a90634149ab83357da">01103</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#af96ab88b9d168801bfde95c7ad24613a">hour_12</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#af96ab88b9d168801bfde95c7ad24613a">hour_12</a>()); }
+<a name="l01107"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a7e96c49dc74ad3590bdf442f0d35932d">01107</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a61b2390a32e15c6aa2c26bc06d21a20c">am_pm</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a61b2390a32e15c6aa2c26bc06d21a20c">am_pm</a>()); }
+<a name="l01111"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#ab639dfc13268e20301971ba703eac879">01111</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a0076efc591f6341ef785f49422b6fa89">minute</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a0076efc591f6341ef785f49422b6fa89">minute</a>()); }
+<a name="l01115"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a5a38b6fc7ad24095c00aa2169d1740ea">01115</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#adee2c2dcbbea3653604cb6d514cb9a9b">second</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#adee2c2dcbbea3653604cb6d514cb9a9b">second</a>()); }
+<a name="l01119"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a33e747e1711d0afd6831f53e2316b808">01119</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a4cb28c5353004068b73d0f12136bbfe9">week_of_year</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a4cb28c5353004068b73d0f12136bbfe9">week_of_year</a>()); }
+<a name="l01123"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a0a1441373dea5b91f4885884d9343504">01123</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#ab01f299cdb64c780cadca7d64f87cd5f">week_of_month</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#ab01f299cdb64c780cadca7d64f87cd5f">week_of_month</a>()); }
+<a name="l01127"></a><a class="code" href="namespaceboost_1_1locale_1_1period.html#a13e56c76ec6c550c5b3558000e268f1d">01127</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1locale_1_1period.html#a1569da2e8680ef5d3409361069905541">first_day_of_week</a>(<a class="code" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> <span class="keyword">const</span> &amp;dt) { <span class="keywordflow">return</span> dt.<a class="code" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">get</a>(<a class="code" href="namespaceboost_1_1locale_1_1period.html#a1569da2e8680ef5d3409361069905541">first_day_of_week</a>()); }
+<a name="l01128"></a>01128
+<a name="l01129"></a>01129
+<a name="l01130"></a>01130 }
+<a name="l01131"></a>01131
+<a name="l01133"></a>01133
+<a name="l01134"></a>01134
+<a name="l01135"></a>01135 } <span class="comment">// locale</span>
+<a name="l01136"></a>01136 } <span class="comment">// boost</span>
+<a name="l01137"></a>01137
+<a name="l01138"></a>01138 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l01139"></a>01139 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l01140"></a>01140 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l01141"></a>01141 <span class="preprocessor"></span>
+<a name="l01142"></a>01142
+<a name="l01143"></a>01143 <span class="preprocessor">#endif</span>
+<a name="l01144"></a>01144 <span class="preprocessor"></span>
+<a name="l01145"></a>01145
+<a name="l01146"></a>01146
+<a name="l01147"></a>01147
+<a name="l01148"></a>01148
+<a name="l01149"></a>01149
+<a name="l01150"></a>01150 <span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/date__time__facet_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/date__time__facet_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,232 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/date_time_facet.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/date_time_facet.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_DATE_TIME_FACET_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_DATE_TIME_FACET_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;boost/cstdint.hpp&gt;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;locale&gt;</span>
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020 <span class="keyword">namespace </span>boost {
+<a name="l00021"></a>00021 <span class="keyword">namespace </span>locale {
+<a name="l00025"></a>00025 <span class="keyword">namespace </span>period {
+<a name="l00029"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html">00029</a> <span class="keyword">namespace </span>marks {
+<a name="l00031"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">00031</a> <span class="keyword">enum</span> <a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a" title="the type that defines a flag that holds a period identifier">period_mark</a> {
+<a name="l00032"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aab24556edbe246e0bc3b4b0d3f2e627eb">00032</a> invalid,
+<a name="l00033"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aacc399d4cddd6d129a7d36cc2ce94b47a">00033</a> era,
+<a name="l00034"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa57de42317988a555460cf98be583addc">00034</a> year,
+<a name="l00035"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa827e0e9673cbb1e0983191ea42c88c88">00035</a> extended_year,
+<a name="l00036"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa1fe197c6bcc18839b75fc550857ed89a">00036</a> month,
+<a name="l00037"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aac944d440d0afd38cc75c1011319f790e">00037</a> day,
+<a name="l00038"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa6e0f5f21ddfe455d27dfdafb5e58796b">00038</a> day_of_year,
+<a name="l00039"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aaefcf18fd66bcbbac887950c40d5e039b">00039</a> day_of_week,
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041
+<a name="l00042"></a>00042
+<a name="l00043"></a>00043
+<a name="l00044"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aada04317134ebd8c192c431fdc6776756">00044</a> day_of_week_in_month,
+<a name="l00045"></a>00045
+<a name="l00046"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa16f1add720e3211b165609cc8bf49edf">00046</a> day_of_week_local,
+<a name="l00047"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa889701bc6cf11a9ee39d7223691966e1">00047</a> hour,
+<a name="l00048"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa33760c5f41e6cb76695f18d65f5d0a9d">00048</a> hour_12,
+<a name="l00049"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa8c4f7415895e44b3c1c9484a8eadcf06">00049</a> am_pm,
+<a name="l00050"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa1fec41808558d9452161712537717906">00050</a> minute,
+<a name="l00051"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa3afc5b74b9e5e23bdfeab56a297bb7c7">00051</a> second,
+<a name="l00052"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa779ca20cc3ae59a2421293f5d8023c2e">00052</a> week_of_year,
+<a name="l00053"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa91d7d091168f60438e08ecfb72a47aed">00053</a> week_of_month,
+<a name="l00054"></a><a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa8cc9f718b5bdf9c30cff3846118039bd">00054</a> first_day_of_week,
+<a name="l00055"></a>00055 };
+<a name="l00056"></a>00056
+<a name="l00057"></a>00057 } <span class="comment">// marks</span>
+<a name="l00058"></a>00058
+<a name="l00070"></a><a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html">00070</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> {
+<a name="l00071"></a>00071 <span class="keyword">public</span>:
+<a name="l00075"></a><a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html#a8abba35d5073884677ce69ec3ba3eba7">00075</a> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html#a8abba35d5073884677ce69ec3ba3eba7">period_type</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a" title="the type that defines a flag that holds a period identifier">marks::period_mark</a> m = <a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aab24556edbe246e0bc3b4b0d3f2e627eb" title="Special invalid value, should not be used directly.">marks::invalid</a>) : mark_(m)
+<a name="l00076"></a>00076 {
+<a name="l00077"></a>00077 }
+<a name="l00078"></a>00078
+<a name="l00082"></a><a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html#ad81b414edc6ea88accc5dad5d17a351b">00082</a> <a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a" title="the type that defines a flag that holds a period identifier">marks::period_mark</a> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html#ad81b414edc6ea88accc5dad5d17a351b">mark</a>()<span class="keyword"> const</span>
+<a name="l00083"></a>00083 <span class="keyword"> </span>{
+<a name="l00084"></a>00084 <span class="keywordflow">return</span> mark_;
+<a name="l00085"></a>00085 }
+<a name="l00086"></a>00086
+<a name="l00090"></a><a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html#a53ac6fdbaa7ae1b6d90e67bb5aadcce0">00090</a> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html#a53ac6fdbaa7ae1b6d90e67bb5aadcce0">operator==</a>(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <span class="keyword">const</span> &amp;other)<span class="keyword"> const</span>
+<a name="l00091"></a>00091 <span class="keyword"> </span>{
+<a name="l00092"></a>00092 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html#ad81b414edc6ea88accc5dad5d17a351b">mark</a>()==other.<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html#ad81b414edc6ea88accc5dad5d17a351b">mark</a>();
+<a name="l00093"></a>00093 }
+<a name="l00097"></a><a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html#a0156ce442f97fd86fa7c702e4d24031a">00097</a> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html#a0156ce442f97fd86fa7c702e4d24031a">operator!=</a>(<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> <span class="keyword">const</span> &amp;other)<span class="keyword"> const</span>
+<a name="l00098"></a>00098 <span class="keyword"> </span>{
+<a name="l00099"></a>00099 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html#ad81b414edc6ea88accc5dad5d17a351b">mark</a>()!=other.<a class="code" href="classboost_1_1locale_1_1period_1_1period__type.html#ad81b414edc6ea88accc5dad5d17a351b">mark</a>();
+<a name="l00100"></a>00100 }
+<a name="l00101"></a>00101 <span class="keyword">private</span>:
+<a name="l00102"></a>00102 <a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a" title="the type that defines a flag that holds a period identifier">marks::period_mark</a> mark_;
+<a name="l00103"></a>00103 };
+<a name="l00104"></a>00104
+<a name="l00105"></a>00105 } <span class="comment">// namespace period</span>
+<a name="l00106"></a>00106
+<a name="l00111"></a><a class="code" href="structboost_1_1locale_1_1posix__time.html">00111</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1locale_1_1posix__time.html">posix_time</a> {
+<a name="l00112"></a><a class="code" href="structboost_1_1locale_1_1posix__time.html#a8209978ee423c6396d8179505ec5fa78">00112</a> int64_t <a class="code" href="structboost_1_1locale_1_1posix__time.html#a8209978ee423c6396d8179505ec5fa78" title="Seconds since epoch.">seconds</a>;
+<a name="l00113"></a><a class="code" href="structboost_1_1locale_1_1posix__time.html#aaa1f72a3f4313cd079b08375132c794d">00113</a> uint32_t <a class="code" href="structboost_1_1locale_1_1posix__time.html#aaa1f72a3f4313cd079b08375132c794d" title="Nanoseconds resolution.">nanoseconds</a>;
+<a name="l00114"></a>00114 };
+<a name="l00115"></a>00115
+<a name="l00121"></a>00121
+<a name="l00122"></a><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html">00122</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a> {
+<a name="l00123"></a>00123 <span class="keyword">public</span>:
+<a name="l00124"></a>00124
+<a name="l00128"></a><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5">00128</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00129"></a><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a28694319e58f559df9ca41b22f03427e">00129</a> absolute_minimum,
+<a name="l00130"></a><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a5aa2c2d439c6e801e3bc48a35972932b">00130</a> actual_minimum,
+<a name="l00131"></a><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a75e80e0a10af4b2b8eb2fcab72e4b200">00131</a> greatest_minimum,
+<a name="l00132"></a><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a83d87ff10ff6107dfd0405f1e8757ef8">00132</a> current,
+<a name="l00133"></a><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a388661725182373d2f92b709034f85c9">00133</a> least_maximum,
+<a name="l00134"></a>00134
+<a name="l00135"></a><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a3d2648e95466623ba20502281e0208af">00135</a> actual_maximum,
+<a name="l00136"></a><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5ab5d1af0b2698fee942a1486dfcc6552b">00136</a> absolute_maximum,
+<a name="l00137"></a>00137 } value_type;
+<a name="l00138"></a>00138
+<a name="l00142"></a><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95">00142</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00143"></a><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95aac5f9cb6e12a121b47b51434a3655c81">00143</a> move,
+<a name="l00144"></a><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95a704e0e917603c2a88de22f3426a3e20b">00144</a> roll,
+<a name="l00145"></a>00145 } update_type;
+<a name="l00146"></a>00146
+<a name="l00150"></a><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5">00150</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00151"></a><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5add910815d1ad0e97275b781223e869a9">00151</a> is_gregorian,
+<a name="l00152"></a><a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5a69f0c20e321e3b914883869466122c61">00152</a> <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5a69f0c20e321e3b914883869466122c61" title="Check if the current time is in daylight time savings.">is_dst</a>
+<a name="l00153"></a>00153 } calendar_option_type;
+<a name="l00154"></a>00154
+<a name="l00158"></a>00158 <span class="keyword">virtual</span> <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a> *<a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a73bc2d023be4c6ac6a6f441f74ded2f9">clone</a>() <span class="keyword">const</span> = 0;
+<a name="l00159"></a>00159
+<a name="l00170"></a>00170 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a15067ccf90a19e640051a30a6d3a2a7f">set_value</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a" title="the type that defines a flag that holds a period identifier">period::marks::period_mark</a> p,<span class="keywordtype">int</span> value) = 0;
+<a name="l00171"></a>00171
+<a name="l00175"></a>00175 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#aa06fef77acaa6104e3cd2bc80ccc76d9">normalize</a>() = 0;
+<a name="l00176"></a>00176
+<a name="l00180"></a>00180 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a7eacfa5d8f37dfc839d0239c2fcdf64e">get_value</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a" title="the type that defines a flag that holds a period identifier">period::marks::period_mark</a> p,<a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5">value_type</a> v) <span class="keyword">const</span> = 0;
+<a name="l00181"></a>00181
+<a name="l00185"></a>00185 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#acb01268c84f27a8a736b715ab9e9557a">set_time</a>(<a class="code" href="structboost_1_1locale_1_1posix__time.html">posix_time</a> <span class="keyword">const</span> &amp;p) = 0;
+<a name="l00189"></a>00189 <span class="keyword">virtual</span> <a class="code" href="structboost_1_1locale_1_1posix__time.html">posix_time</a> <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a8900097c0b687393b053bc0420070815">get_time</a>() <span class="keyword">const</span> = 0;
+<a name="l00190"></a>00190
+<a name="l00194"></a>00194 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a9265206013005d9ac30cf723a7ffe032">set_option</a>(<a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5">calendar_option_type</a> opt,<span class="keywordtype">int</span> v) = 0;
+<a name="l00198"></a>00198 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a0c034dd6f135b7d9b6faad08d49715a8">get_option</a>(<a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5">calendar_option_type</a> opt) <span class="keyword">const</span> = 0;
+<a name="l00199"></a>00199
+<a name="l00204"></a>00204 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#afb8e3a4d2ad93274ec119dc3dd0b103a">adjust_value</a>(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a" title="the type that defines a flag that holds a period identifier">period::marks::period_mark</a> p,<a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95">update_type</a> u,<span class="keywordtype">int</span> <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a7bd4c26f5a4260f6d9c91c615efc4b46">difference</a>) = 0;
+<a name="l00205"></a>00205
+<a name="l00209"></a>00209 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a7bd4c26f5a4260f6d9c91c615efc4b46">difference</a>(<a class="code" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a> <span class="keyword">const</span> *other,<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a" title="the type that defines a flag that holds a period identifier">period::marks::period_mark</a> p) <span class="keyword">const</span> = 0;
+<a name="l00210"></a>00210
+<a name="l00214"></a>00214 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#aa17f0fd2e88d3da8fe7b12e98ad2d6c3">set_timezone</a>(std::string <span class="keyword">const</span> &amp;tz) = 0;
+<a name="l00218"></a>00218 <span class="keyword">virtual</span> std::string <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#a51f4b91d0dc2f9afa3920a771307d92f">get_timezone</a>() <span class="keyword">const</span> = 0;
+<a name="l00219"></a>00219
+<a name="l00223"></a>00223 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html#aa20ae19bca185cc0fa4ab69d7f3c5883">same</a>(<a class="code" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a> <span class="keyword">const</span> *other) <span class="keyword">const</span> = 0;
+<a name="l00224"></a>00224
+<a name="l00225"></a>00225 <span class="keyword">virtual</span> ~<a class="code" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a>()
+<a name="l00226"></a>00226 {
+<a name="l00227"></a>00227 }
+<a name="l00228"></a>00228
+<a name="l00229"></a>00229 };
+<a name="l00230"></a>00230
+<a name="l00234"></a><a class="code" href="classboost_1_1locale_1_1calendar__facet.html">00234</a> <span class="keyword">class </span>BOOST_LOCALE_DECL <a class="code" href="classboost_1_1locale_1_1calendar__facet.html" title="the facet that generates calendar for specific locale">calendar_facet</a> : <span class="keyword">public</span> std::locale::facet {
+<a name="l00235"></a>00235 <span class="keyword">public</span>:
+<a name="l00239"></a><a class="code" href="classboost_1_1locale_1_1calendar__facet.html#a04e5d7baa3bb0f362b0c2faac0c5d376">00239</a> <a class="code" href="namespaceboost_1_1locale.html#ae068c6887999c1f839d6d13eaf2a0b7c" title="Generate boundary analysis facet.">calendar_facet</a>(<span class="keywordtype">size_t</span> refs = 0) : std::locale::facet(refs)
+<a name="l00240"></a>00240 {
+<a name="l00241"></a>00241 }
+<a name="l00245"></a>00245 <span class="keyword">virtual</span> <a class="code" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a> *create_calendar() <span class="keyword">const</span> = 0;
+<a name="l00246"></a>00246
+<a name="l00250"></a><a class="code" href="classboost_1_1locale_1_1calendar__facet.html#a88dc563112346949302fd95df833089c">00250</a> <span class="keyword">static</span> std::locale::id id;
+<a name="l00251"></a>00251 };
+<a name="l00252"></a>00252
+<a name="l00253"></a>00253 } <span class="comment">// locale</span>
+<a name="l00254"></a>00254 } <span class="comment">// boost</span>
+<a name="l00255"></a>00255
+<a name="l00256"></a>00256 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00257"></a>00257 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l00258"></a>00258 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00259"></a>00259 <span class="preprocessor"></span>
+<a name="l00260"></a>00260
+<a name="l00261"></a>00261 <span class="preprocessor">#endif</span>
+<a name="l00262"></a>00262 <span class="preprocessor"></span><span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+<a name="l00263"></a>00263
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/dates_times_timezones.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/dates_times_timezones.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,188 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Working with dates, times, timezones and calendars.</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="using_boost_locale.html">Using Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Working with dates, times, timezones and calendars. </h1> </div>
+</div>
+<div class="contents">
+<h2><a class="anchor" id="dates_times_timezones_intro"></a>
+Introduction</h2>
+<p>There are several important flaws in the standard C, C++ and Boost libraries that handle dates and time:</p>
+<ol type="1">
+<li>The biggest flaw of most libraries that provide operations over dates is the fact that they only support the Gregorian calendar. <code>boost::date_time</code> , <code>std::tm</code> , and standard functions like <code>localtime</code> and <code>gmtime</code>, all assume the Gregorian calendar.</li>
+<li>The information about local start of week is not provided. <br/>
+ For example the standard C and C++ library has <code>mktime</code> and <code>localtime</code>, but they do not give user the information about the first day of week. This information is locale dependent. It is Monday in France and it is Sunday in United States.</li>
+</ol>
+<p>Boost.Locale provides generic <a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a>, and <a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a> classes that allow you to perform operations on dates and times for non-Gregorian calendars such as Hebrew, Islamic, Japanese and others.</p>
+<p><a class="el" href="using_localization_backends.html">Non-ICU based backends</a> support the Gregorian calendar only. Unlike <code>boost::date_time</code>, they are fully aware of the local first day of week. Thus, if the current day of week is Monday, then setting "current day of week" to Sunday would move the actual date 6 days forward in Russian or French locales and move one day backward in USA and Israeli locales.</p>
+<h2><a class="anchor" id="dates_times_timezones_dt"></a>
+Handling Dates and Time</h2>
+<ul>
+<li><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a> -- represents generic information about the calendar, independent from a specific time point. For example, you can get the maximum number of days in a month for a specific calendar.</li>
+<li><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a> -- represents a time point. It is constructed from a calendar and allows manipulation of various time periods.</li>
+<li><a class="el" href="namespaceboost_1_1locale_1_1period.html">boost::locale::period</a> -- holds a list of functions that represent various periods, such as month, year, day, and hour, allowing manipulation of dates and times. You can add periods, multiply them by integers, get or set them, or add them to <a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> objects.</li>
+</ul>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"> <span class="keyword">using namespace </span>boost::locale;
+ date_time now; <span class="comment">// Create date_time class with default calendar initialized to current time</span>
+ date_time tomorrow = now + period::day();
+ cout &lt;&lt; <span class="stringliteral">&quot;Let&#39;s meet tomorrow at &quot;</span> &lt;&lt; <a class="code" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">as::date</a> &lt;&lt; tomorrow &lt;&lt; endl;
+ date_time some_point = period::year(1995) + period::january() + period::day(1);
+ <span class="comment">// Set some_point&#39;s date to 1995-Jan-1.</span>
+ cout &lt;&lt; <span class="stringliteral">&quot;The &quot;</span>&lt;&lt; <a class="code" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">as::date</a> &lt;&lt; some_point &lt;&lt; <span class="stringliteral">&quot; is the &quot;</span>
+ &lt;&lt; <a class="code" href="group__manipulators.html#ga50cc23779fd846809182e50345b4eb7c">as::ordinal</a> &lt;&lt; some_point / period::day_of_week_local() &lt;&lt; <span class="stringliteral">&quot; day of the week&quot;</span> &lt;&lt; endl;
+</pre></div><p>You can calculate the difference between dates by dividing the difference by a period:</p>
+<div class="fragment"><pre class="fragment"> date_time now;
+ cout &lt;&lt; <span class="stringliteral">&quot; There are &quot;</span> &lt;&lt; (now + 2 * period::month() - now) / period::day() &lt;&lt; <span class="stringliteral">&quot; days &quot;</span>
+ <span class="stringliteral">&quot;between &quot;</span> &lt;&lt; <a class="code" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">as::date</a> &lt;&lt; now &lt;&lt; <span class="stringliteral">&quot; and &quot;</span> &lt;&lt; now + 2*period::month() &lt;&lt; endl;
+</pre></div><p>You can also use different syntax (less operator overloading)</p>
+<div class="fragment"><pre class="fragment"> date_time now;
+ cout &lt;&lt; <span class="stringliteral">&quot; There are &quot;</span> &lt;&lt; period::day(now + period::month(2) - now) &lt;&lt; <span class="stringliteral">&quot; days &quot;</span>
+ <span class="stringliteral">&quot;between &quot;</span> &lt;&lt; <a class="code" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">as::date</a> &lt;&lt; now &lt;&lt; <span class="stringliteral">&quot; and &quot;</span> &lt;&lt; now + period::month(2) &lt;&lt; endl;
+</pre></div><p><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> -- provides the member functions <a class="el" href="classboost_1_1locale_1_1date__time.html#a3363a0c562300095432a17e472d2e52d">minimum</a> and <a class="el" href="classboost_1_1locale_1_1date__time.html#adb258ce11408b62bc0f14a60a05f0752">maximum</a> to get the information about smallest and largest possible values of a certain period for a specific time.</p>
+<p>For example, for February the <code>maximum(period::day())</code> would be 28 (or 29 for a leap year), and for January it would be 31.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>Be very careful with assumptions about calendars. For example, in the Hebrew calendar, the number of months is different for leap years and non-leap years.</dd></dl>
+<p>We recommend you to look at the <code>calendar.cpp</code> example provided with this library to get an understanding of how to manipulate dates and times using these classes.</p>
+<p>To convert between various calendar dates, you may get the current POSIX time via the <a class="el" href="classboost_1_1locale_1_1date__time.html#a17aa2b54462ebcf1860f8e4db9f7868e">time</a> member function.</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"> <span class="keyword">using namespace </span>boost::locale;
+ <span class="keyword">using namespace </span>boost::locale::period;
+ generator gen;
+ <span class="comment">// Create locales with Hebrew and Gregorian (default) calendars.</span>
+ std::locale l_hebrew=gen(<span class="stringliteral">&quot;en_US.UTF-8_at_calendar=hebrew&quot;</span>);
+ std::locale l_gregorian=gen(<span class="stringliteral">&quot;en_US.UTF-8&quot;</span>);
+
+ <span class="comment">// Create a Gregorian date from fields</span>
+ date_time greg(<a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa57de42317988a555460cf98be583addc" title="Year, it is calendar specific, for example 2011 in Gregorian calendar.">year</a>(2010) + <a class="code" href="namespaceboost_1_1locale_1_1period.html#ab0610583a720120e8dcf90d0fe01cb01">february</a>() + <a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aac944d440d0afd38cc75c1011319f790e" title="The day of month, calendar specific, in Gregorian [1..31].">day</a>(5),l_gregorian);
+ <span class="comment">// Assign a time point taken from the Gregorian date to date_time with</span>
+ <span class="comment">// the Hebrew calendar</span>
+ date_time heb(greg.time(),l_hebrew);
+ <span class="comment">// Now we can query the year.</span>
+ std::cout &lt;&lt; <span class="stringliteral">&quot;Hebrew year is &quot;</span> &lt;&lt; heb / <a class="code" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa57de42317988a555460cf98be583addc" title="Year, it is calendar specific, for example 2011 in Gregorian calendar.">year</a> &lt;&lt; std::endl;
+</pre></div><dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<p>Non-ICU based backends support the same date-time range as <code>mktime</code> and <code>localtime</code> C library functions.</p>
+<ul>
+<li>Unix 32 bit: dates between 1901 and 2038</li>
+<li>Unix 64 bit: dates from 1 BC</li>
+<li>Windows: dates from 1970. If the <code>time_t</code> is 32 bits wide (mingw), then the upper limit is year 2038</li>
+</ul>
+<h2><a class="anchor" id="dates_times_timezones_tz"></a>
+Time Zone</h2>
+<p>The current operating system's time zone is used by default, however the time zone can be modified at several different levels:</p>
+<ol type="1">
+<li>Calendar level: you can specify a timezone when creating a new instance of <a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a> in its constructor.</li>
+<li>iostream level: you can use <a class="el" href="group__manipulators.html#gad51fbdc634fe0c81e5183915e9eeb238">as::time_zone</a> manipulator to set a specific time zone to the iostream so all dates and times would be represented in this time zone</li>
+<li>You can specify the default global time zone by calling: <a class="el" href="namespaceboost_1_1locale_1_1time__zone.html#aa5eb7b1d7d55c3069eebea3ab378ad99">boost::locale::time_zone::global(std::string const &amp;)</a>. This time zone would be the default one for newly created iostream object and calendar instances.</li>
+</ol>
+<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<p><a class="el" href="using_localization_backends.html">Non-ICU based backends</a> support only two kinds of time zones:</p>
+<ol type="1">
+<li>The current OS time zone, as it is handled by <code>localtime</code> and <code>mktime</code> the standard library functions - the default time zone</li>
+<li>Simple time zone in format "GMT+HH:MM" - the time zone represented using fixed shift from the UTC without support of daylight saving time.</li>
+</ol>
+<h2><a class="anchor" id="dates_times_timezones_io"></a>
+I/O Operations on date_time objects</h2>
+<p>Writing a <a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> is equivalent to:</p>
+<ul>
+<li>Applying <a class="el" href="group__manipulators.html#ga820edf843e20847a0c4ccb8da0c4acd8">as::datetime</a> manipulator on the stream</li>
+<li>Writing POSIX time as number that is fetched by calling <a class="el" href="classboost_1_1locale_1_1date__time.html#a17aa2b54462ebcf1860f8e4db9f7868e">date_time::time()</a> function.</li>
+<li>Reverting the manipulator effect back.</li>
+</ul>
+<p>For example this code:</p>
+<div class="fragment"><pre class="fragment"><span class="keyword">using namespace </span>boost::locale;
+date_time now;
+std::cout &lt;&lt; now &lt;&lt; std::endl;
+</pre></div><p>Would print in the default format, something like:</p>
+<div class="fragment"><pre class="fragment">
+2/3/2011 12:00 am
+</pre></div><p>However if you need to change the default behavior (for example show only date), then you need to use specific iostream manipulator in order to display current date or time, it would override the default formatting.</p>
+<p>For example</p>
+<div class="fragment"><pre class="fragment"><span class="keyword">using namespace </span>boost::locale;
+date_time now;
+std::cout &lt;&lt; <a class="code" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">as::date</a> &lt;&lt; now &lt;&lt; std::endl;
+</pre></div><p>Would print something like:</p>
+<div class="fragment"><pre class="fragment">
+2/3/2011
+</pre></div><p>This is important to remember that <code>date_time</code> object is always rendered and parsed in the context of the <code>iostream's</code> locale and time zone and not in the context of specific <code>date_time</code> object.</p>
+<h2><a class="anchor" id="dates_times_timezones_qna"></a>
+Questions and Answers</h2>
+<p><b>Why should I use Boost.Locale over Boost.DateTime when I need Gregorian calendar only?</b></p>
+<ul>
+<li>Boost.DateTime is locale agnostic library and ignores the fact that the first day of week varies by the locale.</li>
+<li>Boost.Locale provides a unified access to date and time in time zone aware way. It represents a time as universal scalar - the POSIX time and over that builds dates, local times and time-zones handling. <br/>
+ For example, <code>date_time(some_time.time() + 3600)</code> may be not equal to <code>some_time + hour()</code>, because of the daylight savings time.</li>
+</ul>
+<p><b>Why don't you use Boost.DateTime time zone support?</b></p>
+<p>Boost.DateTime's time zone support is broken. Time zones can not be represented with a simple table of rules where daylight saving depend only on certain n'th day of week in month. The daylight savings time may vary by year, political issues and many other things.</p>
+<p>Most of the modern operating systems (Linux, *BSD, Mac OS X, OpenVMS) and many important software packages (ICU, Java, Python) use so called Olson database in order to handle daylight saving time correctly.</p>
+<p>If you need full time zone database support, then you should use ICU library. </p>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/default_encoding_under_windows.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/default_encoding_under_windows.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Default Encoding under Microsoft Windows</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="appendix.html">Appendix</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Default Encoding under Microsoft Windows </h1> </div>
+</div>
+<div class="contents">
+<p>All modern operating systems use Unicode.</p>
+<ul>
+<li>Unix operating system family use UTF-8 encoding by default.</li>
+<li>Microsoft Windows had migrated to Wide/UTF-16 API. The narrow encodings had been deprecated and the native OS API became so called "Wide API"</li>
+</ul>
+<p>As a result of radically different approaches, it is very hard to write portable Unicode aware applications.</p>
+<p>Boost Locale fully supports both narrow and wide API. The default character encoding is assumed to be UTF-8 on Windows.</p>
+<p>So if the default operating system Locale is "English_USA.1252" the default locale for Boost.Locale on Windows would be "en_US.UTF-8".</p>
+<p>When the created locale object is installed globally then any libraries that use <code>std::codecvt</code> for conversion between narrow API and the native wide API would handle UTF-8 correctly.</p>
+<p>A good example of such library is Boost.Filesystem v3.</p>
+<p>For example</p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">#include &lt;boost/locale.hpp&gt;</span>
+<span class="preprocessor">#include &lt;boost/filesystem/path.hpp&gt;</span>
+<span class="preprocessor">#include &lt;boost/filesystem/fstream.hpp&gt;</span>
+
+<span class="keywordtype">int</span> main()
+{
+ <span class="comment">// Create and install global locale</span>
+ std::locale::global(<a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">boost::locale::generator</a>().generate(<span class="stringliteral">&quot;&quot;</span>));
+ <span class="comment">// Make boost.filesystem use it</span>
+ boost::filesystem::path::imbue(std::locale());
+ <span class="comment">// Now Works perfectly fine with UTF-8!</span>
+ boost::filesystem::ofstream hello(<span class="stringliteral">&quot;שלום.txt&quot;</span>);
+}
+</pre></div><p>However such behavior may break existing software that assumes that the current encoding is single byte encodings like code page 1252.</p>
+<p><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a> class has a property <a class="el" href="classboost_1_1locale_1_1generator.html#a9afb2b0791abbabd39c800e08d9c9717">use_ansi_encoding()</a> that allows to change the behavior to legacy one and select an ANSI code page as default system encoding.</p>
+<p>So, when the current locale is "English_USA.1252" and the <code>use_ansi_encoding</code> is turned on then the default locale would be "en_US.windows-1252"</p>
+<dl class="note"><dt><b>Note:</b></dt><dd><code>winapi</code> backend does not support ANSI encodings, thus UTF-8 encoding is always used for narrow characters. </dd></dl>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/doxygen.css
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/doxygen.css 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,656 @@
+/* The standard CSS for doxygen */
+
+body, table, div, p, dl {
+ font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+ font-size: 12px;
+}
+
+/* @group Heading Levels */
+
+h1 {
+ font-size: 150%;
+}
+
+h2 {
+ font-size: 120%;
+}
+
+h3 {
+ font-size: 100%;
+}
+
+dt {
+ font-weight: bold;
+}
+
+div.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+ margin-top: 2px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+p.endtd {
+ margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+h3.version {
+ font-size: 90%;
+ text-align: center;
+}
+
+div.qindex, div.navtab{
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+ margin: 2px;
+ padding: 2px;
+}
+
+div.qindex, div.navpath {
+ width: 100%;
+ line-height: 140%;
+}
+
+div.navtab {
+ margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+ color: #3D578C;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #4665A2;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+a.qindex {
+ font-weight: bold;
+}
+
+a.qindexHL {
+ font-weight: bold;
+ background-color: #9CAFD4;
+ color: #ffffff;
+ border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+ color: #ffffff;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code {
+ color: #4665A2;
+}
+
+a.codeRef {
+ color: #4665A2;
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+.fragment {
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+pre.fragment {
+ border: 1px solid #C4CFE5;
+ background-color: #FBFCFD;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+}
+
+div.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #ffffff;
+ margin-bottom: 3px;
+ margin-top: 3px;
+ padding: 0.2em;
+ border: solid thin #333;
+ border-radius: 0.5em;
+ -webkit-border-radius: .5em;
+ -moz-border-radius: .5em;
+ -webkit-box-shadow: 2px 2px 3px #999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ margin-bottom: 6px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background: white;
+ color: black;
+ margin: 0;
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+td.indexkey {
+ background-color: #EBEFF6;
+ font-weight: bold;
+ border: 1px solid #C4CFE5;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+}
+
+td.indexvalue {
+ background-color: #EBEFF6;
+ border: 1px solid #C4CFE5;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+div.center img {
+ border: 0px;
+}
+
+address.footer {
+ text-align: right;
+ padding-right: 12px;
+}
+
+img.footer {
+ border: 0px;
+ vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+/* @end */
+
+/*
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+ background: #EBEFF6;
+ font-weight: bold;
+}
+
+hr {
+ height: 0px;
+ border: none;
+ border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+ height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+ border-spacing: 0px;
+ padding: 0px;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #F9FAFC;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memItemLeft, .memItemRight, .memTemplParams {
+ border-top: 1px solid #C4CFE5;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memTemplParams {
+ color: #4665A2;
+ white-space: nowrap;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+ font-size: 80%;
+ color: #4665A2;
+ font-weight: normal;
+ margin-left: 3px;
+}
+
+.memnav {
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.memitem {
+ padding: 0;
+ margin-bottom: 10px;
+}
+
+.memname {
+ white-space: nowrap;
+ font-weight: bold;
+ margin-left: 6px;
+}
+
+.memproto {
+ border-top: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 0px 6px 0px;
+ color: #253555;
+ font-weight: bold;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 8px;
+ -moz-border-radius-topleft: 8px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 8px;
+ -webkit-border-top-left-radius: 8px;
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+
+}
+
+.memdoc {
+ border-bottom: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 2px 5px;
+ background-color: #FBFCFD;
+ border-top-width: 0;
+ /* firefox specific markup */
+ -moz-border-radius-bottomleft: 8px;
+ -moz-border-radius-bottomright: 8px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7);
+ /* webkit specific markup */
+ -webkit-border-bottom-left-radius: 8px;
+ -webkit-border-bottom-right-radius: 8px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7));
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #602020;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+
+/* @end */
+
+/* @group Directory (tree) */
+
+/* for the tree view */
+
+.ftvtree {
+ font-family: sans-serif;
+ margin: 0px;
+}
+
+/* these are for tree view when used as main index */
+
+.directory {
+ font-size: 9pt;
+ font-weight: bold;
+ margin: 5px;
+}
+
+.directory h3 {
+ margin: 0px;
+ margin-top: 1em;
+ font-size: 11pt;
+}
+
+/*
+The following two styles can be used to replace the root node title
+with an image of your choice. Simply uncomment the next two styles,
+specify the name of your image and be sure to set 'height' to the
+proper pixel height of your image.
+*/
+
+/*
+.directory h3.swap {
+ height: 61px;
+ background-repeat: no-repeat;
+ background-image: url("yourimage.gif");
+}
+.directory h3.swap span {
+ display: none;
+}
+*/
+
+.directory > h3 {
+ margin-top: 0;
+}
+
+.directory p {
+ margin: 0px;
+ white-space: nowrap;
+}
+
+.directory div {
+ display: none;
+ margin: 0px;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+/* these are for tree view when not used as main index */
+
+.directory-alt {
+ font-size: 100%;
+ font-weight: bold;
+}
+
+.directory-alt h3 {
+ margin: 0px;
+ margin-top: 1em;
+ font-size: 11pt;
+}
+
+.directory-alt > h3 {
+ margin-top: 0;
+}
+
+.directory-alt p {
+ margin: 0px;
+ white-space: nowrap;
+}
+
+.directory-alt div {
+ display: none;
+ margin: 0px;
+}
+
+.directory-alt img {
+ vertical-align: -30%;
+}
+
+/* @end */
+
+div.dynheader {
+ margin-top: 8px;
+}
+
+address {
+ font-style: normal;
+ color: #2A3D61;
+}
+
+table.doxtable {
+ border-collapse:collapse;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #2D4068;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #374F7F;
+ color: #FFFFFF;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+}
+
+.tabsearch {
+ top: 0px;
+ left: 10px;
+ height: 36px;
+ background-image: url('tab_b.png');
+ z-index: 101;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+.navpath ul
+{
+ font-size: 11px;
+ background-image:url('tab_b.png');
+ background-repeat:repeat-x;
+ height:30px;
+ line-height:30px;
+ color:#8AA0CC;
+ border:solid 1px #C2CDE4;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+ padding-right: 15px;
+ background-image:url('bc_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+}
+
+.navpath a
+{
+ height:32px;
+ display:block;
+ text-decoration: none;
+ outline: none;
+}
+
+.navpath a:hover
+{
+ color:#6884BD;
+}
+
+div.summary
+{
+ float: right;
+ font-size: 8pt;
+ padding-right: 5px;
+ width: 50%;
+ text-align: right;
+}
+
+div.summary a
+{
+ white-space: nowrap;
+}
+
+div.header
+{
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ margin: 0px;
+ border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 10px;
+}
+

Added: trunk/libs/locale/doc/html/doxygen.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/encoding_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/encoding_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,341 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/encoding.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/encoding.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_ENCODING_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_ENCODING_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#include &lt;boost/locale/info.hpp&gt;</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;boost/cstdint.hpp&gt;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;stdexcept&gt;</span>
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022 <span class="keyword">namespace </span>boost {
+<a name="l00023"></a>00023 <span class="keyword">namespace </span>locale {
+<a name="l00024"></a>00024
+<a name="l00028"></a><a class="code" href="namespaceboost_1_1locale_1_1conv.html">00028</a> <span class="keyword">namespace </span>conv {
+<a name="l00033"></a>00033
+<a name="l00037"></a><a class="code" href="classboost_1_1locale_1_1conv_1_1conversion__error.html">00037</a> <span class="keyword">class </span>BOOST_SYMBOL_VISIBLE <a class="code" href="classboost_1_1locale_1_1conv_1_1conversion__error.html" title="The excepton that is thrown in case of conversion error.">conversion_error</a> : <span class="keyword">public</span> std::runtime_error {
+<a name="l00038"></a>00038 <span class="keyword">public</span>:
+<a name="l00039"></a>00039 <a class="code" href="classboost_1_1locale_1_1conv_1_1conversion__error.html" title="The excepton that is thrown in case of conversion error.">conversion_error</a>() : std::runtime_error(<span class="stringliteral">&quot;Conversion failed&quot;</span>) {}
+<a name="l00040"></a>00040 };
+<a name="l00041"></a>00041
+<a name="l00046"></a><a class="code" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html">00046</a> <span class="keyword">class </span>BOOST_SYMBOL_VISIBLE <a class="code" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html" title="This exception is thrown in case of use of unsupported or invalid character set.">invalid_charset_error</a> : <span class="keyword">public</span> std::runtime_error {
+<a name="l00047"></a>00047 <span class="keyword">public</span>:
+<a name="l00048"></a>00048
+<a name="l00050"></a><a class="code" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html#ae951e3a99a115a60cc87d4d258764681">00050</a> <a class="code" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html" title="This exception is thrown in case of use of unsupported or invalid character set.">invalid_charset_error</a>(std::string charset) :
+<a name="l00051"></a>00051 std::runtime_error(<span class="stringliteral">&quot;Invalid or unsupported charset:&quot;</span> + charset)
+<a name="l00052"></a>00052 {
+<a name="l00053"></a>00053 }
+<a name="l00054"></a>00054 };
+<a name="l00055"></a>00055
+<a name="l00056"></a>00056
+<a name="l00060"></a><a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">00060</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00061"></a><a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84ae9b554a2955deddf714757788819edf9">00061</a> <a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84ae9b554a2955deddf714757788819edf9" title="Skip illegal/unconvertable characters.">skip</a> = 0,
+<a name="l00062"></a><a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84aab08f9ee241c405ef40bd3cedb43b383">00062</a> <a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84aab08f9ee241c405ef40bd3cedb43b383" title="Stop conversion and throw conversion_error.">stop</a> = 1,
+<a name="l00063"></a><a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559">00063</a> <a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a> = <a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84ae9b554a2955deddf714757788819edf9" title="Skip illegal/unconvertable characters.">skip</a>
+<a name="l00064"></a>00064 } method_type;
+<a name="l00065"></a>00065
+<a name="l00069"></a>00069 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00070"></a>00070 std::basic_string&lt;CharType&gt; <a class="code" href="group__codepage.html#gad659f9c9c8b291e2ac6af24c49b42e43">to_utf</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *begin,<span class="keywordtype">char</span> <span class="keyword">const</span> *end,std::string <span class="keyword">const</span> &amp;charset,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=<a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>);
+<a name="l00071"></a>00071
+<a name="l00075"></a>00075 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00076"></a>00076 std::string <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(CharType <span class="keyword">const</span> *begin,CharType <span class="keyword">const</span> *end,std::string <span class="keyword">const</span> &amp;charset,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=<a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>);
+<a name="l00077"></a>00077
+<a name="l00083"></a>00083 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00084"></a><a class="code" href="group__codepage.html#ga474409c9625e08b86bf1480c82639e5b">00084</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__codepage.html#gad659f9c9c8b291e2ac6af24c49b42e43">to_utf</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *begin,<span class="keywordtype">char</span> <span class="keyword">const</span> *end,std::locale <span class="keyword">const</span> &amp;loc,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=<a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>)
+<a name="l00085"></a>00085 {
+<a name="l00086"></a>00086 <span class="keywordflow">return</span> to_utf&lt;CharType&gt;(begin,end,std::use_facet&lt;info&gt;(loc).encoding(),how);
+<a name="l00087"></a>00087 }
+<a name="l00088"></a>00088
+<a name="l00094"></a>00094 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00095"></a><a class="code" href="group__codepage.html#ga075f5bae721a9e87d887556ebefe1860">00095</a> std::string <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(CharType <span class="keyword">const</span> *begin,CharType <span class="keyword">const</span> *end,std::locale <span class="keyword">const</span> &amp;loc,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=<a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>)
+<a name="l00096"></a>00096 {
+<a name="l00097"></a>00097 <span class="keywordflow">return</span> <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(begin,end,std::use_facet&lt;info&gt;(loc).encoding(),how);
+<a name="l00098"></a>00098 }
+<a name="l00099"></a>00099
+<a name="l00103"></a>00103
+<a name="l00104"></a>00104 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00105"></a><a class="code" href="group__codepage.html#ga26e823a630dbaecdfbc933ecc0a5c5be">00105</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__codepage.html#gad659f9c9c8b291e2ac6af24c49b42e43">to_utf</a>(std::string <span class="keyword">const</span> &amp;text,std::string <span class="keyword">const</span> &amp;charset,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=<a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>)
+<a name="l00106"></a>00106 {
+<a name="l00107"></a>00107 <span class="keywordflow">return</span> to_utf&lt;CharType&gt;(text.c_str(),text.c_str()+text.size(),charset,how);
+<a name="l00108"></a>00108 }
+<a name="l00109"></a>00109
+<a name="l00113"></a>00113 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00114"></a><a class="code" href="group__codepage.html#ga878bd2dcc00621d4e4e7d3d98f39736d">00114</a> std::string <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;text,std::string <span class="keyword">const</span> &amp;charset,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=<a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>)
+<a name="l00115"></a>00115 {
+<a name="l00116"></a>00116 <span class="keywordflow">return</span> <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(text.c_str(),text.c_str()+text.size(),charset,how);
+<a name="l00117"></a>00117 }
+<a name="l00118"></a>00118
+<a name="l00122"></a>00122 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00123"></a><a class="code" href="group__codepage.html#ga42ab3fd3274363286d34088a376581d3">00123</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__codepage.html#gad659f9c9c8b291e2ac6af24c49b42e43">to_utf</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *text,std::string <span class="keyword">const</span> &amp;charset,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=<a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>)
+<a name="l00124"></a>00124 {
+<a name="l00125"></a>00125 <span class="keywordtype">char</span> <span class="keyword">const</span> *text_end = text;
+<a name="l00126"></a>00126 <span class="keywordflow">while</span>(*text_end)
+<a name="l00127"></a>00127 text_end++;
+<a name="l00128"></a>00128 <span class="keywordflow">return</span> to_utf&lt;CharType&gt;(text,text_end,charset,how);
+<a name="l00129"></a>00129 }
+<a name="l00130"></a>00130
+<a name="l00134"></a>00134 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00135"></a><a class="code" href="group__codepage.html#gac56907f3f3585a922e4f44cf86638851">00135</a> std::string <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(CharType <span class="keyword">const</span> *text,std::string <span class="keyword">const</span> &amp;charset,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=<a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>)
+<a name="l00136"></a>00136 {
+<a name="l00137"></a>00137 CharType <span class="keyword">const</span> *text_end = text;
+<a name="l00138"></a>00138 <span class="keywordflow">while</span>(*text_end)
+<a name="l00139"></a>00139 text_end++;
+<a name="l00140"></a>00140 <span class="keywordflow">return</span> <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(text,text_end,charset,how);
+<a name="l00141"></a>00141 }
+<a name="l00142"></a>00142
+<a name="l00148"></a>00148 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00149"></a><a class="code" href="group__codepage.html#ga24d4f73f7ed314ba5b992b226c341b07">00149</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__codepage.html#gad659f9c9c8b291e2ac6af24c49b42e43">to_utf</a>(std::string <span class="keyword">const</span> &amp;text,std::locale <span class="keyword">const</span> &amp;loc,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=<a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>)
+<a name="l00150"></a>00150 {
+<a name="l00151"></a>00151 <span class="keywordflow">return</span> to_utf&lt;CharType&gt;(text.c_str(),text.c_str()+text.size(),loc,how);
+<a name="l00152"></a>00152 }
+<a name="l00153"></a>00153
+<a name="l00159"></a>00159 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00160"></a><a class="code" href="group__codepage.html#ga9b81fc6055ce081bf0a86681be6ce51e">00160</a> std::string <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;text,std::locale <span class="keyword">const</span> &amp;loc,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=<a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>)
+<a name="l00161"></a>00161 {
+<a name="l00162"></a>00162 <span class="keywordflow">return</span> <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(text.c_str(),text.c_str()+text.size(),loc,how);
+<a name="l00163"></a>00163 }
+<a name="l00164"></a>00164
+<a name="l00170"></a>00170 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00171"></a><a class="code" href="group__codepage.html#gae2b0ba250a16567c0ad8919be8061d6e">00171</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__codepage.html#gad659f9c9c8b291e2ac6af24c49b42e43">to_utf</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *text,std::locale <span class="keyword">const</span> &amp;loc,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=<a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>)
+<a name="l00172"></a>00172 {
+<a name="l00173"></a>00173 <span class="keywordtype">char</span> <span class="keyword">const</span> *text_end = text;
+<a name="l00174"></a>00174 <span class="keywordflow">while</span>(*text_end)
+<a name="l00175"></a>00175 text_end++;
+<a name="l00176"></a>00176 <span class="keywordflow">return</span> to_utf&lt;CharType&gt;(text,text_end,loc,how);
+<a name="l00177"></a>00177 }
+<a name="l00178"></a>00178
+<a name="l00184"></a>00184 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00185"></a><a class="code" href="group__codepage.html#gab9f8f0e62bdfd258a99a627f8b88eb34">00185</a> std::string <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(CharType <span class="keyword">const</span> *text,std::locale <span class="keyword">const</span> &amp;loc,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=<a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>)
+<a name="l00186"></a>00186 {
+<a name="l00187"></a>00187 CharType <span class="keyword">const</span> *text_end = text;
+<a name="l00188"></a>00188 <span class="keywordflow">while</span>(*text_end)
+<a name="l00189"></a>00189 text_end++;
+<a name="l00190"></a>00190 <span class="keywordflow">return</span> <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(text,text_end,loc,how);
+<a name="l00191"></a>00191 }
+<a name="l00192"></a>00192
+<a name="l00193"></a>00193
+<a name="l00197"></a>00197
+<a name="l00198"></a>00198 BOOST_LOCALE_DECL
+<a name="l00199"></a>00199 std::string <a class="code" href="group__codepage.html#ga7eda9058b8cbac9b05886bcc894faeff">between</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *begin,
+<a name="l00200"></a>00200 <span class="keywordtype">char</span> <span class="keyword">const</span> *end,
+<a name="l00201"></a>00201 std::string <span class="keyword">const</span> &amp;to_encoding,
+<a name="l00202"></a>00202 std::string <span class="keyword">const</span> &amp;from_encoding,
+<a name="l00203"></a>00203 <a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=<a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>);
+<a name="l00204"></a>00204
+<a name="l00208"></a>00208
+<a name="l00209"></a>00209 <span class="keyword">inline</span>
+<a name="l00210"></a><a class="code" href="group__codepage.html#ga612607a8616add30cf21ceb086e664d5">00210</a> std::string <a class="code" href="group__codepage.html#ga7eda9058b8cbac9b05886bcc894faeff">between</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *text,
+<a name="l00211"></a>00211 std::string <span class="keyword">const</span> &amp;to_encoding,
+<a name="l00212"></a>00212 std::string <span class="keyword">const</span> &amp;from_encoding,
+<a name="l00213"></a>00213 <a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=<a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>)
+<a name="l00214"></a>00214 {
+<a name="l00215"></a>00215 <span class="keywordtype">char</span> <span class="keyword">const</span> *end=text;
+<a name="l00216"></a>00216 <span class="keywordflow">while</span>(*end)
+<a name="l00217"></a>00217 end++;
+<a name="l00218"></a>00218 <span class="keywordflow">return</span> <a class="code" href="group__codepage.html#ga7eda9058b8cbac9b05886bcc894faeff">boost::locale::conv::between</a>(text,end,to_encoding,from_encoding,how);
+<a name="l00219"></a>00219 }
+<a name="l00220"></a>00220
+<a name="l00224"></a>00224 <span class="keyword">inline</span>
+<a name="l00225"></a><a class="code" href="group__codepage.html#gad7f6c33cf95749ab48174ccafddf7b62">00225</a> std::string <a class="code" href="group__codepage.html#ga7eda9058b8cbac9b05886bcc894faeff">between</a>(std::string <span class="keyword">const</span> &amp;text,
+<a name="l00226"></a>00226 std::string <span class="keyword">const</span> &amp;to_encoding,
+<a name="l00227"></a>00227 std::string <span class="keyword">const</span> &amp;from_encoding,
+<a name="l00228"></a>00228 <a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=<a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>)
+<a name="l00229"></a>00229 {
+<a name="l00230"></a>00230 <span class="keywordflow">return</span> <a class="code" href="group__codepage.html#ga7eda9058b8cbac9b05886bcc894faeff">boost::locale::conv::between</a>(text.c_str(),text.c_str()+text.size(),to_encoding,from_encoding,how);
+<a name="l00231"></a>00231 }
+<a name="l00232"></a>00232
+<a name="l00234"></a>00234
+<a name="l00235"></a>00235 <span class="keyword">template</span>&lt;&gt;
+<a name="l00236"></a>00236 BOOST_LOCALE_DECL std::basic_string&lt;char&gt; <a class="code" href="group__codepage.html#gad659f9c9c8b291e2ac6af24c49b42e43">to_utf</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *begin,<span class="keywordtype">char</span> <span class="keyword">const</span> *end,std::string <span class="keyword">const</span> &amp;charset,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how);
+<a name="l00237"></a>00237
+<a name="l00238"></a>00238 <span class="keyword">template</span>&lt;&gt;
+<a name="l00239"></a>00239 BOOST_LOCALE_DECL std::string <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *begin,<span class="keywordtype">char</span> <span class="keyword">const</span> *end,std::string <span class="keyword">const</span> &amp;charset,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how);
+<a name="l00240"></a>00240
+<a name="l00241"></a>00241 <span class="keyword">template</span>&lt;&gt;
+<a name="l00242"></a>00242 BOOST_LOCALE_DECL std::basic_string&lt;wchar_t&gt; <a class="code" href="group__codepage.html#gad659f9c9c8b291e2ac6af24c49b42e43">to_utf</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *begin,<span class="keywordtype">char</span> <span class="keyword">const</span> *end,std::string <span class="keyword">const</span> &amp;charset,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how);
+<a name="l00243"></a>00243
+<a name="l00244"></a>00244 <span class="keyword">template</span>&lt;&gt;
+<a name="l00245"></a>00245 BOOST_LOCALE_DECL std::string <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(<span class="keywordtype">wchar_t</span> <span class="keyword">const</span> *begin,<span class="keywordtype">wchar_t</span> <span class="keyword">const</span> *end,std::string <span class="keyword">const</span> &amp;charset,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how);
+<a name="l00246"></a>00246
+<a name="l00247"></a>00247 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR16_T</span>
+<a name="l00248"></a>00248 <span class="preprocessor"></span> <span class="keyword">template</span>&lt;&gt;
+<a name="l00249"></a>00249 BOOST_LOCALE_DECL std::basic_string&lt;char16_t&gt; <a class="code" href="group__codepage.html#gad659f9c9c8b291e2ac6af24c49b42e43">to_utf</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *begin,<span class="keywordtype">char</span> <span class="keyword">const</span> *end,std::string <span class="keyword">const</span> &amp;charset,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how);
+<a name="l00250"></a>00250
+<a name="l00251"></a>00251 <span class="keyword">template</span>&lt;&gt;
+<a name="l00252"></a>00252 BOOST_LOCALE_DECL std::string <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(char16_t <span class="keyword">const</span> *begin,char16_t <span class="keyword">const</span> *end,std::string <span class="keyword">const</span> &amp;charset,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how);
+<a name="l00253"></a>00253 <span class="preprocessor"> #endif</span>
+<a name="l00254"></a>00254 <span class="preprocessor"></span>
+<a name="l00255"></a>00255 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR32_T</span>
+<a name="l00256"></a>00256 <span class="preprocessor"></span> <span class="keyword">template</span>&lt;&gt;
+<a name="l00257"></a>00257 BOOST_LOCALE_DECL std::basic_string&lt;char32_t&gt; <a class="code" href="group__codepage.html#gad659f9c9c8b291e2ac6af24c49b42e43">to_utf</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *begin,<span class="keywordtype">char</span> <span class="keyword">const</span> *end,std::string <span class="keyword">const</span> &amp;charset,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how);
+<a name="l00258"></a>00258
+<a name="l00259"></a>00259 <span class="keyword">template</span>&lt;&gt;
+<a name="l00260"></a>00260 BOOST_LOCALE_DECL std::string <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(char32_t <span class="keyword">const</span> *begin,char32_t <span class="keyword">const</span> *end,std::string <span class="keyword">const</span> &amp;charset,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how);
+<a name="l00261"></a>00261 <span class="preprocessor"> #endif</span>
+<a name="l00262"></a>00262 <span class="preprocessor"></span>
+<a name="l00263"></a>00263 <span class="keyword">namespace </span>details {
+<a name="l00264"></a>00264
+<a name="l00265"></a>00265 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharOut,<span class="keyword">typename</span> CharIn&gt;
+<a name="l00266"></a>00266 <span class="keyword">struct </span>utf_to_utf_traits {
+<a name="l00267"></a>00267 <span class="keyword">static</span> std::basic_string&lt;CharOut&gt;
+<a name="l00268"></a>00268 convert(CharIn <span class="keyword">const</span> *begin,CharIn <span class="keyword">const</span> *end,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how)
+<a name="l00269"></a>00269 {
+<a name="l00270"></a>00270 <span class="comment">// Make more efficient in fututre - UTF-16/UTF-32 should be quite</span>
+<a name="l00271"></a>00271 <span class="comment">// simple and fast</span>
+<a name="l00272"></a>00272 <span class="keywordflow">return</span> to_utf&lt;CharOut&gt;(<a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(begin,end,<span class="stringliteral">&quot;UTF-8&quot;</span>,how),<span class="stringliteral">&quot;UTF-8&quot;</span>,how);
+<a name="l00273"></a>00273 }
+<a name="l00274"></a>00274 };
+<a name="l00275"></a>00275 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharOut&gt;
+<a name="l00276"></a>00276 <span class="keyword">struct </span>utf_to_utf_traits&lt;CharOut,char&gt; {
+<a name="l00277"></a>00277 <span class="keyword">static</span> std::basic_string&lt;CharOut&gt;
+<a name="l00278"></a>00278 convert(<span class="keywordtype">char</span> <span class="keyword">const</span> *begin,<span class="keywordtype">char</span> <span class="keyword">const</span> *end,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how)
+<a name="l00279"></a>00279 {
+<a name="l00280"></a>00280 <span class="keywordflow">return</span> to_utf&lt;CharOut&gt;(begin,end,<span class="stringliteral">&quot;UTF-8&quot;</span>,how);
+<a name="l00281"></a>00281 }
+<a name="l00282"></a>00282 };
+<a name="l00283"></a>00283 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharIn&gt;
+<a name="l00284"></a>00284 <span class="keyword">struct </span>utf_to_utf_traits&lt;char,CharIn&gt; {
+<a name="l00285"></a>00285 <span class="keyword">static</span> std::string
+<a name="l00286"></a>00286 convert(CharIn <span class="keyword">const</span> *begin,CharIn <span class="keyword">const</span> *end,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how)
+<a name="l00287"></a>00287 {
+<a name="l00288"></a>00288 <span class="keywordflow">return</span> <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(begin,end,<span class="stringliteral">&quot;UTF-8&quot;</span>,how);
+<a name="l00289"></a>00289 }
+<a name="l00290"></a>00290 };
+<a name="l00291"></a>00291 <span class="keyword">template</span>&lt;&gt;
+<a name="l00292"></a>00292 <span class="keyword">struct </span>utf_to_utf_traits&lt;char,char&gt; { <span class="comment">// just test valid</span>
+<a name="l00293"></a>00293 <span class="keyword">static</span> std::string
+<a name="l00294"></a>00294 convert(<span class="keywordtype">char</span> <span class="keyword">const</span> *begin,<span class="keywordtype">char</span> <span class="keyword">const</span> *end,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how)
+<a name="l00295"></a>00295 {
+<a name="l00296"></a>00296 <span class="keywordflow">return</span> <a class="code" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a>(begin,end,<span class="stringliteral">&quot;UTF-8&quot;</span>,how);
+<a name="l00297"></a>00297 }
+<a name="l00298"></a>00298 };
+<a name="l00299"></a>00299 }
+<a name="l00300"></a>00300
+<a name="l00302"></a>00302
+<a name="l00306"></a>00306 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharOut,<span class="keyword">typename</span> CharIn&gt;
+<a name="l00307"></a>00307 std::basic_string&lt;CharOut&gt;
+<a name="l00308"></a><a class="code" href="group__codepage.html#ga2de4d9d38004e5d7146abf2bd6a3df0b">00308</a> <a class="code" href="group__codepage.html#ga2de4d9d38004e5d7146abf2bd6a3df0b">utf_to_utf</a>(CharIn <span class="keyword">const</span> *begin,CharIn <span class="keyword">const</span> *end,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how = <a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>)
+<a name="l00309"></a>00309 {
+<a name="l00310"></a>00310 <span class="keywordflow">return</span> details::utf_to_utf_traits&lt;CharOut,CharIn&gt;::convert(begin,end,how);
+<a name="l00311"></a>00311 }
+<a name="l00312"></a>00312
+<a name="l00316"></a>00316 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharOut,<span class="keyword">typename</span> CharIn&gt;
+<a name="l00317"></a>00317 std::basic_string&lt;CharOut&gt;
+<a name="l00318"></a><a class="code" href="group__codepage.html#gae36d1fa29f675c4f13164afd8e0fabde">00318</a> <a class="code" href="group__codepage.html#ga2de4d9d38004e5d7146abf2bd6a3df0b">utf_to_utf</a>(CharIn <span class="keyword">const</span> *str,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how = <a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>)
+<a name="l00319"></a>00319 {
+<a name="l00320"></a>00320 CharIn <span class="keyword">const</span> *end = str;
+<a name="l00321"></a>00321 <span class="keywordflow">while</span>(*end)
+<a name="l00322"></a>00322 end++;
+<a name="l00323"></a>00323 <span class="keywordflow">return</span> utf_to_utf&lt;CharOut,CharIn&gt;(str,end,how);
+<a name="l00324"></a>00324 }
+<a name="l00325"></a>00325
+<a name="l00326"></a>00326
+<a name="l00330"></a>00330 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharOut,<span class="keyword">typename</span> CharIn&gt;
+<a name="l00331"></a>00331 std::basic_string&lt;CharOut&gt;
+<a name="l00332"></a><a class="code" href="group__codepage.html#ga2aa7d34682ff4e66b297ab5d75e1de51">00332</a> <a class="code" href="group__codepage.html#ga2de4d9d38004e5d7146abf2bd6a3df0b">utf_to_utf</a>(std::basic_string&lt;CharIn&gt; <span class="keyword">const</span> &amp;str,<a class="code" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how = <a class="code" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" title="Default method - skip.">default_method</a>)
+<a name="l00333"></a>00333 {
+<a name="l00334"></a>00334 <span class="keywordflow">return</span> utf_to_utf&lt;CharOut,CharIn&gt;(str.c_str(),str.c_str()+str.size(),how);
+<a name="l00335"></a>00335 }
+<a name="l00336"></a>00336
+<a name="l00337"></a>00337
+<a name="l00339"></a>00339
+<a name="l00340"></a>00340 } <span class="comment">// conv</span>
+<a name="l00341"></a>00341
+<a name="l00342"></a>00342 } <span class="comment">// locale</span>
+<a name="l00343"></a>00343 } <span class="comment">// boost</span>
+<a name="l00344"></a>00344
+<a name="l00345"></a>00345 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00346"></a>00346 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l00347"></a>00347 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00348"></a>00348 <span class="preprocessor"></span>
+<a name="l00349"></a>00349 <span class="preprocessor">#endif</span>
+<a name="l00350"></a>00350 <span class="preprocessor"></span>
+<a name="l00351"></a>00351 <span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+<a name="l00352"></a>00352
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/examples.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/examples.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Examples</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li class="current">Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Examples</h1> </div>
+</div>
+<div class="contents">
+Here is a list of all examples:<ul>
+<li><a class="el" href="boundary_8cpp-example.html">boundary.cpp</a></li>
+
+<li><a class="el" href="calendar_8cpp-example.html">calendar.cpp</a></li>
+
+<li><a class="el" href="collate_8cpp-example.html">collate.cpp</a></li>
+
+<li><a class="el" href="conversions_8cpp-example.html">conversions.cpp</a></li>
+
+<li><a class="el" href="hello_8cpp-example.html">hello.cpp</a></li>
+
+<li><a class="el" href="wboundary_8cpp-example.html">wboundary.cpp</a></li>
+
+<li><a class="el" href="wconversions_8cpp-example.html">wconversions.cpp</a></li>
+
+<li><a class="el" href="whello_8cpp-example.html">whello.cpp</a></li>
+
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/facets_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/facets_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,229 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/boundary/facets.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/boundary/facets.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_BOUNDARY_FACETS_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_BOUNDARY_FACETS_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#include &lt;boost/locale/boundary/types.hpp&gt;</span>
+<a name="l00013"></a>00013 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#include &lt;locale&gt;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022
+<a name="l00023"></a>00023 <span class="keyword">namespace </span>boost {
+<a name="l00024"></a>00024
+<a name="l00025"></a>00025 <span class="keyword">namespace </span>locale {
+<a name="l00026"></a>00026
+<a name="l00030"></a>00030 <span class="keyword">namespace </span>boundary {
+<a name="l00036"></a>00036
+<a name="l00037"></a>00037
+<a name="l00042"></a><a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html">00042</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html" title="This structure is used for representing boundary point that follows the offset.">break_info</a> {
+<a name="l00043"></a>00043
+<a name="l00047"></a><a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a2ad400451f8cf8ca04924a26cb694043">00047</a> <a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a2ad400451f8cf8ca04924a26cb694043">break_info</a>() :
+<a name="l00048"></a>00048 <a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a47cdf1764bf8e294ea8a1079501a8c44">offset</a>(0),
+<a name="l00049"></a>00049 <a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a1a9b497daacb471f297682101696f4eb">rule</a>(0)
+<a name="l00050"></a>00050 {
+<a name="l00051"></a>00051 }
+<a name="l00056"></a><a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#ab2012ba50dc8730bf7e2b448fff8be33">00056</a> <a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a2ad400451f8cf8ca04924a26cb694043">break_info</a>(<span class="keywordtype">size_t</span> v) :
+<a name="l00057"></a>00057 <a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a47cdf1764bf8e294ea8a1079501a8c44">offset</a>(v),
+<a name="l00058"></a>00058 <a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a1a9b497daacb471f297682101696f4eb">rule</a>(0)
+<a name="l00059"></a>00059 {
+<a name="l00060"></a>00060 }
+<a name="l00061"></a>00061
+<a name="l00065"></a><a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a47cdf1764bf8e294ea8a1079501a8c44">00065</a> <span class="keywordtype">size_t</span> <a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a47cdf1764bf8e294ea8a1079501a8c44">offset</a>;
+<a name="l00070"></a><a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a1a9b497daacb471f297682101696f4eb">00070</a> <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> <a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a1a9b497daacb471f297682101696f4eb">rule</a>;
+<a name="l00071"></a>00071
+<a name="l00076"></a><a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a6ef38e6f115ed9121e4d8f6189f6c4e2">00076</a> <span class="keywordtype">bool</span> <a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a6ef38e6f115ed9121e4d8f6189f6c4e2">operator&lt;</a>(<a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html" title="This structure is used for representing boundary point that follows the offset.">break_info</a> <span class="keyword">const</span> &amp;other)<span class="keyword"> const</span>
+<a name="l00077"></a>00077 <span class="keyword"> </span>{
+<a name="l00078"></a>00078 <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a47cdf1764bf8e294ea8a1079501a8c44">offset</a> &lt; other.<a class="code" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a47cdf1764bf8e294ea8a1079501a8c44">offset</a>;
+<a name="l00079"></a>00079 }
+<a name="l00080"></a>00080 };
+<a name="l00081"></a>00081
+<a name="l00086"></a><a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">00086</a> <span class="keyword">typedef</span> std::vector&lt;break_info&gt; index_type;
+<a name="l00087"></a>00087
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00090"></a>00090 <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html" title="This facet generates an index for boundary analysis for a given text.">boundary_indexing</a>;
+<a name="l00091"></a>00091
+<a name="l00092"></a>00092 <span class="preprocessor"> #ifdef BOOST_LOCALE_DOXYGEN</span>
+<a name="l00093"></a>00093 <span class="preprocessor"></span>
+<a name="l00094"></a>00094
+<a name="l00095"></a>00095
+<a name="l00096"></a>00096
+<a name="l00097"></a>00097
+<a name="l00098"></a>00098
+<a name="l00099"></a>00099 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Char&gt;
+<a name="l00100"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html">00100</a> <span class="keyword">class </span>BOOST_LOCALE_DECL <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html" title="This facet generates an index for boundary analysis for a given text.">boundary_indexing</a> : <span class="keyword">public</span> std::locale::facet {
+<a name="l00101"></a>00101 <span class="keyword">public</span>:
+<a name="l00105"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html#a251d097b8498d6dade6110b0829c8cf5">00105</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html" title="This facet generates an index for boundary analysis for a given text.">boundary_indexing</a>(<span class="keywordtype">size_t</span> refs=0) : std::locale::facet(refs)
+<a name="l00106"></a>00106 {
+<a name="l00107"></a>00107 }
+<a name="l00115"></a>00115 <span class="keyword">virtual</span> <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> map(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> t,Char <span class="keyword">const</span> *begin,Char <span class="keyword">const</span> *end) <span class="keyword">const</span> = 0;
+<a name="l00119"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html#a6ec435e58e34f70046f62ac0314c1a58">00119</a> <span class="keyword">static</span> std::locale::id id;
+<a name="l00120"></a>00120
+<a name="l00121"></a>00121 <span class="preprocessor"> #if defined (__SUNPRO_CC) &amp;&amp; defined (_RWSTD_VER)</span>
+<a name="l00122"></a>00122 <span class="preprocessor"></span> std::locale::id&amp; __get_id (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> id; }
+<a name="l00123"></a>00123 <span class="preprocessor"> #endif</span>
+<a name="l00124"></a>00124 <span class="preprocessor"></span> };
+<a name="l00125"></a>00125
+<a name="l00126"></a>00126 <span class="preprocessor"> #else</span>
+<a name="l00127"></a>00127 <span class="preprocessor"></span>
+<a name="l00128"></a>00128 <span class="keyword">template</span>&lt;&gt;
+<a name="l00129"></a>00129 <span class="keyword">class </span>BOOST_LOCALE_DECL boundary_indexing&lt;char&gt; : <span class="keyword">public</span> std::locale::facet {
+<a name="l00130"></a>00130 <span class="keyword">public</span>:
+<a name="l00131"></a>00131 boundary_indexing(<span class="keywordtype">size_t</span> refs=0) : std::locale::facet(refs)
+<a name="l00132"></a>00132 {
+<a name="l00133"></a>00133 }
+<a name="l00134"></a>00134 <span class="keyword">virtual</span> <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> map(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> t,<span class="keywordtype">char</span> <span class="keyword">const</span> *begin,<span class="keywordtype">char</span> <span class="keyword">const</span> *end) <span class="keyword">const</span> = 0;
+<a name="l00135"></a>00135 <span class="keyword">static</span> std::locale::id id;
+<a name="l00136"></a>00136 <span class="preprocessor"> #if defined (__SUNPRO_CC) &amp;&amp; defined (_RWSTD_VER)</span>
+<a name="l00137"></a>00137 <span class="preprocessor"></span> std::locale::id&amp; __get_id (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> id; }
+<a name="l00138"></a>00138 <span class="preprocessor"> #endif</span>
+<a name="l00139"></a>00139 <span class="preprocessor"></span> };
+<a name="l00140"></a>00140
+<a name="l00141"></a>00141 <span class="keyword">template</span>&lt;&gt;
+<a name="l00142"></a>00142 <span class="keyword">class </span>BOOST_LOCALE_DECL boundary_indexing&lt;wchar_t&gt; : <span class="keyword">public</span> std::locale::facet {
+<a name="l00143"></a>00143 <span class="keyword">public</span>:
+<a name="l00144"></a>00144 boundary_indexing(<span class="keywordtype">size_t</span> refs=0) : std::locale::facet(refs)
+<a name="l00145"></a>00145 {
+<a name="l00146"></a>00146 }
+<a name="l00147"></a>00147 <span class="keyword">virtual</span> <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> map(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> t,<span class="keywordtype">wchar_t</span> <span class="keyword">const</span> *begin,<span class="keywordtype">wchar_t</span> <span class="keyword">const</span> *end) <span class="keyword">const</span> = 0;
+<a name="l00148"></a>00148
+<a name="l00149"></a>00149 <span class="keyword">static</span> std::locale::id id;
+<a name="l00150"></a>00150 <span class="preprocessor"> #if defined (__SUNPRO_CC) &amp;&amp; defined (_RWSTD_VER)</span>
+<a name="l00151"></a>00151 <span class="preprocessor"></span> std::locale::id&amp; __get_id (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> id; }
+<a name="l00152"></a>00152 <span class="preprocessor"> #endif</span>
+<a name="l00153"></a>00153 <span class="preprocessor"></span> };
+<a name="l00154"></a>00154
+<a name="l00155"></a>00155 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR16_T</span>
+<a name="l00156"></a>00156 <span class="preprocessor"></span> <span class="keyword">template</span>&lt;&gt;
+<a name="l00157"></a>00157 <span class="keyword">class </span>BOOST_LOCALE_DECL boundary_indexing&lt;char16_t&gt; : <span class="keyword">public</span> std::locale::facet {
+<a name="l00158"></a>00158 <span class="keyword">public</span>:
+<a name="l00159"></a>00159 boundary_indexing(<span class="keywordtype">size_t</span> refs=0) : std::locale::facet(refs)
+<a name="l00160"></a>00160 {
+<a name="l00161"></a>00161 }
+<a name="l00162"></a>00162 <span class="keyword">virtual</span> <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> map(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> t,char16_t <span class="keyword">const</span> *begin,char16_t <span class="keyword">const</span> *end) <span class="keyword">const</span> = 0;
+<a name="l00163"></a>00163 <span class="keyword">static</span> std::locale::id id;
+<a name="l00164"></a>00164 <span class="preprocessor"> #if defined (__SUNPRO_CC) &amp;&amp; defined (_RWSTD_VER)</span>
+<a name="l00165"></a>00165 <span class="preprocessor"></span> std::locale::id&amp; __get_id (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> id; }
+<a name="l00166"></a>00166 <span class="preprocessor"> #endif</span>
+<a name="l00167"></a>00167 <span class="preprocessor"></span> };
+<a name="l00168"></a>00168 <span class="preprocessor"> #endif</span>
+<a name="l00169"></a>00169 <span class="preprocessor"></span>
+<a name="l00170"></a>00170 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR32_T</span>
+<a name="l00171"></a>00171 <span class="preprocessor"></span> <span class="keyword">template</span>&lt;&gt;
+<a name="l00172"></a>00172 <span class="keyword">class </span>BOOST_LOCALE_DECL boundary_indexing&lt;char32_t&gt; : <span class="keyword">public</span> std::locale::facet {
+<a name="l00173"></a>00173 <span class="keyword">public</span>:
+<a name="l00174"></a>00174 boundary_indexing(<span class="keywordtype">size_t</span> refs=0) : std::locale::facet(refs)
+<a name="l00175"></a>00175 {
+<a name="l00176"></a>00176 }
+<a name="l00177"></a>00177 <span class="keyword">virtual</span> <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> map(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> t,char32_t <span class="keyword">const</span> *begin,char32_t <span class="keyword">const</span> *end) <span class="keyword">const</span> = 0;
+<a name="l00178"></a>00178 <span class="keyword">static</span> std::locale::id id;
+<a name="l00179"></a>00179 <span class="preprocessor"> #if defined (__SUNPRO_CC) &amp;&amp; defined (_RWSTD_VER)</span>
+<a name="l00180"></a>00180 <span class="preprocessor"></span> std::locale::id&amp; __get_id (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> id; }
+<a name="l00181"></a>00181 <span class="preprocessor"> #endif</span>
+<a name="l00182"></a>00182 <span class="preprocessor"></span> };
+<a name="l00183"></a>00183 <span class="preprocessor"> #endif</span>
+<a name="l00184"></a>00184 <span class="preprocessor"></span>
+<a name="l00185"></a>00185 <span class="preprocessor"> #endif</span>
+<a name="l00186"></a>00186 <span class="preprocessor"></span>
+<a name="l00190"></a>00190
+<a name="l00191"></a>00191
+<a name="l00192"></a>00192 } <span class="comment">// boundary</span>
+<a name="l00193"></a>00193
+<a name="l00194"></a>00194 } <span class="comment">// locale</span>
+<a name="l00195"></a>00195 } <span class="comment">// boost</span>
+<a name="l00196"></a>00196
+<a name="l00197"></a>00197
+<a name="l00198"></a>00198 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00199"></a>00199 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l00200"></a>00200 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00201"></a>00201 <span class="preprocessor"></span>
+<a name="l00202"></a>00202 <span class="preprocessor">#endif</span>
+<a name="l00203"></a>00203 <span class="preprocessor"></span><span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/faq.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/faq.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Frequently Asked Questions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="appendix.html">Appendix</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Frequently Asked Questions </h1> </div>
+</div>
+<div class="contents">
+<ul>
+<li><a class="anchor" id="faq_bad_cast"></a> <b>I try to use some Boost.Locale functions and I get an <code>std::bad_cast</code> exception thrown?</b> <br/>
+ <br/>
+ <b>Answer:</b> You probably try to use incorrect <code>std::locale</code> object. All Boost.Locale tools relay on <code>std::locale</code> object's facets. The locale object should be generated with <a class="el" href="classboost_1_1locale_1_1generator.html">generator</a> class and then passed to the function or alternatively global locale should be set using <code>std::locale::global()</code> function such that global locale (and default created one) would have required facets to use.</li>
+<li><a class="anchor" id="faq_number"></a> <b>I had installed global locale and try to write something to stream but still get wrong output?</b> For example: <div class="fragment"><pre class="fragment"><span class="preprocessor"> #include &lt;boost/locale.hpp&gt;</span>
+<span class="preprocessor"> #include &lt;iostream&gt;</span>
+ <span class="keywordtype">int</span> main()
+ {
+ <a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">boost::locale::generator</a> gen;
+ std::locale::global(gen(<span class="stringliteral">&quot;&quot;</span>));
+ std::cout &lt;&lt; <a class="code" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">boost::locale::as::date</a> &lt;&lt; <a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">std::time</a>(0) &lt;&lt; std::endl;
+ }
+</pre></div> Prints a number instead of a date. <br/>
+ <b>Answer:</b> You forget to imbue the locale to the stream. Changing the global locale does not affect the locale in existing <code>iostream</code> objects. Thus because <code>std::out</code> and other global streams were created before changing the global locale Boost.Locale manipulators have no effect. You need to write: <div class="fragment"><pre class="fragment"><span class="preprocessor"> #include &lt;boost/locale.hpp&gt;</span>
+<span class="preprocessor"> #include &lt;iostream&gt;</span>
+ <span class="keywordtype">int</span> main()
+ {
+ <a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">boost::locale::generator</a> gen;
+ std::locale l = gen(<span class="stringliteral">&quot;&quot;</span>);
+ std::locale::global(l);
+ std::cout.imbue(l);
+ std::cout &lt;&lt; <a class="code" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">boost::locale::as::date</a> &lt;&lt; <a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">std::time</a>(0) &lt;&lt; std::endl;
+ }
+</pre></div> </li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/files.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/files.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: File Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">File List</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>File List</h1> </div>
+</div>
+<div class="contents">
+Here is a list of all documented files with brief descriptions:<table>
+ <tr><td class="indexkey">boost/locale/<b>boundary.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>collator.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>config.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>conversion.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>date_time.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>date_time_facet.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>encoding.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>format.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>formatting.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>generator.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>gnu_gettext.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>hold_ptr.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>info.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>localization_backend.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>message.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>time_zone.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/<b>util.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/boundary/<b>boundary_point.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/boundary/<b>facets.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/boundary/<b>index.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/boundary/<b>segment.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">boost/locale/boundary/<b>types.hpp</b> [code]</td><td class="indexvalue"></td></tr>
+</table>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/format_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/format_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,468 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/format.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/format.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_FORMAT_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_FORMAT_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#include &lt;boost/locale/message.hpp&gt;</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;boost/locale/formatting.hpp&gt;</span>
+<a name="l00018"></a>00018
+<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;sstream&gt;</span>
+<a name="l00020"></a>00020
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022 <span class="keyword">namespace </span>boost {
+<a name="l00023"></a>00023 <span class="keyword">namespace </span>locale {
+<a name="l00024"></a>00024
+<a name="l00032"></a>00032
+<a name="l00034"></a>00034 <span class="keyword">namespace </span>details {
+<a name="l00035"></a>00035
+<a name="l00036"></a>00036 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00037"></a>00037 <span class="keyword">struct </span>formattible {
+<a name="l00038"></a>00038 <span class="keyword">typedef</span> std::basic_ostream&lt;CharType&gt; stream_type;
+<a name="l00039"></a>00039 <span class="keyword">typedef</span> void (*writer_type)(stream_type &amp;output,<span class="keywordtype">void</span> <span class="keyword">const</span> *ptr);
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041 formattible() :
+<a name="l00042"></a>00042 pointer_(0),
+<a name="l00043"></a>00043 writer_(&amp;formattible::void_write)
+<a name="l00044"></a>00044 {
+<a name="l00045"></a>00045 }
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047 formattible(formattible <span class="keyword">const</span> &amp;other) :
+<a name="l00048"></a>00048 pointer_(other.pointer_),
+<a name="l00049"></a>00049 writer_(other.writer_)
+<a name="l00050"></a>00050 {
+<a name="l00051"></a>00051 }
+<a name="l00052"></a>00052
+<a name="l00053"></a>00053 formattible <span class="keyword">const</span> &amp;operator=(formattible <span class="keyword">const</span> &amp;other)
+<a name="l00054"></a>00054 {
+<a name="l00055"></a>00055 <span class="keywordflow">if</span>(<span class="keyword">this</span> != &amp;other) {
+<a name="l00056"></a>00056 pointer_=other.pointer_;
+<a name="l00057"></a>00057 writer_=other.writer_;
+<a name="l00058"></a>00058 }
+<a name="l00059"></a>00059 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00060"></a>00060 }
+<a name="l00061"></a>00061
+<a name="l00062"></a>00062 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Type&gt;
+<a name="l00063"></a>00063 formattible(Type <span class="keyword">const</span> &amp;value)
+<a name="l00064"></a>00064 {
+<a name="l00065"></a>00065 pointer_ = <span class="keyword">static_cast&lt;</span><span class="keywordtype">void</span> <span class="keyword">const </span>*<span class="keyword">&gt;</span>(&amp;value);
+<a name="l00066"></a>00066 writer_ = &amp;write&lt;Type&gt;;
+<a name="l00067"></a>00067 }
+<a name="l00068"></a>00068
+<a name="l00069"></a>00069 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Type&gt;
+<a name="l00070"></a>00070 formattible <span class="keyword">const</span> &amp;operator=(Type <span class="keyword">const</span> &amp;other)
+<a name="l00071"></a>00071 {
+<a name="l00072"></a>00072 *<span class="keyword">this</span> = formattible(other);
+<a name="l00073"></a>00073 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00074"></a>00074 }
+<a name="l00075"></a>00075
+<a name="l00076"></a>00076 <span class="keyword">friend</span> stream_type &amp;<a class="code" href="group__date__time.html#ga0055f16ba156eb9a3f333c2bf2eae815">operator&lt;&lt;</a>(stream_type &amp;out,formattible <span class="keyword">const</span> &amp;fmt)
+<a name="l00077"></a>00077 {
+<a name="l00078"></a>00078 fmt.writer_(out,fmt.pointer_);
+<a name="l00079"></a>00079 <span class="keywordflow">return</span> out;
+<a name="l00080"></a>00080 }
+<a name="l00081"></a>00081
+<a name="l00082"></a>00082 <span class="keyword">private</span>:
+<a name="l00083"></a>00083 <span class="keyword">static</span> <span class="keywordtype">void</span> void_write(stream_type &amp;output,<span class="keywordtype">void</span> <span class="keyword">const</span> * <span class="comment">/*ptr*/</span>)
+<a name="l00084"></a>00084 {
+<a name="l00085"></a>00085 CharType empty_string[1]={0};
+<a name="l00086"></a>00086 output&lt;&lt;empty_string;
+<a name="l00087"></a>00087 }
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Type&gt;
+<a name="l00090"></a>00090 <span class="keyword">static</span> <span class="keywordtype">void</span> write(stream_type &amp;output,<span class="keywordtype">void</span> <span class="keyword">const</span> *ptr)
+<a name="l00091"></a>00091 {
+<a name="l00092"></a>00092 output &lt;&lt; *static_cast&lt;Type const *&gt;(ptr);
+<a name="l00093"></a>00093 }
+<a name="l00094"></a>00094
+<a name="l00095"></a>00095 <span class="keywordtype">void</span> <span class="keyword">const</span> *pointer_;
+<a name="l00096"></a>00096 writer_type writer_;
+<a name="l00097"></a>00097 }; <span class="comment">// formattible</span>
+<a name="l00098"></a>00098
+<a name="l00099"></a>00099 <span class="keyword">class </span>BOOST_LOCALE_DECL format_parser {
+<a name="l00100"></a>00100 <span class="keyword">public</span>:
+<a name="l00101"></a>00101 format_parser(std::ios_base &amp;ios,<span class="keywordtype">void</span> *,<span class="keywordtype">void</span> (*imbuer)(<span class="keywordtype">void</span> *,std::locale <span class="keyword">const</span> &amp;));
+<a name="l00102"></a>00102 ~format_parser();
+<a name="l00103"></a>00103
+<a name="l00104"></a>00104 <span class="keywordtype">unsigned</span> get_position();
+<a name="l00105"></a>00105
+<a name="l00106"></a>00106 <span class="keywordtype">void</span> set_one_flag(std::string <span class="keyword">const</span> &amp;key,std::string <span class="keyword">const</span> &amp;value);
+<a name="l00107"></a>00107
+<a name="l00108"></a>00108 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00109"></a>00109 <span class="keywordtype">void</span> set_flag_with_str(std::string <span class="keyword">const</span> &amp;key,std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;value)
+<a name="l00110"></a>00110 {
+<a name="l00111"></a>00111 <span class="keywordflow">if</span>(key==<span class="stringliteral">&quot;ftime&quot;</span> || key==<span class="stringliteral">&quot;strftime&quot;</span>) {
+<a name="l00112"></a>00112 <a class="code" href="group__manipulators.html#ga782b256b82922e6a5f32446787a6f7dc">as::strftime</a>(ios_);
+<a name="l00113"></a>00113 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios_).date_time_pattern(value);
+<a name="l00114"></a>00114 }
+<a name="l00115"></a>00115 }
+<a name="l00116"></a>00116 <span class="keywordtype">void</span> restore();
+<a name="l00117"></a>00117 <span class="keyword">private</span>:
+<a name="l00118"></a>00118 <span class="keywordtype">void</span> imbue(std::locale <span class="keyword">const</span> &amp;);
+<a name="l00119"></a>00119 format_parser(format_parser <span class="keyword">const</span> &amp;);
+<a name="l00120"></a>00120 <span class="keywordtype">void</span> operator=(format_parser <span class="keyword">const</span> &amp;);
+<a name="l00121"></a>00121
+<a name="l00122"></a>00122 std::ios_base &amp;ios_;
+<a name="l00123"></a>00123 <span class="keyword">struct </span>data;
+<a name="l00124"></a>00124 std::auto_ptr&lt;data&gt; d;
+<a name="l00125"></a>00125 };
+<a name="l00126"></a>00126
+<a name="l00127"></a>00127 }
+<a name="l00128"></a>00128
+<a name="l00130"></a>00130
+<a name="l00203"></a>00203 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00204"></a><a class="code" href="classboost_1_1locale_1_1basic__format.html">00204</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1basic__format.html" title="a printf like class that allows type-safe and locale aware message formatting">basic_format</a> {
+<a name="l00205"></a>00205 <span class="keyword">public</span>:
+<a name="l00206"></a><a class="code" href="classboost_1_1locale_1_1basic__format.html#a45c16f2e69842b8d223d240bbd6e210a">00206</a> <span class="keyword">typedef</span> CharType char_type;
+<a name="l00207"></a><a class="code" href="classboost_1_1locale_1_1basic__format.html#a75213e5cc9d113f6b25e72542a4841f5">00207</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html">basic_message&lt;char_type&gt;</a> <a class="code" href="classboost_1_1locale_1_1basic__message.html">message_type</a>;
+<a name="l00208"></a>00208
+<a name="l00209"></a>00209 <span class="keyword">typedef</span> details::formattible&lt;CharType&gt; formattible_type;
+<a name="l00211"></a>00211
+<a name="l00212"></a><a class="code" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">00212</a> <span class="keyword">typedef</span> std::basic_string&lt;CharType&gt; string_type;
+<a name="l00213"></a><a class="code" href="classboost_1_1locale_1_1basic__format.html#a6aba7e54f0065f2697d13ff8a859309a">00213</a> <span class="keyword">typedef</span> std::basic_ostream&lt;CharType&gt; stream_type;
+<a name="l00214"></a>00214
+<a name="l00215"></a>00215
+<a name="l00219"></a><a class="code" href="classboost_1_1locale_1_1basic__format.html#a4c885ae60a5b867863b79acb75feff9e">00219</a> <a class="code" href="classboost_1_1locale_1_1basic__format.html#a4c885ae60a5b867863b79acb75feff9e">basic_format</a>(<a class="code" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">string_type</a> format_string) :
+<a name="l00220"></a>00220 format_(format_string),
+<a name="l00221"></a>00221 translate_(false),
+<a name="l00222"></a>00222 parameters_count_(0)
+<a name="l00223"></a>00223 {
+<a name="l00224"></a>00224 }
+<a name="l00229"></a><a class="code" href="classboost_1_1locale_1_1basic__format.html#a155e8e60061da7461bbcc958d600c190">00229</a> <a class="code" href="classboost_1_1locale_1_1basic__format.html#a4c885ae60a5b867863b79acb75feff9e">basic_format</a>(<a class="code" href="classboost_1_1locale_1_1basic__message.html">message_type</a> <span class="keyword">const</span> &amp;trans) :
+<a name="l00230"></a>00230 message_(trans),
+<a name="l00231"></a>00231 translate_(true),
+<a name="l00232"></a>00232 parameters_count_(0)
+<a name="l00233"></a>00233 {
+<a name="l00234"></a>00234 }
+<a name="l00235"></a>00235
+<a name="l00240"></a>00240 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Formattible&gt;
+<a name="l00241"></a><a class="code" href="classboost_1_1locale_1_1basic__format.html#a63e45267da46ff25d09441ac52f21efc">00241</a> <a class="code" href="classboost_1_1locale_1_1basic__format.html" title="a printf like class that allows type-safe and locale aware message formatting">basic_format</a> &amp;<a class="code" href="classboost_1_1locale_1_1basic__format.html#a63e45267da46ff25d09441ac52f21efc">operator % </a>(Formattible <span class="keyword">const</span> &amp;<span class="keywordtype">object</span>)
+<a name="l00242"></a>00242 {
+<a name="l00243"></a>00243 add(formattible_type(<span class="keywordtype">object</span>));
+<a name="l00244"></a>00244 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00245"></a>00245 }
+<a name="l00246"></a>00246
+<a name="l00250"></a><a class="code" href="classboost_1_1locale_1_1basic__format.html#a6bc65d7993e3ab6ad51809ef8fb65400">00250</a> <a class="code" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">string_type</a> <a class="code" href="classboost_1_1locale_1_1basic__format.html#a6bc65d7993e3ab6ad51809ef8fb65400">str</a>(std::locale <span class="keyword">const</span> &amp;loc = std::locale())<span class="keyword"> const</span>
+<a name="l00251"></a>00251 <span class="keyword"> </span>{
+<a name="l00252"></a>00252 std::basic_ostringstream&lt;CharType&gt; buffer;
+<a name="l00253"></a>00253 buffer.imbue(loc);
+<a name="l00254"></a>00254 <a class="code" href="classboost_1_1locale_1_1basic__format.html#a457c9228d13e80da3c807a51aa5ef6cd">write</a>(buffer);
+<a name="l00255"></a>00255 <span class="keywordflow">return</span> buffer.str();
+<a name="l00256"></a>00256 }
+<a name="l00257"></a>00257
+<a name="l00261"></a><a class="code" href="classboost_1_1locale_1_1basic__format.html#a457c9228d13e80da3c807a51aa5ef6cd">00261</a> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1basic__format.html#a457c9228d13e80da3c807a51aa5ef6cd">write</a>(<a class="code" href="classboost_1_1locale_1_1basic__format.html#a6aba7e54f0065f2697d13ff8a859309a" title="output stream type for this type of character">stream_type</a> &amp;out)<span class="keyword"> const</span>
+<a name="l00262"></a>00262 <span class="keyword"> </span>{
+<a name="l00263"></a>00263 <a class="code" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">string_type</a> <a class="code" href="classboost_1_1locale_1_1basic__format.html" title="a printf like class that allows type-safe and locale aware message formatting">format</a>;
+<a name="l00264"></a>00264 <span class="keywordflow">if</span>(translate_)
+<a name="l00265"></a>00265 format = message_.<a class="code" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">str</a>(out.getloc(),<a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(out).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a08b1bb49e5806900bfa1901e869497a6">domain_id</a>());
+<a name="l00266"></a>00266 <span class="keywordflow">else</span>
+<a name="l00267"></a>00267 format = format_;
+<a name="l00268"></a>00268
+<a name="l00269"></a>00269 format_output(out,format);
+<a name="l00270"></a>00270
+<a name="l00271"></a>00271 }
+<a name="l00272"></a>00272
+<a name="l00273"></a>00273
+<a name="l00274"></a>00274 <span class="keyword">private</span>:
+<a name="l00275"></a>00275
+<a name="l00276"></a>00276 <span class="keyword">class </span>format_guard {
+<a name="l00277"></a>00277 <span class="keyword">public</span>:
+<a name="l00278"></a>00278 format_guard(details::format_parser &amp;fmt) :
+<a name="l00279"></a>00279 fmt_(&amp;fmt),
+<a name="l00280"></a>00280 restored_(false)
+<a name="l00281"></a>00281 {
+<a name="l00282"></a>00282 }
+<a name="l00283"></a>00283 <span class="keywordtype">void</span> restore()
+<a name="l00284"></a>00284 {
+<a name="l00285"></a>00285 <span class="keywordflow">if</span>(restored_)
+<a name="l00286"></a>00286 <span class="keywordflow">return</span>;
+<a name="l00287"></a>00287 fmt_-&gt;restore();
+<a name="l00288"></a>00288 restored_ = <span class="keyword">true</span>;
+<a name="l00289"></a>00289 }
+<a name="l00290"></a>00290 ~format_guard()
+<a name="l00291"></a>00291 {
+<a name="l00292"></a>00292 <span class="keywordflow">try</span> {
+<a name="l00293"></a>00293 restore();
+<a name="l00294"></a>00294 }
+<a name="l00295"></a>00295 <span class="keywordflow">catch</span>(...) {
+<a name="l00296"></a>00296 }
+<a name="l00297"></a>00297 }
+<a name="l00298"></a>00298 <span class="keyword">private</span>:
+<a name="l00299"></a>00299 details::format_parser *fmt_;
+<a name="l00300"></a>00300 <span class="keywordtype">bool</span> restored_;
+<a name="l00301"></a>00301 };
+<a name="l00302"></a>00302
+<a name="l00303"></a>00303 <span class="keywordtype">void</span> format_output(<a class="code" href="classboost_1_1locale_1_1basic__format.html#a6aba7e54f0065f2697d13ff8a859309a" title="output stream type for this type of character">stream_type</a> &amp;out,<a class="code" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">string_type</a> <span class="keyword">const</span> &amp;sformat)<span class="keyword"> const</span>
+<a name="l00304"></a>00304 <span class="keyword"> </span>{
+<a name="l00305"></a>00305 <a class="code" href="classboost_1_1locale_1_1basic__format.html#a45c16f2e69842b8d223d240bbd6e210a" title="Underlying character type.">char_type</a> obrk=<span class="charliteral">&#39;{&#39;</span>;
+<a name="l00306"></a>00306 <a class="code" href="classboost_1_1locale_1_1basic__format.html#a45c16f2e69842b8d223d240bbd6e210a" title="Underlying character type.">char_type</a> cbrk=<span class="charliteral">&#39;}&#39;</span>;
+<a name="l00307"></a>00307 <a class="code" href="classboost_1_1locale_1_1basic__format.html#a45c16f2e69842b8d223d240bbd6e210a" title="Underlying character type.">char_type</a> eq=<span class="charliteral">&#39;=&#39;</span>;
+<a name="l00308"></a>00308 <a class="code" href="classboost_1_1locale_1_1basic__format.html#a45c16f2e69842b8d223d240bbd6e210a" title="Underlying character type.">char_type</a> comma=<span class="charliteral">&#39;,&#39;</span>;
+<a name="l00309"></a>00309 <a class="code" href="classboost_1_1locale_1_1basic__format.html#a45c16f2e69842b8d223d240bbd6e210a" title="Underlying character type.">char_type</a> quote=<span class="charliteral">&#39;\&#39;&#39;</span>;
+<a name="l00310"></a>00310
+<a name="l00311"></a>00311 <span class="keywordtype">size_t</span> pos = 0;
+<a name="l00312"></a>00312 <span class="keywordtype">size_t</span> size=sformat.size();
+<a name="l00313"></a>00313 CharType <span class="keyword">const</span> *<a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>=sformat.c_str();
+<a name="l00314"></a>00314 <span class="keywordflow">while</span>(format[pos]!=0) {
+<a name="l00315"></a>00315 <span class="keywordflow">if</span>(format[pos] != obrk) {
+<a name="l00316"></a>00316 <span class="keywordflow">if</span>(format[pos]==cbrk &amp;&amp; format[pos+1]==cbrk) {
+<a name="l00317"></a>00317 out &lt;&lt; cbrk;
+<a name="l00318"></a>00318 pos+=2;
+<a name="l00319"></a>00319 }
+<a name="l00320"></a>00320 <span class="keywordflow">else</span> {
+<a name="l00321"></a>00321 out&lt;&lt;format[pos];
+<a name="l00322"></a>00322 pos++;
+<a name="l00323"></a>00323 }
+<a name="l00324"></a>00324 <span class="keywordflow">continue</span>;
+<a name="l00325"></a>00325 }
+<a name="l00326"></a>00326
+<a name="l00327"></a>00327 <span class="keywordflow">if</span>(pos+1 &lt; size &amp;&amp; format[pos+1]==obrk) {
+<a name="l00328"></a>00328 out &lt;&lt; obrk;
+<a name="l00329"></a>00329 pos+=2;
+<a name="l00330"></a>00330 <span class="keywordflow">continue</span>;
+<a name="l00331"></a>00331 }
+<a name="l00332"></a>00332 pos++;
+<a name="l00333"></a>00333
+<a name="l00334"></a>00334 details::format_parser fmt(out,static_cast&lt;void *&gt;(&amp;out),&amp;basic_format::imbue_locale);
+<a name="l00335"></a>00335
+<a name="l00336"></a>00336 format_guard guard(fmt);
+<a name="l00337"></a>00337
+<a name="l00338"></a>00338 <span class="keywordflow">while</span>(pos &lt; size) {
+<a name="l00339"></a>00339 std::string key;
+<a name="l00340"></a>00340 std::string svalue;
+<a name="l00341"></a>00341 <a class="code" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">string_type</a> value;
+<a name="l00342"></a>00342 <span class="keywordtype">bool</span> use_svalue = <span class="keyword">true</span>;
+<a name="l00343"></a>00343 <span class="keywordflow">for</span>(;format[pos];pos++) {
+<a name="l00344"></a>00344 <a class="code" href="classboost_1_1locale_1_1basic__format.html#a45c16f2e69842b8d223d240bbd6e210a" title="Underlying character type.">char_type</a> c=format[pos];
+<a name="l00345"></a>00345 <span class="keywordflow">if</span>(c==comma || c==eq || c==cbrk)
+<a name="l00346"></a>00346 <span class="keywordflow">break</span>;
+<a name="l00347"></a>00347 <span class="keywordflow">else</span> {
+<a name="l00348"></a>00348 key+=<span class="keyword">static_cast&lt;</span><span class="keywordtype">char</span><span class="keyword">&gt;</span>(c);
+<a name="l00349"></a>00349 }
+<a name="l00350"></a>00350 }
+<a name="l00351"></a>00351
+<a name="l00352"></a>00352 <span class="keywordflow">if</span>(format[pos]==eq) {
+<a name="l00353"></a>00353 pos++;
+<a name="l00354"></a>00354 <span class="keywordflow">if</span>(format[pos]==quote) {
+<a name="l00355"></a>00355 pos++;
+<a name="l00356"></a>00356 use_svalue = <span class="keyword">false</span>;
+<a name="l00357"></a>00357 <span class="keywordflow">while</span>(format[pos]) {
+<a name="l00358"></a>00358 <span class="keywordflow">if</span>(format[pos]==quote) {
+<a name="l00359"></a>00359 <span class="keywordflow">if</span>(format[pos+1]==quote) {
+<a name="l00360"></a>00360 value+=quote;
+<a name="l00361"></a>00361 pos+=2;
+<a name="l00362"></a>00362 }
+<a name="l00363"></a>00363 <span class="keywordflow">else</span> {
+<a name="l00364"></a>00364 pos++;
+<a name="l00365"></a>00365 <span class="keywordflow">break</span>;
+<a name="l00366"></a>00366 }
+<a name="l00367"></a>00367 }
+<a name="l00368"></a>00368 <span class="keywordflow">else</span> {
+<a name="l00369"></a>00369 value+=format[pos];
+<a name="l00370"></a>00370 pos++;
+<a name="l00371"></a>00371 }
+<a name="l00372"></a>00372 }
+<a name="l00373"></a>00373 }
+<a name="l00374"></a>00374 <span class="keywordflow">else</span> {
+<a name="l00375"></a>00375 <a class="code" href="classboost_1_1locale_1_1basic__format.html#a45c16f2e69842b8d223d240bbd6e210a" title="Underlying character type.">char_type</a> c;
+<a name="l00376"></a>00376 <span class="keywordflow">while</span>((c=format[pos])!=0 &amp;&amp; c!=comma &amp;&amp; c!=cbrk) {
+<a name="l00377"></a>00377 svalue+=<span class="keyword">static_cast&lt;</span><span class="keywordtype">char</span><span class="keyword">&gt;</span>(c);
+<a name="l00378"></a>00378 pos++;
+<a name="l00379"></a>00379 }
+<a name="l00380"></a>00380 }
+<a name="l00381"></a>00381 }
+<a name="l00382"></a>00382
+<a name="l00383"></a>00383 <span class="keywordflow">if</span>(use_svalue) {
+<a name="l00384"></a>00384 fmt.set_one_flag(key,svalue);
+<a name="l00385"></a>00385 }
+<a name="l00386"></a>00386 <span class="keywordflow">else</span>
+<a name="l00387"></a>00387 fmt.set_flag_with_str(key,value);
+<a name="l00388"></a>00388
+<a name="l00389"></a>00389 <span class="keywordflow">if</span>(format[pos]==comma) {
+<a name="l00390"></a>00390 pos++;
+<a name="l00391"></a>00391 <span class="keywordflow">continue</span>;
+<a name="l00392"></a>00392 }
+<a name="l00393"></a>00393 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(format[pos]==cbrk) {
+<a name="l00394"></a>00394 <span class="keywordtype">unsigned</span> position = fmt.get_position();
+<a name="l00395"></a>00395 out &lt;&lt; <span class="keyword">get</span>(position);
+<a name="l00396"></a>00396 guard.restore();
+<a name="l00397"></a>00397 pos++;
+<a name="l00398"></a>00398 <span class="keywordflow">break</span>;
+<a name="l00399"></a>00399 }
+<a name="l00400"></a>00400 <span class="keywordflow">else</span> {
+<a name="l00401"></a>00401 guard.restore();
+<a name="l00402"></a>00402 <span class="keywordflow">break</span>;
+<a name="l00403"></a>00403 }
+<a name="l00404"></a>00404 }
+<a name="l00405"></a>00405 }
+<a name="l00406"></a>00406 }
+<a name="l00407"></a>00407
+<a name="l00408"></a>00408
+<a name="l00409"></a>00409 <span class="comment">//</span>
+<a name="l00410"></a>00410 <span class="comment">// Non-copyable </span>
+<a name="l00411"></a>00411 <span class="comment">//</span>
+<a name="l00412"></a>00412 <a class="code" href="classboost_1_1locale_1_1basic__format.html#a4c885ae60a5b867863b79acb75feff9e">basic_format</a>(<a class="code" href="classboost_1_1locale_1_1basic__format.html#a4c885ae60a5b867863b79acb75feff9e">basic_format</a> <span class="keyword">const</span> &amp;other);
+<a name="l00413"></a>00413 <span class="keywordtype">void</span> operator=(<a class="code" href="classboost_1_1locale_1_1basic__format.html#a4c885ae60a5b867863b79acb75feff9e">basic_format</a> <span class="keyword">const</span> &amp;other);
+<a name="l00414"></a>00414
+<a name="l00415"></a>00415 <span class="keywordtype">void</span> add(formattible_type <span class="keyword">const</span> &amp;param)
+<a name="l00416"></a>00416 {
+<a name="l00417"></a>00417 <span class="keywordflow">if</span>(parameters_count_ &gt;= base_params_)
+<a name="l00418"></a>00418 ext_params_.push_back(param);
+<a name="l00419"></a>00419 <span class="keywordflow">else</span>
+<a name="l00420"></a>00420 parameters_[parameters_count_] = param;
+<a name="l00421"></a>00421 parameters_count_++;
+<a name="l00422"></a>00422 }
+<a name="l00423"></a>00423
+<a name="l00424"></a>00424 formattible_type <span class="keyword">get</span>(<span class="keywordtype">unsigned</span> id) <span class="keyword">const</span>
+<a name="l00425"></a>00425 {
+<a name="l00426"></a>00426 <span class="keywordflow">if</span>(<span class="keywordtype">id</span> &gt;= parameters_count_)
+<a name="l00427"></a>00427 <span class="keywordflow">return</span> formattible_type();
+<a name="l00428"></a>00428 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keywordtype">id</span> &gt;= base_params_)
+<a name="l00429"></a>00429 <span class="keywordflow">return</span> ext_params_[<span class="keywordtype">id</span> - base_params_];
+<a name="l00430"></a>00430 <span class="keywordflow">else</span>
+<a name="l00431"></a>00431 <span class="keywordflow">return</span> parameters_[id];
+<a name="l00432"></a>00432 }
+<a name="l00433"></a>00433
+<a name="l00434"></a>00434 <span class="keyword">static</span> <span class="keywordtype">void</span> imbue_locale(<span class="keywordtype">void</span> *ptr,std::locale <span class="keyword">const</span> &amp;l)
+<a name="l00435"></a>00435 {
+<a name="l00436"></a>00436 <span class="keyword">reinterpret_cast&lt;</span><a class="code" href="classboost_1_1locale_1_1basic__format.html#a6aba7e54f0065f2697d13ff8a859309a" title="output stream type for this type of character">stream_type</a> *<span class="keyword">&gt;</span>(ptr)-&gt;imbue(l);
+<a name="l00437"></a>00437 }
+<a name="l00438"></a>00438
+<a name="l00439"></a>00439
+<a name="l00440"></a>00440
+<a name="l00441"></a>00441 <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keyword">const</span> base_params_ = 8;
+<a name="l00442"></a>00442
+<a name="l00443"></a>00443 <a class="code" href="classboost_1_1locale_1_1basic__format.html#a75213e5cc9d113f6b25e72542a4841f5">message_type</a> message_;
+<a name="l00444"></a>00444 <a class="code" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">string_type</a> format_;
+<a name="l00445"></a>00445 <span class="keywordtype">bool</span> translate_;
+<a name="l00446"></a>00446
+<a name="l00447"></a>00447
+<a name="l00448"></a>00448 formattible_type parameters_[base_params_];
+<a name="l00449"></a>00449 <span class="keywordtype">unsigned</span> parameters_count_;
+<a name="l00450"></a>00450 std::vector&lt;formattible_type&gt; ext_params_;
+<a name="l00451"></a>00451 };
+<a name="l00452"></a>00452
+<a name="l00458"></a>00458 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00459"></a><a class="code" href="group__format.html#ga1f24c2af23fab51855945ab2c6800278">00459</a> std::basic_ostream&lt;CharType&gt; &amp;operator&lt;&lt;(std::basic_ostream&lt;CharType&gt; &amp;out,<a class="code" href="classboost_1_1locale_1_1basic__format.html" title="a printf like class that allows type-safe and locale aware message formatting">basic_format&lt;CharType&gt;</a> <span class="keyword">const</span> &amp;fmt)
+<a name="l00460"></a>00460 {
+<a name="l00461"></a>00461 fmt.write(out);
+<a name="l00462"></a>00462 <span class="keywordflow">return</span> out;
+<a name="l00463"></a>00463 }
+<a name="l00464"></a>00464
+<a name="l00465"></a>00465
+<a name="l00469"></a><a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">00469</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1basic__format.html" title="a printf like class that allows type-safe and locale aware message formatting">basic_format&lt;char&gt;</a> format;
+<a name="l00470"></a>00470
+<a name="l00474"></a><a class="code" href="group__format.html#ga610f3ae827801febc962019cf82a2227">00474</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1basic__format.html" title="a printf like class that allows type-safe and locale aware message formatting">basic_format&lt;wchar_t&gt;</a> <a class="code" href="classboost_1_1locale_1_1basic__format.html" title="a printf like class that allows type-safe and locale aware message formatting">wformat</a>;
+<a name="l00475"></a>00475
+<a name="l00476"></a>00476 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR16_T</span>
+<a name="l00477"></a>00477 <span class="preprocessor"></span>
+<a name="l00478"></a>00478
+<a name="l00479"></a>00479
+<a name="l00480"></a><a class="code" href="group__format.html#ga7e1b668f020290ebca6570b4c12a36e6">00480</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1basic__format.html" title="a printf like class that allows type-safe and locale aware message formatting">basic_format&lt;char16_t&gt;</a> <a class="code" href="classboost_1_1locale_1_1basic__format.html" title="a printf like class that allows type-safe and locale aware message formatting">u16format</a>;
+<a name="l00481"></a>00481 <span class="preprocessor"> #endif</span>
+<a name="l00482"></a>00482 <span class="preprocessor"></span>
+<a name="l00483"></a>00483 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR32_T</span>
+<a name="l00484"></a>00484 <span class="preprocessor"></span>
+<a name="l00485"></a>00485
+<a name="l00486"></a>00486
+<a name="l00487"></a><a class="code" href="group__format.html#ga70ce1d532e859739182439f1f3321032">00487</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1basic__format.html" title="a printf like class that allows type-safe and locale aware message formatting">basic_format&lt;char32_t&gt;</a> <a class="code" href="classboost_1_1locale_1_1basic__format.html" title="a printf like class that allows type-safe and locale aware message formatting">u32format</a>;
+<a name="l00488"></a>00488 <span class="preprocessor"> #endif</span>
+<a name="l00489"></a>00489 <span class="preprocessor"></span>
+<a name="l00493"></a>00493
+<a name="l00494"></a>00494 }
+<a name="l00495"></a>00495 }
+<a name="l00496"></a>00496
+<a name="l00497"></a>00497 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00498"></a>00498 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l00499"></a>00499 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00500"></a>00500 <span class="preprocessor"></span>
+<a name="l00501"></a>00501 <span class="preprocessor">#endif</span>
+<a name="l00502"></a>00502 <span class="preprocessor"></span>
+<a name="l00513"></a>00513
+<a name="l00514"></a>00514 <span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+<a name="l00515"></a>00515
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/formatting_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/formatting_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,537 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/formatting.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/formatting.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_FORMATTING_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_FORMATTING_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#include &lt;boost/cstdint.hpp&gt;</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;boost/locale/time_zone.hpp&gt;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;ostream&gt;</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;istream&gt;</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;string.h&gt;</span>
+<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;typeinfo&gt;</span>
+<a name="l00023"></a>00023
+<a name="l00024"></a>00024 <span class="keyword">namespace </span>boost {
+<a name="l00025"></a>00025 <span class="keyword">namespace </span>locale {
+<a name="l00030"></a><a class="code" href="namespaceboost_1_1locale_1_1flags.html">00030</a> <span class="keyword">namespace </span>flags {
+<a name="l00035"></a><a class="code" href="namespaceboost_1_1locale_1_1flags.html#ab0255a81e609e12040ca07dda4434a99">00035</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00036"></a>00036 posix = 0,
+<a name="l00037"></a>00037 number = 1,
+<a name="l00038"></a>00038 currency = 2,
+<a name="l00039"></a>00039 percent = 3,
+<a name="l00040"></a>00040 date = 4,
+<a name="l00041"></a>00041 time = 5,
+<a name="l00042"></a>00042 datetime = 6,
+<a name="l00043"></a>00043 strftime = 7,
+<a name="l00044"></a>00044 spellout = 8,
+<a name="l00045"></a>00045 ordinal = 9,
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047 display_flags_mask = 31,
+<a name="l00048"></a>00048
+<a name="l00049"></a>00049 currency_default = 0 &lt;&lt; 5,
+<a name="l00050"></a>00050 currency_iso = 1 &lt;&lt; 5,
+<a name="l00051"></a>00051 currency_national = 2 &lt;&lt; 5,
+<a name="l00052"></a>00052
+<a name="l00053"></a>00053 currency_flags_mask = 3 &lt;&lt; 5,
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055 time_default = 0 &lt;&lt; 7,
+<a name="l00056"></a>00056 time_short = 1 &lt;&lt; 7,
+<a name="l00057"></a>00057 time_medium = 2 &lt;&lt; 7,
+<a name="l00058"></a>00058 time_long = 3 &lt;&lt; 7,
+<a name="l00059"></a>00059 time_full = 4 &lt;&lt; 7,
+<a name="l00060"></a>00060 time_flags_mask = 7 &lt;&lt; 7,
+<a name="l00061"></a>00061
+<a name="l00062"></a>00062 date_default = 0 &lt;&lt; 10,
+<a name="l00063"></a>00063 date_short = 1 &lt;&lt; 10,
+<a name="l00064"></a>00064 date_medium = 2 &lt;&lt; 10,
+<a name="l00065"></a>00065 date_long = 3 &lt;&lt; 10,
+<a name="l00066"></a>00066 date_full = 4 &lt;&lt; 10,
+<a name="l00067"></a>00067 date_flags_mask = 7 &lt;&lt; 10,
+<a name="l00068"></a>00068
+<a name="l00069"></a>00069 datetime_flags_mask = date_flags_mask | time_flags_mask
+<a name="l00070"></a>00070
+<a name="l00071"></a>00071 } display_flags_type;
+<a name="l00072"></a>00072
+<a name="l00077"></a><a class="code" href="namespaceboost_1_1locale_1_1flags.html#a730fd2868b4d25412c9fba7239ce277e">00077</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00078"></a><a class="code" href="namespaceboost_1_1locale_1_1flags.html#a730fd2868b4d25412c9fba7239ce277eaa4cbe9c3e0cd744c7543755e51029387">00078</a> datetime_pattern,
+<a name="l00079"></a><a class="code" href="namespaceboost_1_1locale_1_1flags.html#a730fd2868b4d25412c9fba7239ce277eaeb4698e4d169fa7bd13d35fb861cc4fb">00079</a> <a class="code" href="namespaceboost_1_1locale_1_1flags.html#a730fd2868b4d25412c9fba7239ce277eaeb4698e4d169fa7bd13d35fb861cc4fb" title="time zone name">time_zone_id</a>
+<a name="l00080"></a>00080 } pattern_type;
+<a name="l00081"></a>00081
+<a name="l00085"></a><a class="code" href="namespaceboost_1_1locale_1_1flags.html#aa8bc4e6a6419c16479ea037b9fd05d06">00085</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+<a name="l00086"></a><a class="code" href="namespaceboost_1_1locale_1_1flags.html#aa8bc4e6a6419c16479ea037b9fd05d06a43aa65d05606f54a48b3848fdd4218c0">00086</a> <a class="code" href="namespaceboost_1_1locale_1_1flags.html#aa8bc4e6a6419c16479ea037b9fd05d06a43aa65d05606f54a48b3848fdd4218c0" title="Domain code - for message formatting.">domain_id</a>
+<a name="l00087"></a>00087 } value_type;
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089
+<a name="l00090"></a>00090 } <span class="comment">// flags</span>
+<a name="l00091"></a>00091
+<a name="l00098"></a><a class="code" href="classboost_1_1locale_1_1ios__info.html">00098</a> <span class="keyword">class </span>BOOST_LOCALE_DECL <a class="code" href="classboost_1_1locale_1_1ios__info.html" title="This class holds an external data - beyond existing fmtflags that std::ios_base holds.">ios_info</a> {
+<a name="l00099"></a>00099 <span class="keyword">public</span>:
+<a name="l00100"></a>00100
+<a name="l00102"></a>00102
+<a name="l00103"></a>00103 <a class="code" href="classboost_1_1locale_1_1ios__info.html" title="This class holds an external data - beyond existing fmtflags that std::ios_base holds.">ios_info</a>();
+<a name="l00104"></a>00104 <a class="code" href="classboost_1_1locale_1_1ios__info.html" title="This class holds an external data - beyond existing fmtflags that std::ios_base holds.">ios_info</a>(<a class="code" href="classboost_1_1locale_1_1ios__info.html" title="This class holds an external data - beyond existing fmtflags that std::ios_base holds.">ios_info</a> <span class="keyword">const</span> &amp;);
+<a name="l00105"></a>00105 <a class="code" href="classboost_1_1locale_1_1ios__info.html" title="This class holds an external data - beyond existing fmtflags that std::ios_base holds.">ios_info</a> <span class="keyword">const</span> &amp;operator=(<a class="code" href="classboost_1_1locale_1_1ios__info.html" title="This class holds an external data - beyond existing fmtflags that std::ios_base holds.">ios_info</a> <span class="keyword">const</span> &amp;);
+<a name="l00106"></a>00106 ~<a class="code" href="classboost_1_1locale_1_1ios__info.html" title="This class holds an external data - beyond existing fmtflags that std::ios_base holds.">ios_info</a>();
+<a name="l00107"></a>00107
+<a name="l00109"></a>00109
+<a name="l00113"></a>00113 <span class="keyword">static</span> <a class="code" href="classboost_1_1locale_1_1ios__info.html" title="This class holds an external data - beyond existing fmtflags that std::ios_base holds.">ios_info</a> &amp;<span class="keyword">get</span>(std::ios_base &amp;ios);
+<a name="l00114"></a>00114
+<a name="l00118"></a>00118 <span class="keywordtype">void</span> display_flags(uint64_t flags);
+<a name="l00119"></a>00119
+<a name="l00123"></a>00123 <span class="keywordtype">void</span> currency_flags(uint64_t flags);
+<a name="l00124"></a>00124
+<a name="l00128"></a>00128 <span class="keywordtype">void</span> date_flags(uint64_t flags);
+<a name="l00129"></a>00129
+<a name="l00133"></a>00133 <span class="keywordtype">void</span> time_flags(uint64_t flags);
+<a name="l00134"></a>00134
+<a name="l00138"></a>00138 <span class="keywordtype">void</span> datetime_flags(uint64_t flags);
+<a name="l00139"></a>00139
+<a name="l00143"></a>00143 <span class="keywordtype">void</span> domain_id(<span class="keywordtype">int</span>);
+<a name="l00144"></a>00144
+<a name="l00148"></a>00148 <span class="keywordtype">void</span> <a class="code" href="group__manipulators.html#gad51fbdc634fe0c81e5183915e9eeb238">time_zone</a>(std::string <span class="keyword">const</span> &amp;);
+<a name="l00149"></a>00149
+<a name="l00150"></a>00150
+<a name="l00154"></a>00154 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00155"></a><a class="code" href="classboost_1_1locale_1_1ios__info.html#a4c788d42a54235a501cfd6602e0939d9">00155</a> <span class="keywordtype">void</span> date_time_pattern(std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;str)
+<a name="l00156"></a>00156 {
+<a name="l00157"></a>00157 string_set &amp;s = date_time_pattern_set();
+<a name="l00158"></a>00158 s.set&lt;CharType&gt;(str.c_str());
+<a name="l00159"></a>00159 }
+<a name="l00160"></a>00160
+<a name="l00161"></a>00161
+<a name="l00165"></a>00165 uint64_t display_flags() <span class="keyword">const</span>;
+<a name="l00166"></a>00166
+<a name="l00170"></a>00170 uint64_t currency_flags() <span class="keyword">const</span>;
+<a name="l00171"></a>00171
+<a name="l00172"></a>00172
+<a name="l00176"></a>00176 uint64_t date_flags() <span class="keyword">const</span>;
+<a name="l00177"></a>00177
+<a name="l00181"></a>00181 uint64_t time_flags() <span class="keyword">const</span>;
+<a name="l00182"></a>00182
+<a name="l00186"></a>00186 uint64_t datetime_flags() <span class="keyword">const</span>;
+<a name="l00187"></a>00187
+<a name="l00191"></a>00191 <span class="keywordtype">int</span> domain_id() <span class="keyword">const</span>;
+<a name="l00192"></a>00192
+<a name="l00196"></a>00196 std::string <a class="code" href="group__manipulators.html#gad51fbdc634fe0c81e5183915e9eeb238">time_zone</a>() <span class="keyword">const</span>;
+<a name="l00197"></a>00197
+<a name="l00201"></a>00201 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00202"></a><a class="code" href="classboost_1_1locale_1_1ios__info.html#ab1e517242a73bb4802014391f4720338">00202</a> std::basic_string&lt;CharType&gt; date_time_pattern()<span class="keyword"> const</span>
+<a name="l00203"></a>00203 <span class="keyword"> </span>{
+<a name="l00204"></a>00204 string_set <span class="keyword">const</span> &amp;s = date_time_pattern_set();
+<a name="l00205"></a>00205 <span class="keywordflow">return</span> s.get&lt;CharType&gt;();
+<a name="l00206"></a>00206 }
+<a name="l00207"></a>00207
+<a name="l00209"></a>00209 <span class="keywordtype">void</span> on_imbue();
+<a name="l00211"></a>00211
+<a name="l00212"></a>00212 <span class="keyword">private</span>:
+<a name="l00213"></a>00213
+<a name="l00214"></a>00214 <span class="keyword">class </span>string_set;
+<a name="l00215"></a>00215
+<a name="l00216"></a>00216 string_set <span class="keyword">const</span> &amp;date_time_pattern_set() <span class="keyword">const</span>;
+<a name="l00217"></a>00217 string_set &amp;date_time_pattern_set();
+<a name="l00218"></a>00218
+<a name="l00219"></a>00219 <span class="keyword">class </span>BOOST_LOCALE_DECL string_set {
+<a name="l00220"></a>00220 <span class="keyword">public</span>:
+<a name="l00221"></a>00221 string_set();
+<a name="l00222"></a>00222 ~string_set();
+<a name="l00223"></a>00223 string_set(string_set <span class="keyword">const</span> &amp;other);
+<a name="l00224"></a>00224 string_set <span class="keyword">const</span> &amp;operator=(string_set <span class="keyword">const</span> &amp;other);
+<a name="l00225"></a>00225 <span class="keywordtype">void</span> swap(string_set &amp;other);
+<a name="l00226"></a>00226
+<a name="l00227"></a>00227 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Char&gt;
+<a name="l00228"></a>00228 <span class="keywordtype">void</span> <span class="keyword">set</span>(Char <span class="keyword">const</span> *s)
+<a name="l00229"></a>00229 {
+<a name="l00230"></a>00230 <span class="keyword">delete</span> [] ptr;
+<a name="l00231"></a>00231 ptr = 0;
+<a name="l00232"></a>00232 type=&amp;<span class="keyword">typeid</span>(Char);
+<a name="l00233"></a>00233 Char <span class="keyword">const</span> *end = s;
+<a name="l00234"></a>00234 <span class="keywordflow">while</span>(*end!=0) end++;
+<a name="l00235"></a>00235 <span class="comment">// if ptr = 0 it does not matter what is value of size</span>
+<a name="l00236"></a>00236 size = <span class="keyword">sizeof</span>(Char)*(end - s+1);
+<a name="l00237"></a>00237 ptr = <span class="keyword">new</span> <span class="keywordtype">char</span>[size];
+<a name="l00238"></a>00238 memcpy(ptr,s,size);
+<a name="l00239"></a>00239 }
+<a name="l00240"></a>00240
+<a name="l00241"></a>00241 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Char&gt;
+<a name="l00242"></a>00242 std::basic_string&lt;Char&gt; <span class="keyword">get</span>() <span class="keyword">const</span>
+<a name="l00243"></a>00243 {
+<a name="l00244"></a>00244 <span class="keywordflow">if</span>(type==0 || *type!=<span class="keyword">typeid</span>(Char))
+<a name="l00245"></a>00245 <span class="keywordflow">throw</span> std::bad_cast();
+<a name="l00246"></a>00246 std::basic_string&lt;Char&gt; result = <span class="keyword">reinterpret_cast&lt;</span>Char <span class="keyword">const </span>*<span class="keyword">&gt;</span>(ptr);
+<a name="l00247"></a>00247 <span class="keywordflow">return</span> result;
+<a name="l00248"></a>00248 }
+<a name="l00249"></a>00249
+<a name="l00250"></a>00250 <span class="keyword">private</span>:
+<a name="l00251"></a>00251 std::type_info <span class="keyword">const</span> *type;
+<a name="l00252"></a>00252 <span class="keywordtype">size_t</span> size;
+<a name="l00253"></a>00253 <span class="keywordtype">char</span> *ptr;
+<a name="l00254"></a>00254 };
+<a name="l00255"></a>00255
+<a name="l00256"></a>00256 uint64_t flags_;
+<a name="l00257"></a>00257 <span class="keywordtype">int</span> domain_id_;
+<a name="l00258"></a>00258 std::string time_zone_;
+<a name="l00259"></a>00259 string_set datetime_;
+<a name="l00260"></a>00260
+<a name="l00261"></a>00261 <span class="keyword">struct </span>data;
+<a name="l00262"></a>00262 data *d;
+<a name="l00263"></a>00263
+<a name="l00264"></a>00264 };
+<a name="l00265"></a>00265
+<a name="l00266"></a>00266
+<a name="l00270"></a><a class="code" href="namespaceboost_1_1locale_1_1as.html">00270</a> <span class="keyword">namespace </span>as {
+<a name="l00276"></a>00276
+<a name="l00281"></a>00281
+<a name="l00282"></a><a class="code" href="group__manipulators.html#ga879b679c0a88b7af9ac059a6e8f67c0a">00282</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#ga879b679c0a88b7af9ac059a6e8f67c0a">posix</a>(std::ios_base &amp; ios)
+<a name="l00283"></a>00283 {
+<a name="l00284"></a>00284 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>(flags::posix);
+<a name="l00285"></a>00285 <span class="keywordflow">return</span> ios;
+<a name="l00286"></a>00286 }
+<a name="l00287"></a>00287
+<a name="l00292"></a><a class="code" href="group__manipulators.html#gaee05db73f5525d9a010cdc3aa02f634f">00292</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#gaee05db73f5525d9a010cdc3aa02f634f">number</a>(std::ios_base &amp; ios)
+<a name="l00293"></a>00293 {
+<a name="l00294"></a>00294 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>(flags::number);
+<a name="l00295"></a>00295 <span class="keywordflow">return</span> ios;
+<a name="l00296"></a>00296 }
+<a name="l00297"></a>00297
+<a name="l00301"></a><a class="code" href="group__manipulators.html#ga97c4997f9692834ea7b5ed3e8137d5fd">00301</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#ga97c4997f9692834ea7b5ed3e8137d5fd">currency</a>(std::ios_base &amp; ios)
+<a name="l00302"></a>00302 {
+<a name="l00303"></a>00303 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>(flags::currency);
+<a name="l00304"></a>00304 <span class="keywordflow">return</span> ios;
+<a name="l00305"></a>00305 }
+<a name="l00306"></a>00306
+<a name="l00310"></a><a class="code" href="group__manipulators.html#ga365767c66c9c82fb646458f5eace8534">00310</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#ga365767c66c9c82fb646458f5eace8534">percent</a>(std::ios_base &amp; ios)
+<a name="l00311"></a>00311 {
+<a name="l00312"></a>00312 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>(flags::percent);
+<a name="l00313"></a>00313 <span class="keywordflow">return</span> ios;
+<a name="l00314"></a>00314 }
+<a name="l00315"></a>00315
+<a name="l00319"></a><a class="code" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">00319</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">date</a>(std::ios_base &amp; ios)
+<a name="l00320"></a>00320 {
+<a name="l00321"></a>00321 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>(flags::date);
+<a name="l00322"></a>00322 <span class="keywordflow">return</span> ios;
+<a name="l00323"></a>00323 }
+<a name="l00324"></a>00324
+<a name="l00328"></a><a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">00328</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">time</a>(std::ios_base &amp; ios)
+<a name="l00329"></a>00329 {
+<a name="l00330"></a>00330 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>(flags::time);
+<a name="l00331"></a>00331 <span class="keywordflow">return</span> ios;
+<a name="l00332"></a>00332 }
+<a name="l00333"></a>00333
+<a name="l00337"></a><a class="code" href="group__manipulators.html#ga820edf843e20847a0c4ccb8da0c4acd8">00337</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#ga820edf843e20847a0c4ccb8da0c4acd8">datetime</a>(std::ios_base &amp; ios)
+<a name="l00338"></a>00338 {
+<a name="l00339"></a>00339 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>(flags::datetime);
+<a name="l00340"></a>00340 <span class="keywordflow">return</span> ios;
+<a name="l00341"></a>00341 }
+<a name="l00342"></a>00342
+<a name="l00347"></a><a class="code" href="group__manipulators.html#ga782b256b82922e6a5f32446787a6f7dc">00347</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#ga782b256b82922e6a5f32446787a6f7dc">strftime</a>(std::ios_base &amp; ios)
+<a name="l00348"></a>00348 {
+<a name="l00349"></a>00349 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>(flags::strftime);
+<a name="l00350"></a>00350 <span class="keywordflow">return</span> ios;
+<a name="l00351"></a>00351 }
+<a name="l00352"></a>00352
+<a name="l00356"></a><a class="code" href="group__manipulators.html#gac65e6cd9619db80d60793bbd86a3bd77">00356</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#gac65e6cd9619db80d60793bbd86a3bd77">spellout</a>(std::ios_base &amp; ios)
+<a name="l00357"></a>00357 {
+<a name="l00358"></a>00358 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>(flags::spellout);
+<a name="l00359"></a>00359 <span class="keywordflow">return</span> ios;
+<a name="l00360"></a>00360 }
+<a name="l00361"></a>00361
+<a name="l00365"></a><a class="code" href="group__manipulators.html#ga50cc23779fd846809182e50345b4eb7c">00365</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#ga50cc23779fd846809182e50345b4eb7c">ordinal</a>(std::ios_base &amp; ios)
+<a name="l00366"></a>00366 {
+<a name="l00367"></a>00367 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">display_flags</a>(flags::ordinal);
+<a name="l00368"></a>00368 <span class="keywordflow">return</span> ios;
+<a name="l00369"></a>00369 }
+<a name="l00370"></a>00370
+<a name="l00374"></a><a class="code" href="group__manipulators.html#ga18f1cb392e5b26c12a9deaff816e7998">00374</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#ga18f1cb392e5b26c12a9deaff816e7998">currency_default</a>(std::ios_base &amp; ios)
+<a name="l00375"></a>00375 {
+<a name="l00376"></a>00376 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#ad31ea1190ae882f20eea582312c6c573">currency_flags</a>(flags::currency_default);
+<a name="l00377"></a>00377 <span class="keywordflow">return</span> ios;
+<a name="l00378"></a>00378 }
+<a name="l00379"></a>00379
+<a name="l00383"></a><a class="code" href="group__manipulators.html#gab8bc145e8147e45e9b9dc0ee9edd9fbe">00383</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#gab8bc145e8147e45e9b9dc0ee9edd9fbe">currency_iso</a>(std::ios_base &amp; ios)
+<a name="l00384"></a>00384 {
+<a name="l00385"></a>00385 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#ad31ea1190ae882f20eea582312c6c573">currency_flags</a>(flags::currency_iso);
+<a name="l00386"></a>00386 <span class="keywordflow">return</span> ios;
+<a name="l00387"></a>00387 }
+<a name="l00388"></a>00388
+<a name="l00392"></a><a class="code" href="group__manipulators.html#ga2b1ea6b22e2c6f3a162264d9e59d3f95">00392</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#ga2b1ea6b22e2c6f3a162264d9e59d3f95">currency_national</a>(std::ios_base &amp; ios)
+<a name="l00393"></a>00393 {
+<a name="l00394"></a>00394 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#ad31ea1190ae882f20eea582312c6c573">currency_flags</a>(flags::currency_national);
+<a name="l00395"></a>00395 <span class="keywordflow">return</span> ios;
+<a name="l00396"></a>00396 }
+<a name="l00397"></a>00397
+<a name="l00401"></a><a class="code" href="group__manipulators.html#ga0970bc4cb3a4ab8070faa04808f65052">00401</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#ga0970bc4cb3a4ab8070faa04808f65052">time_default</a>(std::ios_base &amp; ios)
+<a name="l00402"></a>00402 {
+<a name="l00403"></a>00403 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a06bdad5c9b11e57c16ad623776ce5096">time_flags</a>(flags::time_default);
+<a name="l00404"></a>00404 <span class="keywordflow">return</span> ios;
+<a name="l00405"></a>00405 }
+<a name="l00406"></a>00406
+<a name="l00410"></a><a class="code" href="group__manipulators.html#gada3d88eef293c9495a3f7d756d369fd3">00410</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#gada3d88eef293c9495a3f7d756d369fd3">time_short</a>(std::ios_base &amp; ios)
+<a name="l00411"></a>00411 {
+<a name="l00412"></a>00412 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a06bdad5c9b11e57c16ad623776ce5096">time_flags</a>(flags::time_short);
+<a name="l00413"></a>00413 <span class="keywordflow">return</span> ios;
+<a name="l00414"></a>00414 }
+<a name="l00415"></a>00415
+<a name="l00419"></a><a class="code" href="group__manipulators.html#ga3f3cc44eeeaffc3b90bebe7660b3e853">00419</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#ga3f3cc44eeeaffc3b90bebe7660b3e853">time_medium</a>(std::ios_base &amp; ios)
+<a name="l00420"></a>00420 {
+<a name="l00421"></a>00421 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a06bdad5c9b11e57c16ad623776ce5096">time_flags</a>(flags::time_medium);
+<a name="l00422"></a>00422 <span class="keywordflow">return</span> ios;
+<a name="l00423"></a>00423 }
+<a name="l00424"></a>00424
+<a name="l00428"></a><a class="code" href="group__manipulators.html#gad6590ea48c57d53899b90d3464cf3c0b">00428</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#gad6590ea48c57d53899b90d3464cf3c0b">time_long</a>(std::ios_base &amp; ios)
+<a name="l00429"></a>00429 {
+<a name="l00430"></a>00430 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a06bdad5c9b11e57c16ad623776ce5096">time_flags</a>(flags::time_long);
+<a name="l00431"></a>00431 <span class="keywordflow">return</span> ios;
+<a name="l00432"></a>00432 }
+<a name="l00433"></a>00433
+<a name="l00437"></a><a class="code" href="group__manipulators.html#ga9a8bd936176e3c81dfa07748e1cbabd4">00437</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#ga9a8bd936176e3c81dfa07748e1cbabd4">time_full</a>(std::ios_base &amp; ios)
+<a name="l00438"></a>00438 {
+<a name="l00439"></a>00439 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a06bdad5c9b11e57c16ad623776ce5096">time_flags</a>(flags::time_full);
+<a name="l00440"></a>00440 <span class="keywordflow">return</span> ios;
+<a name="l00441"></a>00441 }
+<a name="l00442"></a>00442
+<a name="l00446"></a><a class="code" href="group__manipulators.html#gacb5b9243e6537a9378e2d020a4e6a57a">00446</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#gacb5b9243e6537a9378e2d020a4e6a57a">date_default</a>(std::ios_base &amp; ios)
+<a name="l00447"></a>00447 {
+<a name="l00448"></a>00448 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#aec16372d284296c63ebd282121fa0005">date_flags</a>(flags::date_default);
+<a name="l00449"></a>00449 <span class="keywordflow">return</span> ios;
+<a name="l00450"></a>00450 }
+<a name="l00451"></a>00451
+<a name="l00455"></a><a class="code" href="group__manipulators.html#ga295c7b48ce2732c196df31a70660b7b9">00455</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#ga295c7b48ce2732c196df31a70660b7b9">date_short</a>(std::ios_base &amp; ios)
+<a name="l00456"></a>00456 {
+<a name="l00457"></a>00457 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#aec16372d284296c63ebd282121fa0005">date_flags</a>(flags::date_short);
+<a name="l00458"></a>00458 <span class="keywordflow">return</span> ios;
+<a name="l00459"></a>00459 }
+<a name="l00460"></a>00460
+<a name="l00464"></a><a class="code" href="group__manipulators.html#ga3b9dcc64afbd67883603cfa7bb67e6c4">00464</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#ga3b9dcc64afbd67883603cfa7bb67e6c4">date_medium</a>(std::ios_base &amp; ios)
+<a name="l00465"></a>00465 {
+<a name="l00466"></a>00466 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#aec16372d284296c63ebd282121fa0005">date_flags</a>(flags::date_medium);
+<a name="l00467"></a>00467 <span class="keywordflow">return</span> ios;
+<a name="l00468"></a>00468 }
+<a name="l00469"></a>00469
+<a name="l00473"></a><a class="code" href="group__manipulators.html#gac553a86e8d0606c4a6f6d75c3cb104e7">00473</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#gac553a86e8d0606c4a6f6d75c3cb104e7">date_long</a>(std::ios_base &amp; ios)
+<a name="l00474"></a>00474 {
+<a name="l00475"></a>00475 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#aec16372d284296c63ebd282121fa0005">date_flags</a>(flags::date_long);
+<a name="l00476"></a>00476 <span class="keywordflow">return</span> ios;
+<a name="l00477"></a>00477 }
+<a name="l00478"></a>00478
+<a name="l00482"></a><a class="code" href="group__manipulators.html#gad8d6858ec18524c9a993da387c896d0e">00482</a> <span class="keyword">inline</span> std::ios_base &amp; <a class="code" href="group__manipulators.html#gad8d6858ec18524c9a993da387c896d0e">date_full</a>(std::ios_base &amp; ios)
+<a name="l00483"></a>00483 {
+<a name="l00484"></a>00484 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#aec16372d284296c63ebd282121fa0005">date_flags</a>(flags::date_full);
+<a name="l00485"></a>00485 <span class="keywordflow">return</span> ios;
+<a name="l00486"></a>00486 }
+<a name="l00487"></a>00487
+<a name="l00488"></a>00488
+<a name="l00490"></a>00490 <span class="keyword">namespace </span>details {
+<a name="l00491"></a>00491 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00492"></a>00492 <span class="keyword">struct </span>add_ftime {
+<a name="l00493"></a>00493
+<a name="l00494"></a>00494 std::basic_string&lt;CharType&gt; ftime;
+<a name="l00495"></a>00495
+<a name="l00496"></a>00496 <span class="keywordtype">void</span> apply(std::basic_ios&lt;CharType&gt; &amp;ios)<span class="keyword"> const</span>
+<a name="l00497"></a>00497 <span class="keyword"> </span>{
+<a name="l00498"></a>00498 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a4c788d42a54235a501cfd6602e0939d9">date_time_pattern</a>(<a class="code" href="group__manipulators.html#gaff2d2d435fb9efcb185b2b47355e5fd6">ftime</a>);
+<a name="l00499"></a>00499 <a class="code" href="group__manipulators.html#ga782b256b82922e6a5f32446787a6f7dc">as::strftime</a>(ios);
+<a name="l00500"></a>00500 }
+<a name="l00501"></a>00501
+<a name="l00502"></a>00502 };
+<a name="l00503"></a>00503
+<a name="l00504"></a>00504 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00505"></a>00505 std::basic_ostream&lt;CharType&gt; &amp;operator&lt;&lt;(std::basic_ostream&lt;CharType&gt; &amp;out,add_ftime&lt;CharType&gt; <span class="keyword">const</span> &amp;fmt)
+<a name="l00506"></a>00506 {
+<a name="l00507"></a>00507 fmt.apply(out);
+<a name="l00508"></a>00508 <span class="keywordflow">return</span> out;
+<a name="l00509"></a>00509 }
+<a name="l00510"></a>00510
+<a name="l00511"></a>00511 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00512"></a>00512 std::basic_istream&lt;CharType&gt; &amp;<a class="code" href="group__date__time.html#gaaf12ac2d38329331a8d9101ecc5e64d5">operator&gt;&gt;</a>(std::basic_istream&lt;CharType&gt; &amp;in,add_ftime&lt;CharType&gt; <span class="keyword">const</span> &amp;fmt)
+<a name="l00513"></a>00513 {
+<a name="l00514"></a>00514 fmt.apply(in);
+<a name="l00515"></a>00515 <span class="keywordflow">return</span> in;
+<a name="l00516"></a>00516 }
+<a name="l00517"></a>00517
+<a name="l00518"></a>00518 }
+<a name="l00520"></a>00520
+<a name="l00555"></a>00555
+<a name="l00556"></a>00556
+<a name="l00557"></a>00557 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00558"></a>00558 <span class="preprocessor"> #ifdef BOOST_LOCALE_DOXYGEN</span>
+<a name="l00559"></a>00559 <span class="preprocessor"></span> unspecified_type
+<a name="l00560"></a>00560 <span class="preprocessor"> #else</span>
+<a name="l00561"></a>00561 <span class="preprocessor"></span> details::add_ftime&lt;CharType&gt;
+<a name="l00562"></a>00562 <span class="preprocessor"> #endif</span>
+<a name="l00563"></a><a class="code" href="group__manipulators.html#gaff2d2d435fb9efcb185b2b47355e5fd6">00563</a> <span class="preprocessor"></span> <a class="code" href="group__manipulators.html#gaff2d2d435fb9efcb185b2b47355e5fd6">ftime</a>(std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;<a class="code" href="classboost_1_1locale_1_1basic__format.html" title="a printf like class that allows type-safe and locale aware message formatting">format</a>)
+<a name="l00564"></a>00564 {
+<a name="l00565"></a>00565 details::add_ftime&lt;CharType&gt; fmt;
+<a name="l00566"></a>00566 fmt.ftime=format;
+<a name="l00567"></a>00567 <span class="keywordflow">return</span> fmt;
+<a name="l00568"></a>00568 }
+<a name="l00569"></a>00569
+<a name="l00573"></a>00573 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00574"></a>00574 <span class="preprocessor"> #ifdef BOOST_LOCALE_DOXYGEN</span>
+<a name="l00575"></a>00575 <span class="preprocessor"></span> unspecified_type
+<a name="l00576"></a>00576 <span class="preprocessor"> #else</span>
+<a name="l00577"></a>00577 <span class="preprocessor"></span> details::add_ftime&lt;CharType&gt;
+<a name="l00578"></a>00578 <span class="preprocessor"> #endif</span>
+<a name="l00579"></a><a class="code" href="group__manipulators.html#gaa3b700e53188d9dfca0a7ea8e8a891c1">00579</a> <span class="preprocessor"></span> <a class="code" href="group__manipulators.html#gaff2d2d435fb9efcb185b2b47355e5fd6">ftime</a>(CharType <span class="keyword">const</span> *<a class="code" href="classboost_1_1locale_1_1basic__format.html" title="a printf like class that allows type-safe and locale aware message formatting">format</a>)
+<a name="l00580"></a>00580 {
+<a name="l00581"></a>00581 details::add_ftime&lt;CharType&gt; fmt;
+<a name="l00582"></a>00582 fmt.ftime=format;
+<a name="l00583"></a>00583 <span class="keywordflow">return</span> fmt;
+<a name="l00584"></a>00584 }
+<a name="l00585"></a>00585
+<a name="l00587"></a>00587 <span class="keyword">namespace </span>details {
+<a name="l00588"></a>00588 <span class="keyword">struct </span>set_timezone {
+<a name="l00589"></a>00589 std::string id;
+<a name="l00590"></a>00590 };
+<a name="l00591"></a>00591 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00592"></a>00592 std::basic_ostream&lt;CharType&gt; &amp;operator&lt;&lt;(std::basic_ostream&lt;CharType&gt; &amp;out,set_timezone <span class="keyword">const</span> &amp;fmt)
+<a name="l00593"></a>00593 {
+<a name="l00594"></a>00594 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(out).time_zone(fmt.id);
+<a name="l00595"></a>00595 <span class="keywordflow">return</span> out;
+<a name="l00596"></a>00596 }
+<a name="l00597"></a>00597
+<a name="l00598"></a>00598 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00599"></a>00599 std::basic_istream&lt;CharType&gt; &amp;<a class="code" href="group__date__time.html#gaaf12ac2d38329331a8d9101ecc5e64d5">operator&gt;&gt;</a>(std::basic_istream&lt;CharType&gt; &amp;in,set_timezone <span class="keyword">const</span> &amp;fmt)
+<a name="l00600"></a>00600 {
+<a name="l00601"></a>00601 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(in).time_zone(fmt.id);
+<a name="l00602"></a>00602 <span class="keywordflow">return</span> in;
+<a name="l00603"></a>00603 }
+<a name="l00604"></a>00604 }
+<a name="l00606"></a>00606
+<a name="l00610"></a><a class="code" href="group__manipulators.html#gac90c969d876305b8584def8632ae1808">00610</a> <span class="keyword">inline</span> std::ios_base &amp;<a class="code" href="group__manipulators.html#gac90c969d876305b8584def8632ae1808">gmt</a>(std::ios_base &amp;ios)
+<a name="l00611"></a>00611 {
+<a name="l00612"></a>00612 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a3f140278815b521f1568c52d0a9fea11">time_zone</a>(<span class="stringliteral">&quot;GMT&quot;</span>);
+<a name="l00613"></a>00613 <span class="keywordflow">return</span> ios;
+<a name="l00614"></a>00614 }
+<a name="l00615"></a>00615
+<a name="l00619"></a><a class="code" href="group__manipulators.html#gac6cb5458543daf651cd6b48812891541">00619</a> <span class="keyword">inline</span> std::ios_base &amp;<a class="code" href="group__manipulators.html#gac6cb5458543daf651cd6b48812891541">local_time</a>(std::ios_base &amp;ios)
+<a name="l00620"></a>00620 {
+<a name="l00621"></a>00621 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(ios).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a3f140278815b521f1568c52d0a9fea11">time_zone</a>(<a class="code" href="namespaceboost_1_1locale_1_1time__zone.html#a41f0e37ead92b29f6d09377070bbe398">time_zone::global</a>());
+<a name="l00622"></a>00622 <span class="keywordflow">return</span> ios;
+<a name="l00623"></a>00623 }
+<a name="l00624"></a>00624
+<a name="l00628"></a>00628 <span class="keyword">inline</span>
+<a name="l00629"></a>00629 <span class="preprocessor"> #ifdef BOOST_LOCALE_DOXYGEN</span>
+<a name="l00630"></a>00630 <span class="preprocessor"></span> unspecified_type
+<a name="l00631"></a>00631 <span class="preprocessor"> #else</span>
+<a name="l00632"></a>00632 <span class="preprocessor"></span> details::set_timezone
+<a name="l00633"></a>00633 <span class="preprocessor"> #endif</span>
+<a name="l00634"></a><a class="code" href="group__manipulators.html#gad51fbdc634fe0c81e5183915e9eeb238">00634</a> <span class="preprocessor"></span> <a class="code" href="group__manipulators.html#gad51fbdc634fe0c81e5183915e9eeb238">time_zone</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *<span class="keywordtype">id</span>)
+<a name="l00635"></a>00635 {
+<a name="l00636"></a>00636 details::set_timezone tz;
+<a name="l00637"></a>00637 tz.id=id;
+<a name="l00638"></a>00638 <span class="keywordflow">return</span> tz;
+<a name="l00639"></a>00639 }
+<a name="l00640"></a>00640
+<a name="l00644"></a>00644 <span class="keyword">inline</span>
+<a name="l00645"></a>00645 <span class="preprocessor"> #ifdef BOOST_LOCALE_DOXYGEN</span>
+<a name="l00646"></a>00646 <span class="preprocessor"></span> unspecified_type
+<a name="l00647"></a>00647 <span class="preprocessor"> #else</span>
+<a name="l00648"></a>00648 <span class="preprocessor"></span> details::set_timezone
+<a name="l00649"></a>00649 <span class="preprocessor"> #endif </span>
+<a name="l00650"></a><a class="code" href="group__manipulators.html#ga4348099506fc7c52945e639683398a20">00650</a> <span class="preprocessor"></span> <a class="code" href="group__manipulators.html#gad51fbdc634fe0c81e5183915e9eeb238">time_zone</a>(std::string <span class="keyword">const</span> &amp;<span class="keywordtype">id</span>)
+<a name="l00651"></a>00651 {
+<a name="l00652"></a>00652 details::set_timezone tz;
+<a name="l00653"></a>00653 tz.id=id;
+<a name="l00654"></a>00654 <span class="keywordflow">return</span> tz;
+<a name="l00655"></a>00655 }
+<a name="l00656"></a>00656
+<a name="l00657"></a>00657
+<a name="l00661"></a>00661
+<a name="l00662"></a>00662 } <span class="comment">// as manipulators</span>
+<a name="l00663"></a>00663
+<a name="l00664"></a>00664 } <span class="comment">// locale</span>
+<a name="l00665"></a>00665 } <span class="comment">// boost</span>
+<a name="l00666"></a>00666
+<a name="l00667"></a>00667 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00668"></a>00668 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l00669"></a>00669 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00670"></a>00670 <span class="preprocessor"></span>
+<a name="l00671"></a>00671
+<a name="l00672"></a>00672 <span class="preprocessor">#endif</span>
+<a name="l00673"></a>00673 <span class="preprocessor"></span><span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/formatting_and_parsing.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/formatting_and_parsing.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Numbers, Time and Currency formatting and parsing</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="using_boost_locale.html">Using Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Numbers, Time and Currency formatting and parsing </h1> </div>
+</div>
+<div class="contents">
+<p>All formatting and parsing is performed via the standard I/O streams. Each of the above information types is represented as a number. The formatting information is set using iostream manipulators. All manipulators are placed in the <a class="el" href="namespaceboost_1_1locale_1_1as.html" title="This namespace includes all manipulators that can be used on IO streams.">boost::locale::as</a> namespace.</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"> cout &lt;&lt; <a class="code" href="group__manipulators.html#ga97c4997f9692834ea7b5ed3e8137d5fd">as::currency</a> &lt;&lt; 123.45 &lt;&lt; endl;
+ <span class="comment">// display 123.45 in local currency representation.</span>
+ cin &gt;&gt; <a class="code" href="group__manipulators.html#ga97c4997f9692834ea7b5ed3e8137d5fd">as::currency</a> &gt;&gt; x ;
+ <span class="comment">// Parse currency representation and store it in x</span>
+</pre></div><p>There is a special manipulator <code>as::posix</code> that "unsets" locale-specific settings and returns them to the default <code>iostream</code> formatting and parsing methods. Please note, such formats may still be localized by the default <code>std::num_put</code> and <code>std::num_get</code> facets.</p>
+<h2><a class="anchor" id="numbers_formatting"></a>
+Numbers and number manipulators</h2>
+<p>Here are the manipulators for number formatting:</p>
+<ul>
+<li><code>as::number</code> -- format number according to local specifications, it takes into account various <code>std::ios_base</code> flags like scientific format and precision. <br/>
+</li>
+<li><code>as::percent</code> -- format number as "percent" format. For example: <div class="fragment"><pre class="fragment"> cout &lt;&lt; <a class="code" href="group__manipulators.html#ga365767c66c9c82fb646458f5eace8534">as::percent</a> &lt;&lt; 0.25 &lt;&lt;endl;
+</pre></div> Would create an output that may look like this: <div class="fragment"><pre class="fragment">
+ 25%
+ </pre></div> <br/>
+</li>
+<li><code>as::spellout</code> -- spell the number. For example, under the English locale, 103 may be displayed as "one hundred three". <b>Note:</b> not all locales provide rules for spelling numbers. In such a case the number would be displayed in decimal format. <br/>
+</li>
+<li><code>as::ordinal</code> -- display an order-of element. For example "2" would be displayed as "2nd" under the English locale. As in the above case, not all locales provide ordinal rules.</li>
+</ul>
+<h2><a class="anchor" id="currency_formatting"></a>
+Currency formatting</h2>
+<p>These are the manipulators for currency formatting:</p>
+<ul>
+<li><code>as::currency</code> -- set the format to currency mode.</li>
+<li><code>as::currency_iso</code> -- change the currency format to international, like "USD" instead of "$". This flag is supported when using ICU 4.2 and above.</li>
+<li><code>as::currency_national</code> -- change currency format to national, like "$".</li>
+<li><code>as::currency_default</code> -- return to the default (national) currency format.</li>
+</ul>
+<dl class="note"><dt><b>Note:</b></dt><dd><code>as::currency_XYZ</code> manipulators have no effect on general formatting, only on the currency format. You must use both currency and number manipulators to use a non-default format.</dd></dl>
+<h2><a class="anchor" id="date_and_time_formatting"></a>
+Date and Time formatting</h2>
+<p>Dates and times are represented as POSIX time. When date-time formatting is turned on in the <code>iostream</code>, each number is treated as a POSIX time. The number may be an integer or a double.</p>
+<p>There are four major manipulators for Date and Time formatting:</p>
+<ul>
+<li><code>as::date</code> -- date only</li>
+<li><code>as::time</code> -- time only</li>
+<li><code>as::datetime</code> -- both date and time</li>
+<li><code>as::ftime</code> -- parameterized manipulator that allows specification of time in the format that is used in the <code>strftime</code> function. <b>Note:</b> not all formatting flags of <code>strftime</code> are supported.</li>
+</ul>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"> time_t now=<a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">time</a>(0);
+ cout &lt;&lt; <span class="stringliteral">&quot;Today is &quot;</span>&lt;&lt; <a class="code" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">as::date</a> &lt;&lt; now &lt;&lt; <span class="stringliteral">&quot; and tomorrow is &quot;</span> &lt;&lt; now+24*3600 &lt;&lt; endl;
+ cout &lt;&lt; <span class="stringliteral">&quot;Current time is &quot;</span>&lt;&lt; <a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">as::time</a> &lt;&lt; now &lt;&lt; endl;
+ cout &lt;&lt; <span class="stringliteral">&quot;The current weekday is &quot;</span>&lt;&lt; <a class="code" href="group__manipulators.html#gaff2d2d435fb9efcb185b2b47355e5fd6">as::ftime</a>(<span class="stringliteral">&quot;%A&quot;</span>) &lt;&lt; now &lt;&lt; endl;
+</pre></div><p>More fine-grained control of date-time formatting is also available:</p>
+<ul>
+<li><code>as::time_default</code> , <code>as::time_short</code> , <code>as::time_medium</code> , <code>as::time_long</code> , <code>as::time_full</code> -- change time formatting.</li>
+<li><code>as::date_default</code> , <code>as::date_short</code> , <code>as::date_medium</code> , <code>as::date_long</code> , <code>as::date_full</code> -- change date formatting.</li>
+</ul>
+<p>These manipulators, when used together with the <code>as::date</code>, <code>as::time</code>, or <code>as::datetime</code> manipulators, change the date-time representation. The default format is medium.</p>
+<p>By default, the date and time are shown in the local time zone. This behavior may be changed with the following manipulators:</p>
+<ul>
+<li><code>as::gmt</code> -- display date and time in GMT.</li>
+<li><code>as::local_time</code> -- display in local time zone (default).</li>
+<li><code>as::time_zone</code> -- parameterized manipulator that sets the time-zone ID for date-time formatting and parsing. It takes a string parameter that represents the time zone ID.</li>
+</ul>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"> <span class="keywordtype">double</span> now=<a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">time</a>(0);
+ cout &lt;&lt; <a class="code" href="group__manipulators.html#ga820edf843e20847a0c4ccb8da0c4acd8">as::datetime</a> &lt;&lt; <a class="code" href="group__manipulators.html#gac6cb5458543daf651cd6b48812891541">as::local_time</a> &lt;&lt; <span class="stringliteral">&quot;Local time is: &quot;</span>&lt;&lt; now &lt;&lt; endl;
+ cout &lt;&lt; <a class="code" href="group__manipulators.html#gac90c969d876305b8584def8632ae1808">as::gmt</a> &lt;&lt; <span class="stringliteral">&quot;GMT Time is: &quot;</span>&lt;&lt; now &lt;&lt;endl;
+ cout &lt;&lt; <a class="code" href="group__manipulators.html#gad51fbdc634fe0c81e5183915e9eeb238">as::time_zone</a>(<span class="stringliteral">&quot;EST&quot;</span>) &lt;&lt; <span class="stringliteral">&quot;Eastern Standard Time is: &quot;</span>&lt;&lt; now &lt;&lt;endl;
+</pre></div><p>There is a list of supported <code>strftime</code> flags by ICU backend:</p>
+<ul>
+<li><code>%a</code> -- Abbreviated weekday (Sun.)</li>
+<li><code>%A</code> -- Full weekday (Sunday)</li>
+<li><code>%b</code> -- Abbreviated month (Jan.)</li>
+<li><code>%B</code> -- Full month (January)</li>
+<li><code>%c</code> -- Locale date-time format. <b>Note:</b> prefer using <code>as::datetime</code> </li>
+<li><code>%d</code> -- Day of Month [01,31]</li>
+<li><code>%e</code> -- Day of Month [1,31]</li>
+<li><code>%h</code> -- Same as <code>%b</code> </li>
+<li><code>%H</code> -- 24 clock hour [00,23]</li>
+<li><code>%I</code> -- 12 clock hour [01,12]</li>
+<li><code>%j</code> -- Day of year [1,366]</li>
+<li><code>%m</code> -- Month [01,12]</li>
+<li><code>%M</code> -- Minute [00,59]</li>
+<li><code>%n</code> -- New Line</li>
+<li><code>%p</code> -- AM/PM in locale representation</li>
+<li><code>%r</code> -- Time with AM/PM, same as <code>%I:%M:%S</code> %p</li>
+<li><code>%R</code> -- Same as <code>%H:%M</code> </li>
+<li><code>%S</code> -- Second [00,61]</li>
+<li><code>%t</code> -- Tab character</li>
+<li><code>%T</code> -- Same as <code>%H:%M:%S</code> </li>
+<li><code>%x</code> -- Local date representation. **Note:** prefer using <code>as::date</code> </li>
+<li><code>%X</code> -- Local time representation. **Note:** prefer using <code>as::time</code> </li>
+<li><code>%y</code> -- Year [00,99]</li>
+<li><code>%Y</code> -- 4 digits year. (2009)</li>
+<li><code>%Z</code> -- Time Zone</li>
+<li><code>%%</code> -- Percent symbol</li>
+</ul>
+<p>Unsupported <code>strftime</code> flags are: <code>%C</code> , <code>%u</code> , <code>%U</code> , <code>%V</code> , <code>%w</code> , <code>%W</code> . Also, the <code>O</code> and <code>E</code> modifiers are not supported.</p>
+<p><b>General</b> <b>recommendations</b> </p>
+<ul>
+<li>Prefer using generic date-time manipulators rather than specifying the full format using <code>as::ftime</code>.</li>
+<li>Remember that current calendars may be not Gregorian.</li>
+</ul>
+<h2><a class="anchor" id="formatting_internals"></a>
+Internals</h2>
+<p>Formatting information is stored in a stream class by using the <code>xalloc</code>, <code>pword</code>, and <code>register_callback</code> member functions of <code>std::ios_base</code> . All the information is stored and managed using a special object bound to <code>iostream</code>, and the manipulators just change its state.</p>
+<p>When a number is written to or read from the stream, a custom Boost.Locale facet accesses the object and checks the required formatting information. Then it creates a special object that actually formats the number and caches it in the <code>iostream</code>. The next time a number is written to the stream, the same formatter would be used unless some flags had changed and formatter object is invalid. </p>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/ftv2blank.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/ftv2doc.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/ftv2folderclosed.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/ftv2folderopen.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/ftv2lastnode.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/ftv2link.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/ftv2mlastnode.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/ftv2mnode.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/ftv2node.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/ftv2plastnode.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/ftv2pnode.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/ftv2vertline.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/functions.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li class="current">a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>absolute_maximum
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5ab5d1af0b2698fee942a1486dfcc6552b">boost::locale::abstract_calendar</a>
+</li>
+<li>absolute_minimum
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a28694319e58f559df9ca41b22f03427e">boost::locale::abstract_calendar</a>
+</li>
+<li>actual_maximum
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a3d2648e95466623ba20502281e0208af">boost::locale::abstract_calendar</a>
+</li>
+<li>actual_minimum
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a5aa2c2d439c6e801e3bc48a35972932b">boost::locale::abstract_calendar</a>
+</li>
+<li>add()
+: <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a0e70247c1738dbf6869e6d8c04461893">boost::locale::date_time_period_set</a>
+</li>
+<li>add_backend()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#ae3c6eca5cc54c5161fef3bfd14509c64">boost::locale::localization_backend_manager</a>
+</li>
+<li>add_messages_domain()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#a15020562d16dbbe276325b0162d54565">boost::locale::generator</a>
+</li>
+<li>add_messages_path()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#a12823bbdb209690bfb77caa6404fd91b">boost::locale::generator</a>
+</li>
+<li>adjust_value()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#afb8e3a4d2ad93274ec119dc3dd0b103a">boost::locale::abstract_calendar</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x62.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x62.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li class="current">b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>base_iterator
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+</li>
+<li>basic_format()
+: <a class="el" href="classboost_1_1locale_1_1basic__format.html#a155e8e60061da7461bbcc958d600c190">boost::locale::basic_format&lt; CharType &gt;</a>
+</li>
+<li>basic_message()
+: <a class="el" href="group__message.html#ga4d78f8f45467984d7244e2ddbb9e0f6e">boost::locale::basic_message&lt; CharType &gt;</a>
+</li>
+<li>begin()
+: <a class="el" href="group__boundary.html#ga56f42a32f0378b6e157671f9e17bd66f">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a5428ff79bc05b78989f56519b58a6d9c">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="group__boundary.html#gaf74ff9c86c177efa8f74856277d659af">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+</li>
+<li>boundary_indexing()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html#a251d097b8498d6dade6110b0829c8cf5">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a>
+</li>
+<li>boundary_point()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a653a1c0d7480006ff647a656c74521df">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+</li>
+<li>boundary_point_index()
+: <a class="el" href="group__boundary.html#ga9b926379fa2fcc7f87dc067953049d69">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+</li>
+<li>break_info()
+: <a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a2ad400451f8cf8ca04924a26cb694043">boost::locale::boundary::break_info</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x63.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x63.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li class="current">c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>calendar()
+: <a class="el" href="classboost_1_1locale_1_1calendar.html#a889746f73b03bb21f5c8459cbe9b293d">boost::locale::calendar</a>
+</li>
+<li>calendar_facet()
+: <a class="el" href="classboost_1_1locale_1_1calendar__facet.html#a04e5d7baa3bb0f362b0c2faac0c5d376">boost::locale::calendar_facet</a>
+</li>
+<li>calendar_option_type
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5">boost::locale::abstract_calendar</a>
+</li>
+<li>callback
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a63bd8b01ca532a2657186bab3fa396a2">boost::locale::gnu_gettext::messages_info</a>
+</li>
+<li>callback_type
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4dfe37c5a392e5106e65b396a5288b76">boost::locale::gnu_gettext::messages_info</a>
+</li>
+<li>case_folding
+: <a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba91936aed5b7c3a82b4d2c2354ead03d3">boost::locale::converter_base</a>
+</li>
+<li>categories()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#ae3c095f074329954eb90bb80488c7f76">boost::locale::generator</a>
+</li>
+<li>char_type
+: <a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">boost::locale::message_format&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">boost::locale::basic_message&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ad3785355ea817c087bf428315a332169">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">boost::locale::collator&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1basic__format.html#a45c16f2e69842b8d223d240bbd6e210a">boost::locale::basic_format&lt; CharType &gt;</a>
+</li>
+<li>characters()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#ad5e01c555aa43b438f688dbc29725ab8">boost::locale::generator</a>
+</li>
+<li>clear_cache()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#a7b4458ef36df82bc9e359735c55203e8">boost::locale::generator</a>
+</li>
+<li>clear_domains()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#ade4a0ae57dbe87dfc38aa945f063d3c4">boost::locale::generator</a>
+</li>
+<li>clear_options()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#a1804390c65562fa66327152e9dd04c60">boost::locale::generator</a>
+, <a class="el" href="classboost_1_1locale_1_1localization__backend.html#a631af306f8652dcf7874b0bb38ab8891">boost::locale::localization_backend</a>
+</li>
+<li>clear_paths()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#ae6ef1ec096f219f4e6c092507e41fa35">boost::locale::generator</a>
+</li>
+<li>clone()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend.html#ab89828234ca84d4b43f3692bfbb08b25">boost::locale::localization_backend</a>
+, <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a73bc2d023be4c6ac6a6f441f74ded2f9">boost::locale::abstract_calendar</a>
+, <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#a702b31840be6f5c540cd22ac75cb2349">boost::locale::util::base_converter</a>
+</li>
+<li>collator()
+: <a class="el" href="classboost_1_1locale_1_1collator.html#a25a8b21a756756e850a7488a54610053">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+<li>comparator()
+: <a class="el" href="structboost_1_1locale_1_1comparator.html#af40ee48c6c93b6e5d91492a3e0cb96a8">boost::locale::comparator&lt; CharType, default_level &gt;</a>
+</li>
+<li>compare()
+: <a class="el" href="classboost_1_1locale_1_1collator.html#a9ccdfec693cdc5a71b5adc1f083881bf">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+<li>const_iterator
+: <a class="el" href="group__boundary.html#ga5f8e61b5babc3f0fa95f5fb8acae3724">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="group__boundary.html#gac9ce9158eb2fb030c1baf93376203d16">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#aa24dcd83aefe4925bfc11b0285e2517a">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+<li>conversion_type
+: <a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669b">boost::locale::converter_base</a>
+</li>
+<li>convert()
+: <a class="el" href="group__message.html#ga3f2c9d7f9a363efa607738083a986251">boost::locale::message_format&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1converter.html#a38dcc87504308ad5a51f3190e3c0da4b">boost::locale::converter&lt; Char &gt;</a>
+</li>
+<li>converter()
+: <a class="el" href="classboost_1_1locale_1_1converter.html#aba25fd4a18937543823cd61bef72c628">boost::locale::converter&lt; Char &gt;</a>
+</li>
+<li>country()
+: <a class="el" href="classboost_1_1locale_1_1info.html#a249c20e36da6827a8dc8b12a8342a7dc">boost::locale::info</a>
+, <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ae939e0c5dbabba7fb4cc2872f4e7dac2">boost::locale::gnu_gettext::messages_info</a>
+</li>
+<li>country_property
+: <a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15ab59b95580bc749f21c832a70d4b73c61">boost::locale::info</a>
+</li>
+<li>create_calendar()
+: <a class="el" href="classboost_1_1locale_1_1calendar__facet.html#a6db1915db3ad99ea65334dddaa7dcc28">boost::locale::calendar_facet</a>
+</li>
+<li>currency_flags()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#ad31ea1190ae882f20eea582312c6c573">boost::locale::ios_info</a>
+</li>
+<li>current
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a83d87ff10ff6107dfd0405f1e8757ef8">boost::locale::abstract_calendar</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x64.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x64.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,170 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li class="current">d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>date_flags()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#aec16372d284296c63ebd282121fa0005">boost::locale::ios_info</a>
+</li>
+<li>date_time()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a7d98e552f2ff8a421a5c226102ba0138">boost::locale::date_time</a>
+</li>
+<li>date_time_duration()
+: <a class="el" href="classboost_1_1locale_1_1date__time__duration.html#ac4b0d49c998032003553e8faf0e5f2cb">boost::locale::date_time_duration</a>
+</li>
+<li>date_time_error()
+: <a class="el" href="classboost_1_1locale_1_1date__time__error.html#abbd57421fc4617b23ecb33c398152dc8">boost::locale::date_time_error</a>
+</li>
+<li>date_time_pattern()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#a4c788d42a54235a501cfd6602e0939d9">boost::locale::ios_info</a>
+</li>
+<li>date_time_period()
+: <a class="el" href="structboost_1_1locale_1_1date__time__period.html#a61b11b2243098412dddd804ca7e104af">boost::locale::date_time_period</a>
+</li>
+<li>date_time_period_set()
+: <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a635b8d91c4c8da99857810e42a0aff65">boost::locale::date_time_period_set</a>
+</li>
+<li>datetime_flags()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#a6e90b9fcfb723495da5239fc380b0331">boost::locale::ios_info</a>
+</li>
+<li>difference()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a36df44f891d2a39ca16f57e568b67a3d">boost::locale::date_time</a>
+, <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a7bd4c26f5a4260f6d9c91c615efc4b46">boost::locale::abstract_calendar</a>
+</li>
+<li>difference_type
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a79ee4d48248ffbc23f84a33355ca3b62">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+<li>display_flags()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#a18b06a5cf88e25361bf188f64216edf2">boost::locale::ios_info</a>
+</li>
+<li>do_compare()
+: <a class="el" href="classboost_1_1locale_1_1collator.html#ada3a683bed35789e081b710a8e9a9a07">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+<li>do_hash()
+: <a class="el" href="classboost_1_1locale_1_1collator.html#aa093cd4ed0b4be4a5e38f0f04a56ac0b">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+<li>do_transform()
+: <a class="el" href="classboost_1_1locale_1_1collator.html#a84b5cb6ff01cf1a1330e1556a2c674d5">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+<li>domain()
+: <a class="el" href="group__message.html#ga73e25178ba9ef91ebe1df0aade4d8ae6">boost::locale::message_format&lt; CharType &gt;</a>
+, <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a08bbb38698a079239430066b688d28ab">boost::locale::gnu_gettext::messages_info::domain</a>
+</li>
+<li>domain_id()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#a08b1bb49e5806900bfa1901e869497a6">boost::locale::ios_info</a>
+</li>
+<li>domains
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a1ca79b90b4b8dbc924e5eb1b42188311">boost::locale::gnu_gettext::messages_info</a>
+</li>
+<li>domains_type
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ac3bfe22cf949ed3f87ee28fa0c983502">boost::locale::gnu_gettext::messages_info</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x65.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x65.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li class="current">e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>empty()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a84022afa120893d0716fc446816eb83f">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+<li>encoding
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4a7406581c6c7975c90db9d2d157d384">boost::locale::gnu_gettext::messages_info</a>
+, <a class="el" href="classboost_1_1locale_1_1info.html#a1979a5d7b90604c45e856a139c68f5ba">boost::locale::info</a>
+, <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a7004c3d4bb7ff1ebdba50535723d84a5">boost::locale::gnu_gettext::messages_info::domain</a>
+</li>
+<li>encoding_property
+: <a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15a1aa0567014d09df594b4a616f20c9b26">boost::locale::info</a>
+</li>
+<li>end()
+: <a class="el" href="classboost_1_1locale_1_1date__time__duration.html#a100bac2003f4e07ea498e10d0dd1f6b1">boost::locale::date_time_duration</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#aaedd7bb4760bae3dcdb165b330806261">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="group__boundary.html#gaf3d66d578e32a63b3f0ffbb59740667b">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="group__boundary.html#ga8757062d2446b35675b585651c5fea9f">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x66.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x66.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li class="current">f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>facet_type
+: <a class="el" href="group__message.html#gaa63527cb368d0bcd4cb0809138c927df">boost::locale::basic_message&lt; CharType &gt;</a>
+</li>
+<li>find()
+: <a class="el" href="group__boundary.html#ga2480236106971797460187777f2a4411">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="group__boundary.html#ga0bb71a287afca990e85b17246568492d">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+</li>
+<li>first_day_of_week()
+: <a class="el" href="classboost_1_1locale_1_1calendar.html#a8144b98a316798476040348483fe2a6e">boost::locale::calendar</a>
+</li>
+<li>from_unicode()
+: <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#afeecf1ee2699c26960cbf2d7d6d71d41">boost::locale::util::base_converter</a>
+</li>
+<li>full_select()
+: <a class="el" href="group__boundary.html#gace7faa10d536c85df0f2d5cac85f2bbc">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x67.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x67.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li class="current">g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>generate()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#a75ba62f2ae7daa5a2d6641e36e064ecb">boost::locale::generator</a>
+</li>
+<li>generator()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#a767403ea3f6259fd184a6e355caf62f2">boost::locale::generator</a>
+</li>
+<li>get()
+: <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a907a9385c1a15dab07aade7466620bf6">boost::locale::hold_ptr&lt; T &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">boost::locale::date_time</a>
+, <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a89d377e934af287573212581cab70dd6">boost::locale::localization_backend_manager</a>
+, <a class="el" href="group__message.html#ga4f65e4e1c3995eb09dd8f8f0e150a012">boost::locale::message_format&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">boost::locale::date_time_duration</a>
+, <a class="el" href="group__message.html#gabb35b8a77bca9d28c5d5c266b66fe291">boost::locale::message_format&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">boost::locale::ios_info</a>
+</li>
+<li>get_all_backends()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a7bd336cf325b0ee284ab8a07813679c0">boost::locale::localization_backend_manager</a>
+</li>
+<li>get_integer_property()
+: <a class="el" href="classboost_1_1locale_1_1info.html#aee97062cd9c8a1c6b24a160783865ee2">boost::locale::info</a>
+</li>
+<li>get_locale()
+: <a class="el" href="classboost_1_1locale_1_1calendar.html#aaf669f493ef0226aefbb6d13db8c27d1">boost::locale::calendar</a>
+</li>
+<li>get_option()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a0c034dd6f135b7d9b6faad08d49715a8">boost::locale::abstract_calendar</a>
+</li>
+<li>get_string_property()
+: <a class="el" href="classboost_1_1locale_1_1info.html#a38673d9985abd1c98713b262fadfe584">boost::locale::info</a>
+</li>
+<li>get_time()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a8900097c0b687393b053bc0420070815">boost::locale::abstract_calendar</a>
+</li>
+<li>get_time_zone()
+: <a class="el" href="classboost_1_1locale_1_1calendar.html#af4063debebd6cc08cf25171ce5ee220e">boost::locale::calendar</a>
+</li>
+<li>get_timezone()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a51f4b91d0dc2f9afa3920a771307d92f">boost::locale::abstract_calendar</a>
+</li>
+<li>get_value()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a7eacfa5d8f37dfc839d0239c2fcdf64e">boost::locale::abstract_calendar</a>
+</li>
+<li>global()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a65649bc161a0cc160da9b40a9ad14e20">boost::locale::localization_backend_manager</a>
+</li>
+<li>greatest_minimum
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a75e80e0a10af4b2b8eb2fcab72e4b200">boost::locale::abstract_calendar</a>
+, <a class="el" href="classboost_1_1locale_1_1calendar.html#a3c2475ee3ebb107e47701cf732532f9f">boost::locale::calendar</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x68.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x68.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li class="current">h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>hash()
+: <a class="el" href="classboost_1_1locale_1_1collator.html#a89752e2023643f972b6cc8024340d5d4">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+<li>hold_ptr()
+: <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a681ee3d579435f9f2f171b830c402072">boost::locale::hold_ptr&lt; T &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x69.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x69.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li class="current">i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>id
+: <a class="el" href="classboost_1_1locale_1_1converter.html#a0ab17b265161bb2c5d7a233710d2740b">boost::locale::converter&lt; Char &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1calendar__facet.html#a88dc563112346949302fd95df833089c">boost::locale::calendar_facet</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html#a6ec435e58e34f70046f62ac0314c1a58">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1info.html#a01c274323da1367b153952ee1f056572">boost::locale::info</a>
+</li>
+<li>identical
+: <a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3c209055ff840e311581ab43013026f2">boost::locale::collator_base</a>
+</li>
+<li>illegal
+: <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa02e2dfd8ddc2b40a8705c6ea7fa8d48">boost::locale::util::base_converter</a>
+</li>
+<li>incomplete
+: <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa78dd2bae2783e31a00849a4e74aeb1e">boost::locale::util::base_converter</a>
+</li>
+<li>info()
+: <a class="el" href="classboost_1_1locale_1_1info.html#a5545bf33988c859b3b864d4d65178134">boost::locale::info</a>
+</li>
+<li>install()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend.html#a5992c75d469f775ce1d18a0912bfa8a1">boost::locale::localization_backend</a>
+</li>
+<li>integer_property
+: <a class="el" href="classboost_1_1locale_1_1info.html#a53d7aa756e1b74f360913a9c9d41bb6d">boost::locale::info</a>
+</li>
+<li>invalid_charset_error()
+: <a class="el" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html#ae951e3a99a115a60cc87d4d258764681">boost::locale::conv::invalid_charset_error</a>
+</li>
+<li>is_dst
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5a69f0c20e321e3b914883869466122c61">boost::locale::abstract_calendar</a>
+</li>
+<li>is_gregorian
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5add910815d1ad0e97275b781223e869a9">boost::locale::abstract_calendar</a>
+, <a class="el" href="classboost_1_1locale_1_1calendar.html#a657ece3d3d59b8fc3c817bc05227620b">boost::locale::calendar</a>
+</li>
+<li>is_in_daylight_saving_time()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a047e6e010df55fee166dcb3c9e7d3b95">boost::locale::date_time</a>
+</li>
+<li>is_thread_safe()
+: <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#aadcc2c1a767f9d24972c6995e81c1315">boost::locale::util::base_converter</a>
+</li>
+<li>iterator
+: <a class="el" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a5ea18137618a1a84ff0b75c3b166c495">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+, <a class="el" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af279d5382e1b28c2ce82035c1929ea66">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+</li>
+<li>iterator_type
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x6c.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x6c.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li class="current">l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>language
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a1afc3be03d4848042e3208d4ca5aec85">boost::locale::gnu_gettext::messages_info</a>
+, <a class="el" href="classboost_1_1locale_1_1info.html#a7c56b9df3aba82649afc66c06192c7df">boost::locale::info</a>
+</li>
+<li>language_property
+: <a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15a51e81de8c364b3734f4e2baf1abaddcf">boost::locale::info</a>
+</li>
+<li>least_maximum
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a388661725182373d2f92b709034f85c9">boost::locale::abstract_calendar</a>
+, <a class="el" href="classboost_1_1locale_1_1calendar.html#a4c708d889ef92487982d918a78be5eda">boost::locale::calendar</a>
+</li>
+<li>length()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a45edfde079b2afe36c55043c7a00b438">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+<li>level_type
+: <a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">boost::locale::collator_base</a>
+</li>
+<li>locale_cache_enabled()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#ac2d152e2803cd96f4acc646943f2df51">boost::locale::generator</a>
+</li>
+<li>locale_category
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a39ea1cfd018c7702d94d03e76042ff10">boost::locale::gnu_gettext::messages_info</a>
+</li>
+<li>localization_backend_manager()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a0407271db5e7722f901c510474c3581f">boost::locale::localization_backend_manager</a>
+</li>
+<li>lower_case
+: <a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba2c5c38c6bc6ca01fb9e573c148ba8ebe">boost::locale::converter_base</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x6d.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x6d.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li class="current">m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>map()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html#aee429a6d57b48b6f7dda3d03a67d6501">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a>
+, <a class="el" href="group__boundary.html#gafa2a756b10d3522743204b45b794bb3e">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="group__boundary.html#ga6b4b5d5cf80b55302a88e7b36c812418">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+</li>
+<li>mark()
+: <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#ad81b414edc6ea88accc5dad5d17a351b">boost::locale::period::period_type</a>
+</li>
+<li>max_len()
+: <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#ab2332b78e3e0c0b94ea3f6dafd123d60">boost::locale::util::base_converter</a>
+</li>
+<li>maximum()
+: <a class="el" href="classboost_1_1locale_1_1calendar.html#abd88cbf4c3b9f072430f9e7d9ab2d744">boost::locale::calendar</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time.html#adb258ce11408b62bc0f14a60a05f0752">boost::locale::date_time</a>
+</li>
+<li>message_format()
+: <a class="el" href="group__message.html#gafa681d0df94a35f9d75c16dea099d03e">boost::locale::message_format&lt; CharType &gt;</a>
+</li>
+<li>message_type
+: <a class="el" href="classboost_1_1locale_1_1basic__format.html#a75213e5cc9d113f6b25e72542a4841f5">boost::locale::basic_format&lt; CharType &gt;</a>
+</li>
+<li>minimum()
+: <a class="el" href="classboost_1_1locale_1_1calendar.html#a6670c7319dcaec257819b7a802d2c5f7">boost::locale::calendar</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time.html#a3363a0c562300095432a17e472d2e52d">boost::locale::date_time</a>
+</li>
+<li>move
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95aac5f9cb6e12a121b47b51434a3655c81">boost::locale::abstract_calendar</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x6e.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x6e.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li class="current">n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>name
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#ae2d68e6e122c01aa07e60142d8af54fc">boost::locale::gnu_gettext::messages_info::domain</a>
+, <a class="el" href="classboost_1_1locale_1_1info.html#af8181bf226f369548c030220932323b9">boost::locale::info</a>
+</li>
+<li>name_property
+: <a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15ab68bcb824a19b6cfd95ad3c714369369">boost::locale::info</a>
+</li>
+<li>nanoseconds
+: <a class="el" href="structboost_1_1locale_1_1posix__time.html#aaa1f72a3f4313cd079b08375132c794d">boost::locale::posix_time</a>
+</li>
+<li>normalization
+: <a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bae20bf7eface68062a0b9f2396833354a">boost::locale::converter_base</a>
+</li>
+<li>normalize()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#aa06fef77acaa6104e3cd2bc80ccc76d9">boost::locale::abstract_calendar</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x6f.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x6f.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,212 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li class="current">o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>offset
+: <a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a47cdf1764bf8e294ea8a1079501a8c44">boost::locale::boundary::break_info</a>
+</li>
+<li>operator iterator_type()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#aa2dc88b4d02151aea939a01b7fc88730">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+</li>
+<li>operator std::basic_string&lt; char_type, T, A &gt;()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a76e2717f48ca7a6336a9fede9dec4d40">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+<li>operator string_type()
+: <a class="el" href="group__message.html#ga8da81038939b85ca248cba50f1deacf1">boost::locale::basic_message&lt; CharType &gt;</a>
+</li>
+<li>operator!=()
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a26442fe81a0ce8c51775b1267455ecbe">boost::locale::gnu_gettext::messages_info::domain</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a4347b22dd7edb8af49d1316a6f86d0c2">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1calendar.html#ab0d93fe1d3bfb7b66f8ef631ede93236">boost::locale::calendar</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a4cd03f39d75bb054be9a0ae23189fa7a">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a2e38c575af16843a3aa140a4332646a3">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time.html#a289953d80af568f86ddf533c0b161663">boost::locale::date_time</a>
+, <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#a0156ce442f97fd86fa7c702e4d24031a">boost::locale::period::period_type</a>
+</li>
+<li>operator%()
+: <a class="el" href="classboost_1_1locale_1_1basic__format.html#a63e45267da46ff25d09441ac52f21efc">boost::locale::basic_format&lt; CharType &gt;</a>
+</li>
+<li>operator()()
+: <a class="el" href="structboost_1_1locale_1_1comparator.html#abd62dbc2af0eb6e6c261a7c88e09f752">boost::locale::comparator&lt; CharType, default_level &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1generator.html#acd80b3f2371c77f4f7e7dfe69ec670ab">boost::locale::generator</a>
+</li>
+<li>operator*()
+: <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#af99f3719b755b787b022253aa6f8d1c0">boost::locale::hold_ptr&lt; T &gt;</a>
+</li>
+<li>operator+()
+: <a class="el" href="structboost_1_1locale_1_1date__time__period.html#a219fa833071824e308a45dc44384fb99">boost::locale::date_time_period</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time.html#a0df3596add1804b1f64d363fea181fe2">boost::locale::date_time</a>
+</li>
+<li>operator+=()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#ab3117067df65d1c33e89ab375f03d27c">boost::locale::date_time</a>
+</li>
+<li>operator-()
+: <a class="el" href="structboost_1_1locale_1_1date__time__period.html#ab3937bd69fcfeac096dceeee0f13437e">boost::locale::date_time_period</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time.html#ac870c0fcba5814cd91bb9c63823e280a">boost::locale::date_time</a>
+</li>
+<li>operator-=()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a38468aff1a820dc1c41a2a8280120848">boost::locale::date_time</a>
+</li>
+<li>operator-&gt;()
+: <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a474f2619452b63408e1e761f414328f4">boost::locale::hold_ptr&lt; T &gt;</a>
+</li>
+<li>operator/()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#ac2a3a8f6fdba552b19e478bb6757523e">boost::locale::date_time</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time__duration.html#ac1a04091cc80b98f6faf7e5e73ce5f35">boost::locale::date_time_duration</a>
+</li>
+<li>operator&lt;()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a7b27ad955eade1013a43336e2a17adec">boost::locale::date_time</a>
+, <a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a6ef38e6f115ed9121e4d8f6189f6c4e2">boost::locale::boundary::break_info</a>
+</li>
+<li>operator&lt;&lt;()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a22d2b503e2d58c7e2983b89c69ed13bd">boost::locale::date_time</a>
+</li>
+<li>operator&lt;&lt;=()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#ae71279d6e8dcc984fe3703b61d545416">boost::locale::date_time</a>
+</li>
+<li>operator&lt;=()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a76c5b0bbc01bd561c25cb83f26e5f535">boost::locale::date_time</a>
+</li>
+<li>operator=()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#abe5d459e7552ca13b127c682e0d9caab">boost::locale::date_time</a>
+, <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#af506ec1809f2f67c71f590862f63eeab">boost::locale::localization_backend_manager</a>
+, <a class="el" href="classboost_1_1locale_1_1calendar.html#a7125a6c3f3d629f871ddb0f3c2f5a181">boost::locale::calendar</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time.html#a2f7ccfb9e28fa3bb172be9f0446caafd">boost::locale::date_time</a>
+, <a class="el" href="group__boundary.html#ga83d57b993b00686b2cac711667c6a931">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="group__message.html#gae0e786e45ef32cf73efd8495cae45aed">boost::locale::basic_message&lt; CharType &gt;</a>
+, <a class="el" href="group__boundary.html#gae7941dc874ca05d2ef2a03f781c5b78a">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+</li>
+<li>operator==()
+: <a class="el" href="classboost_1_1locale_1_1calendar.html#a8939fba5987659b3153cb18eea9af969">boost::locale::calendar</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time.html#a4f11ded4c5383cc3fcd3684d0aa43892">boost::locale::date_time</a>
+, <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#a53ac6fdbaa7ae1b6d90e67bb5aadcce0">boost::locale::period::period_type</a>
+, <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a4a361b37db81571d440f0ec4d1e9038f">boost::locale::gnu_gettext::messages_info::domain</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a058ffbcbd43fc41a40a4a1cf5be987f2">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a9a30e70d41591b25c8c77961bff00057">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a87a96a1745184ff7495db87943aca424">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+</li>
+<li>operator&gt;()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a1907c677ae9b7d0736705df8ad58b3aa">boost::locale::date_time</a>
+</li>
+<li>operator&gt;=()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a4d807fa280bbe8d88efbc9a05f4a2d7c">boost::locale::date_time</a>
+</li>
+<li>operator&gt;&gt;()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a3a53ba943cb5140bafbfbda3d44b4083">boost::locale::date_time</a>
+</li>
+<li>operator&gt;&gt;=()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a797242365127dae7142f0a950c4e4e78">boost::locale::date_time</a>
+</li>
+<li>operator[]()
+: <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a177a4c3cb2de3b5c9b5fe5738660eba4">boost::locale::date_time_period_set</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x70.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x70.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li class="current">p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>paths
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a263d9d2c359ae7730e6d5bba54bb3022">boost::locale::gnu_gettext::messages_info</a>
+</li>
+<li>period_type()
+: <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#a8abba35d5073884677ce69ec3ba3eba7">boost::locale::period::period_type</a>
+</li>
+<li>primary
+: <a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ae57e842f398a27ee490208f5af39675b">boost::locale::collator_base</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x71.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x71.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li class="current">q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
+<li>quaternary
+: <a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a22ca1875fd63667fbb018df16b0aedba">boost::locale::collator_base</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x72.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x72.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li class="current">r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>release()
+: <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a2d7b2957c037589b65b2cdd4f61ebe03">boost::locale::hold_ptr&lt; T &gt;</a>
+</li>
+<li>remove_all_backends()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a8c9841c83aa85dbf8f61b2e17732499a">boost::locale::localization_backend_manager</a>
+</li>
+<li>reset()
+: <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#acb84b86bb220d663ffe13e5be9cfd72e">boost::locale::hold_ptr&lt; T &gt;</a>
+</li>
+<li>roll
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95a704e0e917603c2a88de22f3426a3e20b">boost::locale::abstract_calendar</a>
+</li>
+<li>rule()
+: <a class="el" href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="group__boundary.html#gad19735180401edb15acbdbbeb21e5a73">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a75e2f04f0f7c1065470f722d1f2e004b">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+, <a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a1a9b497daacb471f297682101696f4eb">boost::locale::boundary::break_info</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a962c26b7e2024767ad25f2be080fd53a">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="group__boundary.html#ga56e63913f51109e05a24a7136472a975">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x73.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x73.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li class="current">s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>same()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#aa20ae19bca185cc0fa4ab69d7f3c5883">boost::locale::abstract_calendar</a>
+</li>
+<li>secondary
+: <a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ad8e103443d69f03f00ac4b68a7181866">boost::locale::collator_base</a>
+</li>
+<li>seconds
+: <a class="el" href="structboost_1_1locale_1_1posix__time.html#a8209978ee423c6396d8179505ec5fa78">boost::locale::posix_time</a>
+</li>
+<li>segment()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a4e785bc97dba9e8e25f18b43957723e5">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+<li>segment_index()
+: <a class="el" href="group__boundary.html#ga46a5f584d5a1a43ad4bc0fff07183fcc">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+</li>
+<li>select()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#adf33775a09e7a765c3401e769019e915">boost::locale::localization_backend_manager</a>
+</li>
+<li>set()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a4c0ed3be4d5d3bb44014a2ea12927ff8">boost::locale::date_time</a>
+</li>
+<li>set_default_messages_domain()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#a4804bc5c4a9adb74cffcc2bdac87da1d">boost::locale::generator</a>
+</li>
+<li>set_option()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a9265206013005d9ac30cf723a7ffe032">boost::locale::abstract_calendar</a>
+, <a class="el" href="classboost_1_1locale_1_1generator.html#ac0bbbb4aca466e59e82b63bcbf2efc8b">boost::locale::generator</a>
+, <a class="el" href="classboost_1_1locale_1_1localization__backend.html#a3dc9028eb813001f6cdd8fca937837ef">boost::locale::localization_backend</a>
+</li>
+<li>set_time()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#acb01268c84f27a8a736b715ab9e9557a">boost::locale::abstract_calendar</a>
+</li>
+<li>set_timezone()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#aa17f0fd2e88d3da8fe7b12e98ad2d6c3">boost::locale::abstract_calendar</a>
+</li>
+<li>set_value()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a15067ccf90a19e640051a30a6d3a2a7f">boost::locale::abstract_calendar</a>
+</li>
+<li>size()
+: <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a0b726bd57ce8b631de89bbf404b8df2a">boost::locale::date_time_period_set</a>
+</li>
+<li>start()
+: <a class="el" href="classboost_1_1locale_1_1date__time__duration.html#afc2f075595d1774c866250d192b9db31">boost::locale::date_time_duration</a>
+</li>
+<li>str()
+: <a class="el" href="group__message.html#ga26c6489f8269096f835abfb268498fdd">boost::locale::basic_message&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1basic__format.html#a6bc65d7993e3ab6ad51809ef8fb65400">boost::locale::basic_format&lt; CharType &gt;</a>
+, <a class="el" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">boost::locale::basic_message&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ac139eae8c07ed82ba8343fedfa76c2bf">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="group__message.html#gaa907a1d3f43fe59cea938e1606f004ee">boost::locale::basic_message&lt; CharType &gt;</a>
+</li>
+<li>stream_type
+: <a class="el" href="classboost_1_1locale_1_1basic__format.html#a6aba7e54f0065f2697d13ff8a859309a">boost::locale::basic_format&lt; CharType &gt;</a>
+</li>
+<li>string_propery
+: <a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15">boost::locale::info</a>
+</li>
+<li>string_type
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a795d3328ac4d1692294f172c8480da47">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="group__message.html#gaaa932705310ce196fccc9d672b25518f">boost::locale::message_format&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">boost::locale::basic_format&lt; CharType &gt;</a>
+, <a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">boost::locale::basic_message&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+<li>swap()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a704626c84b012080f5e0b73db3d080fb">boost::locale::date_time</a>
+, <a class="el" href="group__message.html#gac204b563c7c9bd86e5555f129350f0e3">boost::locale::basic_message&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a3e2640b5df80f86aeb68a6ee78dfd6f9">boost::locale::hold_ptr&lt; T &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x74.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x74.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li class="current">t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>tertiary
+: <a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3a852752e9663b7b3340c435d0cfe36a">boost::locale::collator_base</a>
+</li>
+<li>time()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a17aa2b54462ebcf1860f8e4db9f7868e">boost::locale::date_time</a>
+</li>
+<li>time_flags()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#a06bdad5c9b11e57c16ad623776ce5096">boost::locale::ios_info</a>
+</li>
+<li>time_zone()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#a3f140278815b521f1568c52d0a9fea11">boost::locale::ios_info</a>
+</li>
+<li>title_case
+: <a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bac136b257286085de7bd7eb4a7876dfa7">boost::locale::converter_base</a>
+</li>
+<li>to_unicode()
+: <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#a27181b314e09f62ae9ea8fcd30d4e7c4">boost::locale::util::base_converter</a>
+</li>
+<li>transform()
+: <a class="el" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+<li>type
+: <a class="el" href="structboost_1_1locale_1_1date__time__period.html#aa6511600eb5264c8597f700668e9c628">boost::locale::date_time_period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x75.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x75.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li class="current">u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>update_type
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95">boost::locale::abstract_calendar</a>
+</li>
+<li>upper_case
+: <a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba0fee54e09732910ab30856d0e34c8ad2">boost::locale::converter_base</a>
+</li>
+<li>use_ansi_encoding()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#ad9b74721ce3c5e1c39c7e9a4564e1e7b">boost::locale::generator</a>
+</li>
+<li>utf8()
+: <a class="el" href="classboost_1_1locale_1_1info.html#aafbbb5c291f60ce6fc3bc056859ba181">boost::locale::info</a>
+</li>
+<li>utf8_property
+: <a class="el" href="classboost_1_1locale_1_1info.html#a53d7aa756e1b74f360913a9c9d41bb6da4d27d781e7da56cb9b94bfd8cdcab5ea">boost::locale::info</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x76.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x76.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li class="current">v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>value
+: <a class="el" href="structboost_1_1locale_1_1date__time__period.html#aec776b16ed46a22833308a4112886ca4">boost::locale::date_time_period</a>
+</li>
+<li>value_type
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5">boost::locale::abstract_calendar</a>
+, <a class="el" href="group__boundary.html#ga7f7328a860cf485a4bd8f17658c291e1">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ab7ba55015262b4fb85bb531882a32ead">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="group__boundary.html#ga067c663d18faee08adb3355701ae72ba">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+</li>
+<li>variant
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#af543a11d3ff1d12e24c06306b30f8fb8">boost::locale::gnu_gettext::messages_info</a>
+, <a class="el" href="classboost_1_1locale_1_1info.html#a2e949e4362c8f0195e2a645fe875f1b4">boost::locale::info</a>
+</li>
+<li>variant_property
+: <a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15a2b38cb5c60ed931f21fc9bec4984900c">boost::locale::info</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x77.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x77.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li class="current">w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>write()
+: <a class="el" href="classboost_1_1locale_1_1basic__format.html#a457c9228d13e80da3c807a51aa5ef6cd">boost::locale::basic_format&lt; CharType &gt;</a>
+, <a class="el" href="group__message.html#ga4dd81f4d40c4e8871bb1bf02bbc8e968">boost::locale::basic_message&lt; CharType &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_0x7e.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_0x7e.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>q</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li class="current">~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented class members with links to the class documentation for each member:
+
+<h3><a class="anchor" id="index_0x7e"></a>- ~ -</h3><ul>
+<li>~hold_ptr()
+: <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#aace934e7a8b3f1880d1a06fa85795a48">boost::locale::hold_ptr&lt; T &gt;</a>
+</li>
+<li>~localization_backend_manager()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a7e602229ef95ea60834fdea95110bf19">boost::locale::localization_backend_manager</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_enum.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_enum.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Enumerations</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li class="current">Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;<ul>
+<li>calendar_option_type
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5">boost::locale::abstract_calendar</a>
+</li>
+<li>conversion_type
+: <a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669b">boost::locale::converter_base</a>
+</li>
+<li>integer_property
+: <a class="el" href="classboost_1_1locale_1_1info.html#a53d7aa756e1b74f360913a9c9d41bb6d">boost::locale::info</a>
+</li>
+<li>level_type
+: <a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">boost::locale::collator_base</a>
+</li>
+<li>string_propery
+: <a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15">boost::locale::info</a>
+</li>
+<li>update_type
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95">boost::locale::abstract_calendar</a>
+</li>
+<li>value_type
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5">boost::locale::abstract_calendar</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_eval.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_eval.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Enumerator</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li class="current">Enumerator</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;<ul>
+<li>absolute_maximum
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5ab5d1af0b2698fee942a1486dfcc6552b">boost::locale::abstract_calendar</a>
+</li>
+<li>absolute_minimum
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a28694319e58f559df9ca41b22f03427e">boost::locale::abstract_calendar</a>
+</li>
+<li>actual_maximum
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a3d2648e95466623ba20502281e0208af">boost::locale::abstract_calendar</a>
+</li>
+<li>actual_minimum
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a5aa2c2d439c6e801e3bc48a35972932b">boost::locale::abstract_calendar</a>
+</li>
+<li>case_folding
+: <a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba91936aed5b7c3a82b4d2c2354ead03d3">boost::locale::converter_base</a>
+</li>
+<li>country_property
+: <a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15ab59b95580bc749f21c832a70d4b73c61">boost::locale::info</a>
+</li>
+<li>current
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a83d87ff10ff6107dfd0405f1e8757ef8">boost::locale::abstract_calendar</a>
+</li>
+<li>encoding_property
+: <a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15a1aa0567014d09df594b4a616f20c9b26">boost::locale::info</a>
+</li>
+<li>greatest_minimum
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a75e80e0a10af4b2b8eb2fcab72e4b200">boost::locale::abstract_calendar</a>
+</li>
+<li>identical
+: <a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3c209055ff840e311581ab43013026f2">boost::locale::collator_base</a>
+</li>
+<li>is_dst
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5a69f0c20e321e3b914883869466122c61">boost::locale::abstract_calendar</a>
+</li>
+<li>is_gregorian
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a5f1927f4c71fafa4712265e6b68958b5add910815d1ad0e97275b781223e869a9">boost::locale::abstract_calendar</a>
+</li>
+<li>language_property
+: <a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15a51e81de8c364b3734f4e2baf1abaddcf">boost::locale::info</a>
+</li>
+<li>least_maximum
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#af786b3e65294d70769f2826ef95c7bd5a388661725182373d2f92b709034f85c9">boost::locale::abstract_calendar</a>
+</li>
+<li>lower_case
+: <a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba2c5c38c6bc6ca01fb9e573c148ba8ebe">boost::locale::converter_base</a>
+</li>
+<li>move
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95aac5f9cb6e12a121b47b51434a3655c81">boost::locale::abstract_calendar</a>
+</li>
+<li>name_property
+: <a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15ab68bcb824a19b6cfd95ad3c714369369">boost::locale::info</a>
+</li>
+<li>normalization
+: <a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bae20bf7eface68062a0b9f2396833354a">boost::locale::converter_base</a>
+</li>
+<li>primary
+: <a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ae57e842f398a27ee490208f5af39675b">boost::locale::collator_base</a>
+</li>
+<li>quaternary
+: <a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a22ca1875fd63667fbb018df16b0aedba">boost::locale::collator_base</a>
+</li>
+<li>roll
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a92cf9485b91d60b70ef00e183bdf4e95a704e0e917603c2a88de22f3426a3e20b">boost::locale::abstract_calendar</a>
+</li>
+<li>secondary
+: <a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ad8e103443d69f03f00ac4b68a7181866">boost::locale::collator_base</a>
+</li>
+<li>tertiary
+: <a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3a852752e9663b7b3340c435d0cfe36a">boost::locale::collator_base</a>
+</li>
+<li>title_case
+: <a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669bac136b257286085de7bd7eb4a7876dfa7">boost::locale::converter_base</a>
+</li>
+<li>upper_case
+: <a class="el" href="classboost_1_1locale_1_1converter__base.html#a726bc2bbcbb6f1e550cca14163fb669ba0fee54e09732910ab30856d0e34c8ad2">boost::locale::converter_base</a>
+</li>
+<li>utf8_property
+: <a class="el" href="classboost_1_1locale_1_1info.html#a53d7aa756e1b74f360913a9c9d41bb6da4d27d781e7da56cb9b94bfd8cdcab5ea">boost::locale::info</a>
+</li>
+<li>variant_property
+: <a class="el" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15a2b38cb5c60ed931f21fc9bec4984900c">boost::locale::info</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li class="current">a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>add()
+: <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a0e70247c1738dbf6869e6d8c04461893">boost::locale::date_time_period_set</a>
+</li>
+<li>add_backend()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#ae3c6eca5cc54c5161fef3bfd14509c64">boost::locale::localization_backend_manager</a>
+</li>
+<li>add_messages_domain()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#a15020562d16dbbe276325b0162d54565">boost::locale::generator</a>
+</li>
+<li>add_messages_path()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#a12823bbdb209690bfb77caa6404fd91b">boost::locale::generator</a>
+</li>
+<li>adjust_value()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#afb8e3a4d2ad93274ec119dc3dd0b103a">boost::locale::abstract_calendar</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x62.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x62.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li class="current">b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>basic_format()
+: <a class="el" href="classboost_1_1locale_1_1basic__format.html#a4c885ae60a5b867863b79acb75feff9e">boost::locale::basic_format&lt; CharType &gt;</a>
+</li>
+<li>basic_message()
+: <a class="el" href="group__message.html#gae32d7f89d5f268e8d6bae662d8008bae">boost::locale::basic_message&lt; CharType &gt;</a>
+</li>
+<li>begin()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a445da30d993880a1bd6d998e78755a44">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="group__boundary.html#gaf74ff9c86c177efa8f74856277d659af">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="group__boundary.html#ga56f42a32f0378b6e157671f9e17bd66f">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+</li>
+<li>boundary_indexing()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html#a251d097b8498d6dade6110b0829c8cf5">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a>
+</li>
+<li>boundary_point()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a653a1c0d7480006ff647a656c74521df">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+</li>
+<li>boundary_point_index()
+: <a class="el" href="group__boundary.html#ga9b926379fa2fcc7f87dc067953049d69">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+</li>
+<li>break_info()
+: <a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#ab2012ba50dc8730bf7e2b448fff8be33">boost::locale::boundary::break_info</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x63.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x63.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,168 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li class="current">c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>calendar()
+: <a class="el" href="classboost_1_1locale_1_1calendar.html#a889746f73b03bb21f5c8459cbe9b293d">boost::locale::calendar</a>
+</li>
+<li>calendar_facet()
+: <a class="el" href="classboost_1_1locale_1_1calendar__facet.html#a04e5d7baa3bb0f362b0c2faac0c5d376">boost::locale::calendar_facet</a>
+</li>
+<li>categories()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#ae3c095f074329954eb90bb80488c7f76">boost::locale::generator</a>
+</li>
+<li>characters()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#ad5e01c555aa43b438f688dbc29725ab8">boost::locale::generator</a>
+</li>
+<li>clear_cache()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#a7b4458ef36df82bc9e359735c55203e8">boost::locale::generator</a>
+</li>
+<li>clear_domains()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#ade4a0ae57dbe87dfc38aa945f063d3c4">boost::locale::generator</a>
+</li>
+<li>clear_options()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#a1804390c65562fa66327152e9dd04c60">boost::locale::generator</a>
+, <a class="el" href="classboost_1_1locale_1_1localization__backend.html#a631af306f8652dcf7874b0bb38ab8891">boost::locale::localization_backend</a>
+</li>
+<li>clear_paths()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#ae6ef1ec096f219f4e6c092507e41fa35">boost::locale::generator</a>
+</li>
+<li>clone()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a73bc2d023be4c6ac6a6f441f74ded2f9">boost::locale::abstract_calendar</a>
+, <a class="el" href="classboost_1_1locale_1_1localization__backend.html#ab89828234ca84d4b43f3692bfbb08b25">boost::locale::localization_backend</a>
+, <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#a702b31840be6f5c540cd22ac75cb2349">boost::locale::util::base_converter</a>
+</li>
+<li>collator()
+: <a class="el" href="classboost_1_1locale_1_1collator.html#a25a8b21a756756e850a7488a54610053">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+<li>comparator()
+: <a class="el" href="structboost_1_1locale_1_1comparator.html#af40ee48c6c93b6e5d91492a3e0cb96a8">boost::locale::comparator&lt; CharType, default_level &gt;</a>
+</li>
+<li>compare()
+: <a class="el" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+<li>convert()
+: <a class="el" href="group__message.html#ga3f2c9d7f9a363efa607738083a986251">boost::locale::message_format&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1converter.html#a38dcc87504308ad5a51f3190e3c0da4b">boost::locale::converter&lt; Char &gt;</a>
+</li>
+<li>converter()
+: <a class="el" href="classboost_1_1locale_1_1converter.html#aba25fd4a18937543823cd61bef72c628">boost::locale::converter&lt; Char &gt;</a>
+</li>
+<li>country()
+: <a class="el" href="classboost_1_1locale_1_1info.html#a249c20e36da6827a8dc8b12a8342a7dc">boost::locale::info</a>
+</li>
+<li>create_calendar()
+: <a class="el" href="classboost_1_1locale_1_1calendar__facet.html#a6db1915db3ad99ea65334dddaa7dcc28">boost::locale::calendar_facet</a>
+</li>
+<li>currency_flags()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#ad31ea1190ae882f20eea582312c6c573">boost::locale::ios_info</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x64.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x64.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li class="current">d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>date_flags()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#aec16372d284296c63ebd282121fa0005">boost::locale::ios_info</a>
+</li>
+<li>date_time()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a7d98e552f2ff8a421a5c226102ba0138">boost::locale::date_time</a>
+</li>
+<li>date_time_duration()
+: <a class="el" href="classboost_1_1locale_1_1date__time__duration.html#ac4b0d49c998032003553e8faf0e5f2cb">boost::locale::date_time_duration</a>
+</li>
+<li>date_time_error()
+: <a class="el" href="classboost_1_1locale_1_1date__time__error.html#abbd57421fc4617b23ecb33c398152dc8">boost::locale::date_time_error</a>
+</li>
+<li>date_time_pattern()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#a4c788d42a54235a501cfd6602e0939d9">boost::locale::ios_info</a>
+</li>
+<li>date_time_period()
+: <a class="el" href="structboost_1_1locale_1_1date__time__period.html#a61b11b2243098412dddd804ca7e104af">boost::locale::date_time_period</a>
+</li>
+<li>date_time_period_set()
+: <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a635b8d91c4c8da99857810e42a0aff65">boost::locale::date_time_period_set</a>
+</li>
+<li>datetime_flags()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#a6e90b9fcfb723495da5239fc380b0331">boost::locale::ios_info</a>
+</li>
+<li>difference()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a36df44f891d2a39ca16f57e568b67a3d">boost::locale::date_time</a>
+, <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a7bd4c26f5a4260f6d9c91c615efc4b46">boost::locale::abstract_calendar</a>
+</li>
+<li>display_flags()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#a8b72d7ac5dcd8be72f4bf49b73616db4">boost::locale::ios_info</a>
+</li>
+<li>do_compare()
+: <a class="el" href="classboost_1_1locale_1_1collator.html#ada3a683bed35789e081b710a8e9a9a07">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+<li>do_hash()
+: <a class="el" href="classboost_1_1locale_1_1collator.html#aa093cd4ed0b4be4a5e38f0f04a56ac0b">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+<li>do_transform()
+: <a class="el" href="classboost_1_1locale_1_1collator.html#a0ee27b7bc751b7a7fda4de1b0d896d57">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+<li>domain()
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a08bbb38698a079239430066b688d28ab">boost::locale::gnu_gettext::messages_info::domain</a>
+, <a class="el" href="group__message.html#ga73e25178ba9ef91ebe1df0aade4d8ae6">boost::locale::message_format&lt; CharType &gt;</a>
+</li>
+<li>domain_id()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#a91fee7df7d3802c65c28c5ef24a10707">boost::locale::ios_info</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x65.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x65.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li class="current">e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>empty()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a84022afa120893d0716fc446816eb83f">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+<li>encoding()
+: <a class="el" href="classboost_1_1locale_1_1info.html#a1979a5d7b90604c45e856a139c68f5ba">boost::locale::info</a>
+</li>
+<li>end()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#aaedd7bb4760bae3dcdb165b330806261">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="group__boundary.html#gaf3d66d578e32a63b3f0ffbb59740667b">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="group__boundary.html#ga8757062d2446b35675b585651c5fea9f">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time__duration.html#a100bac2003f4e07ea498e10d0dd1f6b1">boost::locale::date_time_duration</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a7e36b7f1c88ad1f5756ba6e501454bc4">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x66.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x66.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li class="current">f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>find()
+: <a class="el" href="group__boundary.html#ga2480236106971797460187777f2a4411">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="group__boundary.html#ga0bb71a287afca990e85b17246568492d">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+</li>
+<li>first_day_of_week()
+: <a class="el" href="classboost_1_1locale_1_1calendar.html#a8144b98a316798476040348483fe2a6e">boost::locale::calendar</a>
+</li>
+<li>from_unicode()
+: <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#afeecf1ee2699c26960cbf2d7d6d71d41">boost::locale::util::base_converter</a>
+</li>
+<li>full_select()
+: <a class="el" href="group__boundary.html#gace7faa10d536c85df0f2d5cac85f2bbc">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x67.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x67.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li class="current">g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>generate()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#a75ba62f2ae7daa5a2d6641e36e064ecb">boost::locale::generator</a>
+</li>
+<li>generator()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#a767403ea3f6259fd184a6e355caf62f2">boost::locale::generator</a>
+</li>
+<li>get()
+: <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a907a9385c1a15dab07aade7466620bf6">boost::locale::hold_ptr&lt; T &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time.html#af6436a546d3b944238f9fa952e5e18bd">boost::locale::date_time</a>
+, <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a89d377e934af287573212581cab70dd6">boost::locale::localization_backend_manager</a>
+, <a class="el" href="group__message.html#ga4f65e4e1c3995eb09dd8f8f0e150a012">boost::locale::message_format&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time__duration.html#a5d1b702c281d205e1dafbb15ce85b447">boost::locale::date_time_duration</a>
+, <a class="el" href="group__message.html#gabb35b8a77bca9d28c5d5c266b66fe291">boost::locale::message_format&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">boost::locale::ios_info</a>
+</li>
+<li>get_all_backends()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a7bd336cf325b0ee284ab8a07813679c0">boost::locale::localization_backend_manager</a>
+</li>
+<li>get_integer_property()
+: <a class="el" href="classboost_1_1locale_1_1info.html#aee97062cd9c8a1c6b24a160783865ee2">boost::locale::info</a>
+</li>
+<li>get_locale()
+: <a class="el" href="classboost_1_1locale_1_1calendar.html#aaf669f493ef0226aefbb6d13db8c27d1">boost::locale::calendar</a>
+</li>
+<li>get_option()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a0c034dd6f135b7d9b6faad08d49715a8">boost::locale::abstract_calendar</a>
+</li>
+<li>get_string_property()
+: <a class="el" href="classboost_1_1locale_1_1info.html#a38673d9985abd1c98713b262fadfe584">boost::locale::info</a>
+</li>
+<li>get_time()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a8900097c0b687393b053bc0420070815">boost::locale::abstract_calendar</a>
+</li>
+<li>get_time_zone()
+: <a class="el" href="classboost_1_1locale_1_1calendar.html#af4063debebd6cc08cf25171ce5ee220e">boost::locale::calendar</a>
+</li>
+<li>get_timezone()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a51f4b91d0dc2f9afa3920a771307d92f">boost::locale::abstract_calendar</a>
+</li>
+<li>get_value()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a7eacfa5d8f37dfc839d0239c2fcdf64e">boost::locale::abstract_calendar</a>
+</li>
+<li>global()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a65649bc161a0cc160da9b40a9ad14e20">boost::locale::localization_backend_manager</a>
+</li>
+<li>greatest_minimum()
+: <a class="el" href="classboost_1_1locale_1_1calendar.html#a3c2475ee3ebb107e47701cf732532f9f">boost::locale::calendar</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x68.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x68.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li class="current">h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>hash()
+: <a class="el" href="classboost_1_1locale_1_1collator.html#a89752e2023643f972b6cc8024340d5d4">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+<li>hold_ptr()
+: <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a681ee3d579435f9f2f171b830c402072">boost::locale::hold_ptr&lt; T &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x69.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x69.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li class="current">i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>info()
+: <a class="el" href="classboost_1_1locale_1_1info.html#a5545bf33988c859b3b864d4d65178134">boost::locale::info</a>
+</li>
+<li>install()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend.html#a5992c75d469f775ce1d18a0912bfa8a1">boost::locale::localization_backend</a>
+</li>
+<li>invalid_charset_error()
+: <a class="el" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html#ae951e3a99a115a60cc87d4d258764681">boost::locale::conv::invalid_charset_error</a>
+</li>
+<li>is_gregorian()
+: <a class="el" href="classboost_1_1locale_1_1calendar.html#a657ece3d3d59b8fc3c817bc05227620b">boost::locale::calendar</a>
+</li>
+<li>is_in_daylight_saving_time()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a047e6e010df55fee166dcb3c9e7d3b95">boost::locale::date_time</a>
+</li>
+<li>is_thread_safe()
+: <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#aadcc2c1a767f9d24972c6995e81c1315">boost::locale::util::base_converter</a>
+</li>
+<li>iterator()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af279d5382e1b28c2ce82035c1929ea66">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x6c.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x6c.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li class="current">l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>language()
+: <a class="el" href="classboost_1_1locale_1_1info.html#a7c56b9df3aba82649afc66c06192c7df">boost::locale::info</a>
+</li>
+<li>least_maximum()
+: <a class="el" href="classboost_1_1locale_1_1calendar.html#a4c708d889ef92487982d918a78be5eda">boost::locale::calendar</a>
+</li>
+<li>length()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a45edfde079b2afe36c55043c7a00b438">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+<li>locale_cache_enabled()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#aacfcd26484a830723a8a9f9d2e91a0e6">boost::locale::generator</a>
+</li>
+<li>localization_backend_manager()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a0407271db5e7722f901c510474c3581f">boost::locale::localization_backend_manager</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x6d.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x6d.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li class="current">m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>map()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html#aee429a6d57b48b6f7dda3d03a67d6501">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a>
+, <a class="el" href="group__boundary.html#gafa2a756b10d3522743204b45b794bb3e">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="group__boundary.html#ga6b4b5d5cf80b55302a88e7b36c812418">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+</li>
+<li>mark()
+: <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#ad81b414edc6ea88accc5dad5d17a351b">boost::locale::period::period_type</a>
+</li>
+<li>max_len()
+: <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#ab2332b78e3e0c0b94ea3f6dafd123d60">boost::locale::util::base_converter</a>
+</li>
+<li>maximum()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#adb258ce11408b62bc0f14a60a05f0752">boost::locale::date_time</a>
+, <a class="el" href="classboost_1_1locale_1_1calendar.html#abd88cbf4c3b9f072430f9e7d9ab2d744">boost::locale::calendar</a>
+</li>
+<li>message_format()
+: <a class="el" href="group__message.html#gafa681d0df94a35f9d75c16dea099d03e">boost::locale::message_format&lt; CharType &gt;</a>
+</li>
+<li>minimum()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a3363a0c562300095432a17e472d2e52d">boost::locale::date_time</a>
+, <a class="el" href="classboost_1_1locale_1_1calendar.html#a6670c7319dcaec257819b7a802d2c5f7">boost::locale::calendar</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x6e.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x6e.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li class="current">n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>name()
+: <a class="el" href="classboost_1_1locale_1_1info.html#af8181bf226f369548c030220932323b9">boost::locale::info</a>
+</li>
+<li>normalize()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#aa06fef77acaa6104e3cd2bc80ccc76d9">boost::locale::abstract_calendar</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x6f.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x6f.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,207 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li class="current">o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>operator iterator_type()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#aa2dc88b4d02151aea939a01b7fc88730">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+</li>
+<li>operator std::basic_string&lt; char_type, T, A &gt;()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a76e2717f48ca7a6336a9fede9dec4d40">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+<li>operator string_type()
+: <a class="el" href="group__message.html#ga8da81038939b85ca248cba50f1deacf1">boost::locale::basic_message&lt; CharType &gt;</a>
+</li>
+<li>operator!=()
+: <a class="el" href="classboost_1_1locale_1_1calendar.html#ab0d93fe1d3bfb7b66f8ef631ede93236">boost::locale::calendar</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a4347b22dd7edb8af49d1316a6f86d0c2">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time.html#a289953d80af568f86ddf533c0b161663">boost::locale::date_time</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a2e38c575af16843a3aa140a4332646a3">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#a0156ce442f97fd86fa7c702e4d24031a">boost::locale::period::period_type</a>
+, <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a26442fe81a0ce8c51775b1267455ecbe">boost::locale::gnu_gettext::messages_info::domain</a>
+</li>
+<li>operator%()
+: <a class="el" href="classboost_1_1locale_1_1basic__format.html#a63e45267da46ff25d09441ac52f21efc">boost::locale::basic_format&lt; CharType &gt;</a>
+</li>
+<li>operator()()
+: <a class="el" href="structboost_1_1locale_1_1comparator.html#abd62dbc2af0eb6e6c261a7c88e09f752">boost::locale::comparator&lt; CharType, default_level &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1generator.html#acd80b3f2371c77f4f7e7dfe69ec670ab">boost::locale::generator</a>
+</li>
+<li>operator*()
+: <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a2c8a19e35ff3c57100b24371854f31b7">boost::locale::hold_ptr&lt; T &gt;</a>
+</li>
+<li>operator+()
+: <a class="el" href="structboost_1_1locale_1_1date__time__period.html#a219fa833071824e308a45dc44384fb99">boost::locale::date_time_period</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time.html#a0df3596add1804b1f64d363fea181fe2">boost::locale::date_time</a>
+</li>
+<li>operator+=()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#ab3117067df65d1c33e89ab375f03d27c">boost::locale::date_time</a>
+</li>
+<li>operator-()
+: <a class="el" href="structboost_1_1locale_1_1date__time__period.html#ab3937bd69fcfeac096dceeee0f13437e">boost::locale::date_time_period</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time.html#ac870c0fcba5814cd91bb9c63823e280a">boost::locale::date_time</a>
+</li>
+<li>operator-=()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a38468aff1a820dc1c41a2a8280120848">boost::locale::date_time</a>
+</li>
+<li>operator-&gt;()
+: <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a7ae6b54ed5471dd9560904c7ff8a7971">boost::locale::hold_ptr&lt; T &gt;</a>
+</li>
+<li>operator/()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#ac2a3a8f6fdba552b19e478bb6757523e">boost::locale::date_time</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time__duration.html#ac1a04091cc80b98f6faf7e5e73ce5f35">boost::locale::date_time_duration</a>
+</li>
+<li>operator&lt;()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a7b27ad955eade1013a43336e2a17adec">boost::locale::date_time</a>
+, <a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a6ef38e6f115ed9121e4d8f6189f6c4e2">boost::locale::boundary::break_info</a>
+</li>
+<li>operator&lt;&lt;()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a22d2b503e2d58c7e2983b89c69ed13bd">boost::locale::date_time</a>
+</li>
+<li>operator&lt;&lt;=()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#aa95d61963c07fb1e39d01d099a4c281a">boost::locale::date_time</a>
+</li>
+<li>operator&lt;=()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a76c5b0bbc01bd561c25cb83f26e5f535">boost::locale::date_time</a>
+</li>
+<li>operator=()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a2f7ccfb9e28fa3bb172be9f0446caafd">boost::locale::date_time</a>
+, <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#af506ec1809f2f67c71f590862f63eeab">boost::locale::localization_backend_manager</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time.html#abe5d459e7552ca13b127c682e0d9caab">boost::locale::date_time</a>
+, <a class="el" href="group__message.html#gae0e786e45ef32cf73efd8495cae45aed">boost::locale::basic_message&lt; CharType &gt;</a>
+, <a class="el" href="group__boundary.html#gae7941dc874ca05d2ef2a03f781c5b78a">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="group__boundary.html#ga83d57b993b00686b2cac711667c6a931">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1calendar.html#a7125a6c3f3d629f871ddb0f3c2f5a181">boost::locale::calendar</a>
+</li>
+<li>operator==()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a058ffbcbd43fc41a40a4a1cf5be987f2">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1date__time.html#a4f11ded4c5383cc3fcd3684d0aa43892">boost::locale::date_time</a>
+, <a class="el" href="classboost_1_1locale_1_1calendar.html#a8939fba5987659b3153cb18eea9af969">boost::locale::calendar</a>
+, <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a4a361b37db81571d440f0ec4d1e9038f">boost::locale::gnu_gettext::messages_info::domain</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a87a96a1745184ff7495db87943aca424">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#a53ac6fdbaa7ae1b6d90e67bb5aadcce0">boost::locale::period::period_type</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a9a30e70d41591b25c8c77961bff00057">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+<li>operator&gt;()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a1907c677ae9b7d0736705df8ad58b3aa">boost::locale::date_time</a>
+</li>
+<li>operator&gt;=()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a4d807fa280bbe8d88efbc9a05f4a2d7c">boost::locale::date_time</a>
+</li>
+<li>operator&gt;&gt;()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a3a53ba943cb5140bafbfbda3d44b4083">boost::locale::date_time</a>
+</li>
+<li>operator&gt;&gt;=()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a178faa979338310b9a92370a3618fa0e">boost::locale::date_time</a>
+</li>
+<li>operator[]()
+: <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a177a4c3cb2de3b5c9b5fe5738660eba4">boost::locale::date_time_period_set</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x70.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x70.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li class="current">p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>period_type()
+: <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html#a8abba35d5073884677ce69ec3ba3eba7">boost::locale::period::period_type</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x72.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x72.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li class="current">r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>release()
+: <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a2d7b2957c037589b65b2cdd4f61ebe03">boost::locale::hold_ptr&lt; T &gt;</a>
+</li>
+<li>remove_all_backends()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a8c9841c83aa85dbf8f61b2e17732499a">boost::locale::localization_backend_manager</a>
+</li>
+<li>reset()
+: <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#acb84b86bb220d663ffe13e5be9cfd72e">boost::locale::hold_ptr&lt; T &gt;</a>
+</li>
+<li>rule()
+: <a class="el" href="group__boundary.html#ga56e63913f51109e05a24a7136472a975">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="group__boundary.html#gad19735180401edb15acbdbbeb21e5a73">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#a75e2f04f0f7c1065470f722d1f2e004b">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a5b36a522d7013306617dbcccc9919343">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x73.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x73.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,162 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li class="current">s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>same()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#aa20ae19bca185cc0fa4ab69d7f3c5883">boost::locale::abstract_calendar</a>
+</li>
+<li>segment()
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a4e785bc97dba9e8e25f18b43957723e5">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+<li>segment_index()
+: <a class="el" href="group__boundary.html#ga2c354f4cc03677b58c97038cd84dc465">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+</li>
+<li>select()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#adf33775a09e7a765c3401e769019e915">boost::locale::localization_backend_manager</a>
+</li>
+<li>set()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a4c0ed3be4d5d3bb44014a2ea12927ff8">boost::locale::date_time</a>
+</li>
+<li>set_default_messages_domain()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#a4804bc5c4a9adb74cffcc2bdac87da1d">boost::locale::generator</a>
+</li>
+<li>set_option()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a9265206013005d9ac30cf723a7ffe032">boost::locale::abstract_calendar</a>
+, <a class="el" href="classboost_1_1locale_1_1generator.html#ac0bbbb4aca466e59e82b63bcbf2efc8b">boost::locale::generator</a>
+, <a class="el" href="classboost_1_1locale_1_1localization__backend.html#a3dc9028eb813001f6cdd8fca937837ef">boost::locale::localization_backend</a>
+</li>
+<li>set_time()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#acb01268c84f27a8a736b715ab9e9557a">boost::locale::abstract_calendar</a>
+</li>
+<li>set_timezone()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#aa17f0fd2e88d3da8fe7b12e98ad2d6c3">boost::locale::abstract_calendar</a>
+</li>
+<li>set_value()
+: <a class="el" href="classboost_1_1locale_1_1abstract__calendar.html#a15067ccf90a19e640051a30a6d3a2a7f">boost::locale::abstract_calendar</a>
+</li>
+<li>size()
+: <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html#a0b726bd57ce8b631de89bbf404b8df2a">boost::locale::date_time_period_set</a>
+</li>
+<li>start()
+: <a class="el" href="classboost_1_1locale_1_1date__time__duration.html#afc2f075595d1774c866250d192b9db31">boost::locale::date_time_duration</a>
+</li>
+<li>str()
+: <a class="el" href="group__message.html#ga26c6489f8269096f835abfb268498fdd">boost::locale::basic_message&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1basic__format.html#a6bc65d7993e3ab6ad51809ef8fb65400">boost::locale::basic_format&lt; CharType &gt;</a>
+, <a class="el" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">boost::locale::basic_message&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ac139eae8c07ed82ba8343fedfa76c2bf">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+<li>swap()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a704626c84b012080f5e0b73db3d080fb">boost::locale::date_time</a>
+, <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#a3e2640b5df80f86aeb68a6ee78dfd6f9">boost::locale::hold_ptr&lt; T &gt;</a>
+, <a class="el" href="group__message.html#gac204b563c7c9bd86e5555f129350f0e3">boost::locale::basic_message&lt; CharType &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x74.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x74.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li class="current">t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>time()
+: <a class="el" href="classboost_1_1locale_1_1date__time.html#a17aa2b54462ebcf1860f8e4db9f7868e">boost::locale::date_time</a>
+</li>
+<li>time_flags()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#ab8e618c7e292dba53d9334926522031e">boost::locale::ios_info</a>
+</li>
+<li>time_zone()
+: <a class="el" href="classboost_1_1locale_1_1ios__info.html#a3f140278815b521f1568c52d0a9fea11">boost::locale::ios_info</a>
+</li>
+<li>to_unicode()
+: <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#a27181b314e09f62ae9ea8fcd30d4e7c4">boost::locale::util::base_converter</a>
+</li>
+<li>transform()
+: <a class="el" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x75.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x75.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li class="current">u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>use_ansi_encoding()
+: <a class="el" href="classboost_1_1locale_1_1generator.html#a9afb2b0791abbabd39c800e08d9c9717">boost::locale::generator</a>
+</li>
+<li>utf8()
+: <a class="el" href="classboost_1_1locale_1_1info.html#aafbbb5c291f60ce6fc3bc056859ba181">boost::locale::info</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x76.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x76.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li class="current">v</li>
+ <li>w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>variant()
+: <a class="el" href="classboost_1_1locale_1_1info.html#a2e949e4362c8f0195e2a645fe875f1b4">boost::locale::info</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x77.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x77.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li class="current">w</li>
+ <li>~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>write()
+: <a class="el" href="classboost_1_1locale_1_1basic__format.html#a457c9228d13e80da3c807a51aa5ef6cd">boost::locale::basic_format&lt; CharType &gt;</a>
+, <a class="el" href="group__message.html#ga4dd81f4d40c4e8871bb1bf02bbc8e968">boost::locale::basic_message&lt; CharType &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_func_0x7e.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_func_0x7e.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li class="current">~</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_0x7e"></a>- ~ -</h3><ul>
+<li>~hold_ptr()
+: <a class="el" href="classboost_1_1locale_1_1hold__ptr.html#aace934e7a8b3f1880d1a06fa85795a48">boost::locale::hold_ptr&lt; T &gt;</a>
+</li>
+<li>~localization_backend_manager()
+: <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a7e602229ef95ea60834fdea95110bf19">boost::locale::localization_backend_manager</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_type.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_type.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Typedefs</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li class="current">Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;<ul>
+<li>base_iterator
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+</li>
+<li>callback_type
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4dfe37c5a392e5106e65b396a5288b76">boost::locale::gnu_gettext::messages_info</a>
+</li>
+<li>char_type
+: <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">boost::locale::collator&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">boost::locale::message_format&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">boost::locale::basic_message&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ad3785355ea817c087bf428315a332169">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1basic__format.html#a45c16f2e69842b8d223d240bbd6e210a">boost::locale::basic_format&lt; CharType &gt;</a>
+</li>
+<li>const_iterator
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#aa24dcd83aefe4925bfc11b0285e2517a">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="group__boundary.html#gac9ce9158eb2fb030c1baf93376203d16">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="group__boundary.html#ga5f8e61b5babc3f0fa95f5fb8acae3724">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+</li>
+<li>difference_type
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a79ee4d48248ffbc23f84a33355ca3b62">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+<li>domains_type
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ac3bfe22cf949ed3f87ee28fa0c983502">boost::locale::gnu_gettext::messages_info</a>
+</li>
+<li>facet_type
+: <a class="el" href="group__message.html#gaa63527cb368d0bcd4cb0809138c927df">boost::locale::basic_message&lt; CharType &gt;</a>
+</li>
+<li>iterator
+: <a class="el" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+</li>
+<li>iterator_type
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html#af3c3a74a9a79690ff44f38d267b3b694">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a>
+</li>
+<li>message_type
+: <a class="el" href="classboost_1_1locale_1_1basic__format.html#a75213e5cc9d113f6b25e72542a4841f5">boost::locale::basic_format&lt; CharType &gt;</a>
+</li>
+<li>stream_type
+: <a class="el" href="classboost_1_1locale_1_1basic__format.html#a6aba7e54f0065f2697d13ff8a859309a">boost::locale::basic_format&lt; CharType &gt;</a>
+</li>
+<li>string_type
+: <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#a795d3328ac4d1692294f172c8480da47">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">boost::locale::basic_message&lt; CharType &gt;</a>
+, <a class="el" href="group__message.html#gaaa932705310ce196fccc9d672b25518f">boost::locale::message_format&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1basic__format.html#a0e1263d23f67aa38b4d857031fccf973">boost::locale::basic_format&lt; CharType &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">boost::locale::collator&lt; CharType &gt;</a>
+</li>
+<li>value_type
+: <a class="el" href="group__boundary.html#ga067c663d18faee08adb3355701ae72ba">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html#ab7ba55015262b4fb85bb531882a32ead">boost::locale::boundary::segment&lt; IteratorType &gt;</a>
+, <a class="el" href="group__boundary.html#ga7f7328a860cf485a4bd8f17658c291e1">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/functions_vars.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/functions_vars.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members - Variables</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li class="current">Class Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li>Functions</li>
+ <li class="current">Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;<ul>
+<li>callback
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a63bd8b01ca532a2657186bab3fa396a2">boost::locale::gnu_gettext::messages_info</a>
+</li>
+<li>country
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ae939e0c5dbabba7fb4cc2872f4e7dac2">boost::locale::gnu_gettext::messages_info</a>
+</li>
+<li>domains
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a1ca79b90b4b8dbc924e5eb1b42188311">boost::locale::gnu_gettext::messages_info</a>
+</li>
+<li>encoding
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4a7406581c6c7975c90db9d2d157d384">boost::locale::gnu_gettext::messages_info</a>
+, <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a7004c3d4bb7ff1ebdba50535723d84a5">boost::locale::gnu_gettext::messages_info::domain</a>
+</li>
+<li>id
+: <a class="el" href="classboost_1_1locale_1_1converter.html#a0ab17b265161bb2c5d7a233710d2740b">boost::locale::converter&lt; Char &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1calendar__facet.html#a88dc563112346949302fd95df833089c">boost::locale::calendar_facet</a>
+, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html#a6ec435e58e34f70046f62ac0314c1a58">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a>
+, <a class="el" href="classboost_1_1locale_1_1info.html#a01c274323da1367b153952ee1f056572">boost::locale::info</a>
+</li>
+<li>illegal
+: <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa02e2dfd8ddc2b40a8705c6ea7fa8d48">boost::locale::util::base_converter</a>
+</li>
+<li>incomplete
+: <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa78dd2bae2783e31a00849a4e74aeb1e">boost::locale::util::base_converter</a>
+</li>
+<li>language
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a1afc3be03d4848042e3208d4ca5aec85">boost::locale::gnu_gettext::messages_info</a>
+</li>
+<li>locale_category
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a39ea1cfd018c7702d94d03e76042ff10">boost::locale::gnu_gettext::messages_info</a>
+</li>
+<li>name
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#ae2d68e6e122c01aa07e60142d8af54fc">boost::locale::gnu_gettext::messages_info::domain</a>
+</li>
+<li>nanoseconds
+: <a class="el" href="structboost_1_1locale_1_1posix__time.html#aaa1f72a3f4313cd079b08375132c794d">boost::locale::posix_time</a>
+</li>
+<li>offset
+: <a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a47cdf1764bf8e294ea8a1079501a8c44">boost::locale::boundary::break_info</a>
+</li>
+<li>paths
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a263d9d2c359ae7730e6d5bba54bb3022">boost::locale::gnu_gettext::messages_info</a>
+</li>
+<li>rule
+: <a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a1a9b497daacb471f297682101696f4eb">boost::locale::boundary::break_info</a>
+</li>
+<li>seconds
+: <a class="el" href="structboost_1_1locale_1_1posix__time.html#a8209978ee423c6396d8179505ec5fa78">boost::locale::posix_time</a>
+</li>
+<li>type
+: <a class="el" href="structboost_1_1locale_1_1date__time__period.html#aa6511600eb5264c8597f700668e9c628">boost::locale::date_time_period</a>
+</li>
+<li>value
+: <a class="el" href="structboost_1_1locale_1_1date__time__period.html#aec776b16ed46a22833308a4112886ca4">boost::locale::date_time_period</a>
+</li>
+<li>variant
+: <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#af543a11d3ff1d12e24c06306b30f8fb8">boost::locale::gnu_gettext::messages_info</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/generator_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/generator_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,205 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/generator.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/generator.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_GENERATOR_HPP</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_GENERATOR_HPP</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span><span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/cstdint.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;locale&gt;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;memory&gt;</span>
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020 <span class="keyword">namespace </span>boost {
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Type&gt;
+<a name="l00023"></a>00023 <span class="keyword">class </span>shared_ptr;
+<a name="l00024"></a>00024
+<a name="l00028"></a>00028 <span class="keyword">namespace </span>locale {
+<a name="l00029"></a>00029
+<a name="l00030"></a>00030 <span class="keyword">class </span>localization_backend;
+<a name="l00031"></a>00031 <span class="keyword">class </span>localization_backend_manager;
+<a name="l00032"></a>00032
+<a name="l00033"></a><a class="code" href="namespaceboost_1_1locale.html#a330a4c5134eb5110b33a0b4f986f34be">00033</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#a330a4c5134eb5110b33a0b4f986f34be" title="Unspecified character category for character independent facets.">nochar_facet</a> = 0;
+<a name="l00034"></a><a class="code" href="namespaceboost_1_1locale.html#ac57b3067a033cb4416098b8c34867aa1">00034</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#ac57b3067a033cb4416098b8c34867aa1" title="8-bit character facets">char_facet</a> = 1 &lt;&lt; 0;
+<a name="l00035"></a><a class="code" href="namespaceboost_1_1locale.html#af26277ad3002b9d09790ca42590352fe">00035</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#af26277ad3002b9d09790ca42590352fe" title="wide character facets">wchar_t_facet</a> = 1 &lt;&lt; 1;
+<a name="l00036"></a><a class="code" href="namespaceboost_1_1locale.html#a4f02f43f0bef71bdd9262141508fe8f0">00036</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#a4f02f43f0bef71bdd9262141508fe8f0" title="C++0x char16_t facets.">char16_t_facet</a> = 1 &lt;&lt; 2;
+<a name="l00037"></a><a class="code" href="namespaceboost_1_1locale.html#a77cbac0792b48c20173dd92544c625e5">00037</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#a77cbac0792b48c20173dd92544c625e5" title="C++0x char32_t facets.">char32_t_facet</a> = 1 &lt;&lt; 3;
+<a name="l00038"></a>00038
+<a name="l00039"></a><a class="code" href="namespaceboost_1_1locale.html#ac57221e55dcc193f60a8af0064d58f1e">00039</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#ac57221e55dcc193f60a8af0064d58f1e" title="First facet specific for character type.">character_first_facet</a> = <a class="code" href="namespaceboost_1_1locale.html#ac57b3067a033cb4416098b8c34867aa1" title="8-bit character facets">char_facet</a>;
+<a name="l00040"></a><a class="code" href="namespaceboost_1_1locale.html#a6719d31f7dc35bd97116dd353e5464c6">00040</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#a6719d31f7dc35bd97116dd353e5464c6" title="Last facet specific for character type.">character_last_facet</a> = <a class="code" href="namespaceboost_1_1locale.html#a77cbac0792b48c20173dd92544c625e5" title="C++0x char32_t facets.">char32_t_facet</a>;
+<a name="l00041"></a><a class="code" href="namespaceboost_1_1locale.html#acbf4f064b76445979094471c7092bd4c">00041</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#acbf4f064b76445979094471c7092bd4c" title="Special mask -- generate all.">all_characters</a> = 0xFFFF;
+<a name="l00042"></a>00042
+<a name="l00043"></a><a class="code" href="namespaceboost_1_1locale.html#a8c993aaf15e683e97d062560ccf914d8">00043</a> <span class="keyword">typedef</span> uint32_t character_facet_type;
+<a name="l00044"></a>00044
+<a name="l00045"></a><a class="code" href="namespaceboost_1_1locale.html#a980b72231e52c32b8bef91ce60e6936a">00045</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#a980b72231e52c32b8bef91ce60e6936a" title="Generate conversion facets.">convert_facet</a> = 1 &lt;&lt; 0;
+<a name="l00046"></a><a class="code" href="namespaceboost_1_1locale.html#a2dd40649cf5bb125d9ef5f42ad792446">00046</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#a2dd40649cf5bb125d9ef5f42ad792446" title="Generate collation facets.">collation_facet</a> = 1 &lt;&lt; 1;
+<a name="l00047"></a><a class="code" href="namespaceboost_1_1locale.html#a4ee453a8b95be64b802edae99ad5d9ed">00047</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#a4ee453a8b95be64b802edae99ad5d9ed" title="Generate numbers, currency, date-time formatting facets.">formatting_facet</a>= 1 &lt;&lt; 2;
+<a name="l00048"></a><a class="code" href="namespaceboost_1_1locale.html#adeadf3347a4fa74afd7fd1f6674be1b0">00048</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#adeadf3347a4fa74afd7fd1f6674be1b0" title="Generate numbers, currency, date-time formatting facets.">parsing_facet</a> = 1 &lt;&lt; 3;
+<a name="l00049"></a><a class="code" href="namespaceboost_1_1locale.html#aa5b134d0be315fefbfde1216ea3904d9">00049</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#aa5b134d0be315fefbfde1216ea3904d9" title="Generate message facets.">message_facet</a> = 1 &lt;&lt; 4;
+<a name="l00050"></a><a class="code" href="namespaceboost_1_1locale.html#aaffe2f2ba9df34eb86caa0c815d00d6b">00050</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#aaffe2f2ba9df34eb86caa0c815d00d6b" title="Generate character set conversion facets (derived from std::codecvt).">codepage_facet</a> = 1 &lt;&lt; 5;
+<a name="l00051"></a><a class="code" href="namespaceboost_1_1locale.html#ac2fa68f626cf136556cbf56c82d3fdd6">00051</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#ac2fa68f626cf136556cbf56c82d3fdd6" title="Generate boundary analysis facet.">boundary_facet</a> = 1 &lt;&lt; 6;
+<a name="l00052"></a>00052
+<a name="l00053"></a><a class="code" href="namespaceboost_1_1locale.html#a91e9fa9c9d99150ff7801a0423cb2374">00053</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#a91e9fa9c9d99150ff7801a0423cb2374" title="First facet specific for character.">per_character_facet_first</a> = <a class="code" href="namespaceboost_1_1locale.html#a980b72231e52c32b8bef91ce60e6936a" title="Generate conversion facets.">convert_facet</a>;
+<a name="l00054"></a><a class="code" href="namespaceboost_1_1locale.html#afbb1680a86838f1b145590dce820c558">00054</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#afbb1680a86838f1b145590dce820c558" title="Last facet specific for character.">per_character_facet_last</a> = <a class="code" href="namespaceboost_1_1locale.html#ac2fa68f626cf136556cbf56c82d3fdd6" title="Generate boundary analysis facet.">boundary_facet</a>;
+<a name="l00055"></a>00055
+<a name="l00056"></a><a class="code" href="namespaceboost_1_1locale.html#ae068c6887999c1f839d6d13eaf2a0b7c">00056</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="classboost_1_1locale_1_1calendar__facet.html" title="the facet that generates calendar for specific locale">calendar_facet</a> = 1 &lt;&lt; 16;
+<a name="l00057"></a><a class="code" href="namespaceboost_1_1locale.html#aa0d08754ca3856546c63f1f79a153a7b">00057</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#aa0d08754ca3856546c63f1f79a153a7b" title="Generate general locale information facet.">information_facet</a> = 1 &lt;&lt; 17;
+<a name="l00058"></a>00058
+<a name="l00059"></a><a class="code" href="namespaceboost_1_1locale.html#acdc78d8aaea40ff98a227c6d31a7be19">00059</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#acdc78d8aaea40ff98a227c6d31a7be19" title="First character independent facet.">non_character_facet_first</a> = <a class="code" href="classboost_1_1locale_1_1calendar__facet.html" title="the facet that generates calendar for specific locale">calendar_facet</a>;
+<a name="l00060"></a><a class="code" href="namespaceboost_1_1locale.html#a66521f8acb9412f2fc3ab38b7a409e20">00060</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#a66521f8acb9412f2fc3ab38b7a409e20" title="Last character independent facet.">non_character_facet_last</a> = <a class="code" href="namespaceboost_1_1locale.html#aa0d08754ca3856546c63f1f79a153a7b" title="Generate general locale information facet.">information_facet</a>;
+<a name="l00061"></a>00061
+<a name="l00062"></a>00062
+<a name="l00063"></a><a class="code" href="namespaceboost_1_1locale.html#ab51b0b65a19b1db3adc14e9866097e2a">00063</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="namespaceboost_1_1locale.html#ab51b0b65a19b1db3adc14e9866097e2a" title="Generate all of them.">all_categories</a> = 0xFFFFFFFFu;
+<a name="l00064"></a>00064
+<a name="l00065"></a><a class="code" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1">00065</a> <span class="keyword">typedef</span> uint32_t locale_category_type;
+<a name="l00066"></a>00066
+<a name="l00073"></a>00073
+<a name="l00074"></a><a class="code" href="classboost_1_1locale_1_1generator.html">00074</a> <span class="keyword">class </span>BOOST_LOCALE_DECL <a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">generator</a> {
+<a name="l00075"></a>00075 <span class="keyword">public</span>:
+<a name="l00076"></a>00076
+<a name="l00080"></a>00080 <a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">generator</a>();
+<a name="l00084"></a>00084 <a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">generator</a>(<a class="code" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a> <span class="keyword">const</span> &amp;);
+<a name="l00085"></a>00085
+<a name="l00086"></a>00086 ~<a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">generator</a>();
+<a name="l00087"></a>00087
+<a name="l00091"></a>00091 <span class="keywordtype">void</span> categories(<a class="code" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1" title="a type used for more fine grained generation of facets">locale_category_type</a> cats);
+<a name="l00095"></a>00095 <a class="code" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1" title="a type used for more fine grained generation of facets">locale_category_type</a> categories() <span class="keyword">const</span>;
+<a name="l00096"></a>00096
+<a name="l00100"></a>00100 <span class="keywordtype">void</span> characters(<a class="code" href="namespaceboost_1_1locale.html#a8c993aaf15e683e97d062560ccf914d8" title="type that specifies the character type that locales can be generated for">character_facet_type</a> chars);
+<a name="l00104"></a>00104 <a class="code" href="namespaceboost_1_1locale.html#a8c993aaf15e683e97d062560ccf914d8" title="type that specifies the character type that locales can be generated for">character_facet_type</a> characters() <span class="keyword">const</span>;
+<a name="l00105"></a>00105
+<a name="l00126"></a>00126 <span class="keywordtype">void</span> add_messages_domain(std::string <span class="keyword">const</span> &amp;<a class="code" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">domain</a>);
+<a name="l00131"></a>00131 <span class="keywordtype">void</span> set_default_messages_domain(std::string <span class="keyword">const</span> &amp;domain);
+<a name="l00132"></a>00132
+<a name="l00136"></a>00136 <span class="keywordtype">void</span> clear_domains();
+<a name="l00137"></a>00137
+<a name="l00152"></a>00152 <span class="keywordtype">void</span> add_messages_path(std::string <span class="keyword">const</span> &amp;path);
+<a name="l00153"></a>00153
+<a name="l00157"></a>00157 <span class="keywordtype">void</span> clear_paths();
+<a name="l00158"></a>00158
+<a name="l00162"></a>00162 <span class="keywordtype">void</span> clear_cache();
+<a name="l00163"></a>00163
+<a name="l00167"></a>00167 <span class="keywordtype">void</span> locale_cache_enabled(<span class="keywordtype">bool</span> on);
+<a name="l00168"></a>00168
+<a name="l00172"></a>00172 <span class="keywordtype">bool</span> locale_cache_enabled() <span class="keyword">const</span>;
+<a name="l00173"></a>00173
+<a name="l00177"></a>00177 <span class="keywordtype">bool</span> use_ansi_encoding() <span class="keyword">const</span>;
+<a name="l00178"></a>00178
+<a name="l00186"></a>00186 <span class="keywordtype">void</span> use_ansi_encoding(<span class="keywordtype">bool</span> enc);
+<a name="l00187"></a>00187
+<a name="l00191"></a>00191 std::locale generate(std::string <span class="keyword">const</span> &amp;<span class="keywordtype">id</span>) <span class="keyword">const</span>;
+<a name="l00196"></a>00196 std::locale generate(std::locale <span class="keyword">const</span> &amp;base,std::string <span class="keyword">const</span> &amp;<span class="keywordtype">id</span>) <span class="keyword">const</span>;
+<a name="l00200"></a><a class="code" href="classboost_1_1locale_1_1generator.html#acd80b3f2371c77f4f7e7dfe69ec670ab">00200</a> std::locale operator()(std::string <span class="keyword">const</span> &amp;<span class="keywordtype">id</span>)<span class="keyword"> const</span>
+<a name="l00201"></a>00201 <span class="keyword"> </span>{
+<a name="l00202"></a>00202 <span class="keywordflow">return</span> generate(<span class="keywordtype">id</span>);
+<a name="l00203"></a>00203 }
+<a name="l00204"></a>00204
+<a name="l00208"></a>00208 <span class="keywordtype">void</span> set_option(std::string <span class="keyword">const</span> &amp;name,std::string <span class="keyword">const</span> &amp;value);
+<a name="l00209"></a>00209
+<a name="l00213"></a>00213 <span class="keywordtype">void</span> clear_options();
+<a name="l00214"></a>00214
+<a name="l00215"></a>00215 <span class="keyword">private</span>:
+<a name="l00216"></a>00216
+<a name="l00217"></a>00217 <span class="keywordtype">void</span> set_all_options(shared_ptr&lt;localization_backend&gt; backend,std::string <span class="keyword">const</span> &amp;<span class="keywordtype">id</span>) <span class="keyword">const</span>;
+<a name="l00218"></a>00218
+<a name="l00219"></a>00219 <a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">generator</a>(<a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">generator</a> <span class="keyword">const</span> &amp;);
+<a name="l00220"></a>00220 <span class="keywordtype">void</span> operator=(<a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">generator</a> <span class="keyword">const</span> &amp;);
+<a name="l00221"></a>00221
+<a name="l00222"></a>00222 <span class="keyword">struct </span>data;
+<a name="l00223"></a>00223 std::auto_ptr&lt;data&gt; d;
+<a name="l00224"></a>00224 };
+<a name="l00225"></a>00225
+<a name="l00226"></a>00226 }
+<a name="l00227"></a>00227 }
+<a name="l00228"></a>00228 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00229"></a>00229 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l00230"></a>00230 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00231"></a>00231 <span class="preprocessor"></span>
+<a name="l00232"></a>00232
+<a name="l00233"></a>00233 <span class="preprocessor">#endif</span>
+<a name="l00234"></a>00234 <span class="preprocessor"></span><span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 </span>
+<a name="l00235"></a>00235
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/gettext_for_windows.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/gettext_for_windows.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Using Gettext Tools on Windows</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="appendix.html">Appendix</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Using Gettext Tools on Windows </h1> </div>
+</div>
+<div class="contents">
+<p>In order to get the Gettext tools like <code>msgfmt</code>, <code>msgmerge</code>, <code>xgettext</code> for Windows you have basically several options:</p>
+<ul>
+<li>Download the package from CppCMS project (where the Boost.Locale was developed originally)</li>
+<li>Download the a set of packages from MinGW project</li>
+<li>Build it on your own</li>
+<li>Use Cygwin's packages</li>
+</ul>
+<h2><a class="anchor" id="gettext_for_windows_cppcms"></a>
+Getting gettext utilities from CppCMS project</h2>
+<p>Boost.Locale was developed for needs of CppCMS project and thus CppCMS hosts a convince package for Windows users of pre-build, statically liked <code>gettext</code> runtime utilities like <code>xgettext</code>, <code>msgfmt</code>, etc.</p>
+<p>So you can download a zip file <code>gettext-tools-static-XXX.zip</code> from a CppCMS downloads page under boost_locale/gettext_for_windows.</p>
+<p>Extract the file and use the executable files inside.</p>
+<h2><a class="anchor" id="gettext_for_windows_mingw"></a>
+Getting Gettext via MinGW project</h2>
+<p>MinGW project provides GNU tools for Windows, including GNU compilers and various runtime utilities. Thus you can always install full MinGW distribution including gettext tools. However, if you a want minimalistic runtime version that allows you to extract messages and create catalogs you need to download several packages manually.</p>
+<p>In order to install Gettext via MinGW distributing you need to download, a GCC's runtime, iconv library and gettext itself.</p>
+<p>So visit a downloads page of MinGW project and download following files (chose the latest versions of each package):</p>
+<ul>
+<li>From: <code>MinGW/BaseSystem/GCC/Version4/gcc-xxx/</code> <br/>
+ File: <code>libgcc-xxx-mingw32-dll-1.tar.lzma</code> </li>
+<li>From <code>MinGW/Gettext/gettext-yyy/</code> <br/>
+ Files: <code>gettext-yyy-mingw32-dev.tar.lzma</code>, <code>libgettextpo-yyy-mingw32-dll-0.tar.lzma</code>, <code>libintl-yyy-mingw32-dll-8.tar.lzma</code> </li>
+<li>From <code>MinGW/libiconv/libiconv-zzz/</code> <br/>
+ Files: <code>libiconv-zzz-mingw32-dll-2.tar.lzma</code>, <code>libcharset-zzz-mingw32-dll-1.tar.lzma</code> </li>
+</ul>
+<p>For example, at June 23, 2011 it was:</p>
+<ul>
+<li>GNU Runtime: <code>libgcc-4.5.2-1-mingw32-dll-1.tar.lzma</code> </li>
+<li><code>iconv:</code> <code>libiconv-1.13.1-1-mingw32-dll-2.tar.lzma</code> and <code>libcharset-1.13.1-1-mingw32-dll-1.tar.lzma</code> </li>
+<li><code>gettext:</code> <code>libintl-0.17-1-mingw32-dll-8.tar.lzma</code>, <code>libgettextpo-0.17-1-mingw32-dll-0.tar.lzma</code> and <code>gettext-0.17-1-mingw32-dev.tar.lzma</code>.</li>
+</ul>
+<p>After you download the packages, extract all the files to the same directory using tools like <code>7zip</code> and you'll get all the executables and <code>dll's</code> you need under <code>bin</code> subdirectory.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>the version on MinGW site is slightly outdated (0.17.1) while gettext provides currently 0.18.1.</dd></dl>
+<h2><a class="anchor" id="gettext_for_windows_build"></a>
+Building latest version on your own.</h2>
+<p>You can build your own version of GNU Gettext using MinGW environment, you'll need to have up-to-date gcc compiler and the shell, you'll need to install iconv first and then build a gettext with it.</p>
+<p>Basic and simplest way would be to open a MinGW shell</p>
+<p>Build <code>iconv:</code> </p>
+<div class="fragment"><pre class="fragment">cd libiconv-SOMEVERSION
+./configure --prefix=c:/mygettext --disable-shared
+make
+make install
+cd ..
+cd <a class="code" href="group__message.html#gadd3006a6d5d1c804490152ee6300d47f">gettext</a>-SOMEVERSION
+./configure --prefix=c:/mygettext --disable-shared --with-libiconv-prefix=c:/mygettext
+make
+make install
+</pre></div><p>And now you have in <code>c:\mygettext\bin</code> all appropriate executable files to use.</p>
+<h2><a class="anchor" id="gettext_for_windows_cygwin"></a>
+Using Cygwin</h2>
+<p>If you already have Cygwin - just use gettext tools provided with it. </p>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/glossary.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/glossary.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Glossary</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="appendix.html">Appendix</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Glossary </h1> </div>
+</div>
+<div class="contents">
+<ul>
+<li><a class="anchor" id="term_bmp"></a> <b>Basic Multilingual Plane (BMP)</b> -- a part of the <em>Universal Character Set</em> with code points in the range U-0000--U-FFFF. The most commonly used UCS characters lay in this plane, including all Western, Cyrillic, Hebrew, Thai, Arabic and CJK characters. However there are many characters that lay outside the BMP and they are absolutely required for correct support of East Asian languages.</li>
+<li><b>Code</b> <b>Point</b> -- a unique number that represents a "character" in the Universal Character Set. Code points lay in the range of 0-0x10FFFF, and are usually displayed as U+XXXX or U+XXXXXX, where X represents a hexadecimal digit.</li>
+<li><a class="anchor" id="term_collation"></a> <b>Collation</b> -- a sorting order for text, usually alphabetical. It can differ between languages and countries, even for the same characters.</li>
+<li><b>Encoding</b> - a representation of a character set. Some encodings are capable of representing the full UCS range, like UTF-8, and others can only represent a subset of it -- ISO-8859-8 represents only a small subset of about 250 characters of the UCS. <br/>
+ Non-Unicode encodings are still very popular, for example the Latin-1 (or ISO-8859-1) encoding covers most of the characters for Western European languages and significantly simplifies the processing of text for applications designed to handle only such languages. <br/>
+ For Boost.Locale you should provide an eight-bit (<code>std::string</code>) encoding as part of the locale name, like <code>en_US.UTF-8</code> or <code>he_IL.cp1255</code> . <code>UTF-8</code> is recommended.</li>
+<li><b>Facet</b> - or <code>std::locale::facet</code> -- a base class that every object that describes a specific locale is derived from. Facets can be added to a locale to provide additional culture information.</li>
+<li><b>Formatting</b> - representation of various values according to locale preferences. For example, a number 1234.5 (C representation) should be displayed as 1,234.5 in the US locale and 1.234,5 in the Russian locale. The date November 1st, 2005 would be represented as 11/01/2005 in the United States, and 01.11.2005 in Russia. This is an important part of localization. <br/>
+ For example: does "You have to bring 134,230 kg of rice on 04/01/2010" means "134 tons of rice on the first of April" or "134 kg 230 g
+ of rice on January 4th"? That is quite different.</li>
+<li><b>Gettext</b> - The GNU localization library used for message formatting. Today it is the de-facto standard localization library in the Open Source world. Boost.Locale message formatting is entirely built on Gettext message catalogs.</li>
+<li><b>Locale</b> - a set of parameters that define specific preferences for users in different cultures. It is generally defined by language, country, variants, and encoding, and provides information like: collation order, date-time formatting, message formatting, number formatting and many others. In C++, locale information is represented by the <code>std::locale</code> class.</li>
+<li><b>Message</b> <b>Formatting</b> -- the representation of user interface strings in the user's language. The process of translation of UI strings is generally done using some dictionary provided by the program's translator.</li>
+<li><b>Message</b> <b>Domain</b> -- in <em>gettext</em> terms, the keyword that represents a message catalog. This is usually an application name. When <em>gettext</em> and Boost.Locale search for a specific message catalog, they search in the specified path for a file named after the domain.</li>
+<li><a class="anchor" id="term_normalization"></a> <b>Normalization</b> - Unicode normalization is the process of converting strings to a standard form, suitable for text processing and comparison. For example, character "ü" can be represented by a single code point or a combination of the character "u" and the diaeresis "¨". Normalization is an important part of Unicode text processing. <br/>
+ Normalization is not locale-dependent, but because it is an important part of Unicode processing, it is included in the Boost.Locale library.</li>
+<li><b>UCS-2</b> - a fixed-width Unicode encoding, capable of representing only code points in the <em>Basic Multilingual Plane (BMP)</em>. It is a legacy encoding and is not recommended for use.</li>
+<li><b>Unicode</b> -- the industry standard that defines the representation and manipulation of text suitable for most languages and countries. It should not be confused with the <em>Universal Character Set</em>, it is a much larger standard that also defines algorithms like bidirectional display order, Arabic shaping, etc.</li>
+<li><b>Universal Character Set (UCS)</b> - an international standard that defines a set of characters for many scripts and their <em>code</em> <em>points</em>.</li>
+<li><b>UTF-8</b> - a variable-width Unicode transformation format. Each UCS code point is represented as a sequence of between 1 and 4 octets that can be easily distinguished. It includes ASCII as a subset. It is the most popular Unicode encoding for web applications, data transfer and storage, and is the de-facto standard encoding for most POSIX operation systems.</li>
+<li><b>UTF-16</b> - a variable-width Unicode transformation format. Each UCS code point is represented as a sequence of one or two 16-bit words. It is a very popular encoding for platforms such as the Win32 API, Java, C#, Python, etc. However, it is frequently confused with the _UCS-2_ fixed-width encoding, which can only represent characters in the <em>Basic Multilingual Plane (BMP)</em>. <br/>
+ This encoding is used for <code>std::wstring</code> under the Win32 platform, where <code>sizeof(wchar_t)==2</code>.</li>
+<li><b>UTF-32/UCS-4</b> - a fixed-width Unicode transformation format, where each code point is represented as a single 32-bit word. It has the advantage of simple code point representation, but is wasteful in terms of memory usage. It is used for <code>std::wstring</code> encoding for most POSIX platforms, where <code>sizeof(wchar_t)==4</code>.</li>
+<li><a class="anchor" id="term_case_folding"></a> <b>Case Folding</b> - is a process of converting a text to case independent representation. For example case folding for a word "Grüßen" is "grüssen" - where the letter "ß" is represented in case independent way as "ss".</li>
+<li><a class="anchor" id="term_title_case"></a> <b>Title Case</b> - Is a text conversion where the words are capitalized. For example "hello world" is converted to "Hello World" </li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/gnu__gettext_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/gnu__gettext_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/gnu_gettext.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/gnu_gettext.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCLAE_GNU_GETTEXT_HPP</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCLAE_GNU_GETTEXT_HPP</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/message.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#include &lt;boost/function.hpp&gt;</span>
+<a name="l00013"></a>00013 <span class="preprocessor">#include &lt;stdexcept&gt;</span>
+<a name="l00014"></a>00014
+<a name="l00015"></a>00015 <span class="keyword">namespace </span>boost {
+<a name="l00016"></a>00016 <span class="keyword">namespace </span>locale {
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020
+<a name="l00024"></a><a class="code" href="namespaceboost_1_1locale_1_1gnu__gettext.html">00024</a> <span class="keyword">namespace </span>gnu_gettext {
+<a name="l00025"></a>00025
+<a name="l00034"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">00034</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html" title="This structure holds all information required for creating gnu-gettext message catalogs,.">messages_info</a> {
+<a name="l00035"></a>00035 <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html" title="This structure holds all information required for creating gnu-gettext message catalogs,.">messages_info</a>() :
+<a name="l00036"></a>00036 <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a1afc3be03d4848042e3208d4ca5aec85" title="The language we load the catalog for, like &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot;, &amp;quot;de&amp;quot;.">language</a>(<span class="stringliteral">&quot;C&quot;</span>),
+<a name="l00037"></a>00037 <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a39ea1cfd018c7702d94d03e76042ff10">locale_category</a>(<span class="stringliteral">&quot;LC_MESSAGES&quot;</span>)
+<a name="l00038"></a>00038 {
+<a name="l00039"></a>00039 }
+<a name="l00040"></a>00040
+<a name="l00041"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a1afc3be03d4848042e3208d4ca5aec85">00041</a> std::string <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a1afc3be03d4848042e3208d4ca5aec85" title="The language we load the catalog for, like &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot;, &amp;quot;de&amp;quot;.">language</a>;
+<a name="l00042"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ae939e0c5dbabba7fb4cc2872f4e7dac2">00042</a> std::string <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ae939e0c5dbabba7fb4cc2872f4e7dac2" title="The country we load the catalog for, like &amp;quot;US&amp;quot;, &amp;quot;IL&amp;quot;.">country</a>;
+<a name="l00043"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#af543a11d3ff1d12e24c06306b30f8fb8">00043</a> std::string <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#af543a11d3ff1d12e24c06306b30f8fb8" title="Language variant, like &amp;quot;euro&amp;quot; so it would look for catalog like de_DE_at_euro.">variant</a>;
+<a name="l00044"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4a7406581c6c7975c90db9d2d157d384">00044</a> std::string <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4a7406581c6c7975c90db9d2d157d384">encoding</a>;
+<a name="l00045"></a>00045
+<a name="l00046"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a39ea1cfd018c7702d94d03e76042ff10">00046</a> std::string <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a39ea1cfd018c7702d94d03e76042ff10">locale_category</a>;
+<a name="l00047"></a>00047
+<a name="l00048"></a>00048
+<a name="l00049"></a>00049
+<a name="l00050"></a>00050
+<a name="l00051"></a>00051
+<a name="l00052"></a>00052
+<a name="l00053"></a>00053
+<a name="l00054"></a>00054
+<a name="l00055"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">00055</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html" title="This type represents GNU Gettext domain name for the messages.">domain</a> {
+<a name="l00056"></a>00056
+<a name="l00057"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#ae2d68e6e122c01aa07e60142d8af54fc">00057</a> std::string <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#ae2d68e6e122c01aa07e60142d8af54fc" title="The name of the domain.">name</a>;
+<a name="l00058"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a7004c3d4bb7ff1ebdba50535723d84a5">00058</a> std::string <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a7004c3d4bb7ff1ebdba50535723d84a5" title="The character encoding for the domain.">encoding</a>;
+<a name="l00059"></a>00059 <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html" title="This type represents GNU Gettext domain name for the messages.">domain</a>() {}
+<a name="l00066"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a08bbb38698a079239430066b688d28ab">00066</a> <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html" title="This type represents GNU Gettext domain name for the messages.">domain</a>(std::string <span class="keyword">const</span> &amp;n)
+<a name="l00067"></a>00067 {
+<a name="l00068"></a>00068 <span class="keywordtype">size_t</span> pos = n.find(<span class="stringliteral">&quot;/&quot;</span>);
+<a name="l00069"></a>00069 <span class="keywordflow">if</span>(pos==std::string::npos) {
+<a name="l00070"></a>00070 <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#ae2d68e6e122c01aa07e60142d8af54fc" title="The name of the domain.">name</a> = n;
+<a name="l00071"></a>00071 <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a7004c3d4bb7ff1ebdba50535723d84a5" title="The character encoding for the domain.">encoding</a> = <span class="stringliteral">&quot;UTF-8&quot;</span>;
+<a name="l00072"></a>00072 }
+<a name="l00073"></a>00073 <span class="keywordflow">else</span> {
+<a name="l00074"></a>00074 <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#ae2d68e6e122c01aa07e60142d8af54fc" title="The name of the domain.">name</a> = n.substr(0,pos);
+<a name="l00075"></a>00075 <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a7004c3d4bb7ff1ebdba50535723d84a5" title="The character encoding for the domain.">encoding</a> = n.substr(pos+1);
+<a name="l00076"></a>00076 }
+<a name="l00077"></a>00077
+<a name="l00078"></a>00078 }
+<a name="l00079"></a>00079
+<a name="l00083"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a4a361b37db81571d440f0ec4d1e9038f">00083</a> <span class="keywordtype">bool</span> <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a4a361b37db81571d440f0ec4d1e9038f">operator==</a>(<a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html" title="This type represents GNU Gettext domain name for the messages.">domain</a> <span class="keyword">const</span> &amp;other)<span class="keyword"> const</span>
+<a name="l00084"></a>00084 <span class="keyword"> </span>{
+<a name="l00085"></a>00085 <span class="keywordflow">return</span> <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#ae2d68e6e122c01aa07e60142d8af54fc" title="The name of the domain.">name</a>==other.<a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#ae2d68e6e122c01aa07e60142d8af54fc" title="The name of the domain.">name</a>;
+<a name="l00086"></a>00086 }
+<a name="l00090"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a26442fe81a0ce8c51775b1267455ecbe">00090</a> <span class="keywordtype">bool</span> <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a26442fe81a0ce8c51775b1267455ecbe">operator!=</a>(<a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html" title="This type represents GNU Gettext domain name for the messages.">domain</a> <span class="keyword">const</span> &amp;other)<span class="keyword"> const</span>
+<a name="l00091"></a>00091 <span class="keyword"> </span>{
+<a name="l00092"></a>00092 <span class="keywordflow">return</span> !(*<span class="keyword">this</span>==other);
+<a name="l00093"></a>00093 }
+<a name="l00094"></a>00094
+<a name="l00095"></a>00095 };
+<a name="l00096"></a>00096
+<a name="l00097"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ac3bfe22cf949ed3f87ee28fa0c983502">00097</a> <span class="keyword">typedef</span> std::vector&lt;domain&gt; domains_type;
+<a name="l00098"></a>00098
+<a name="l00099"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a1ca79b90b4b8dbc924e5eb1b42188311">00099</a> <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ac3bfe22cf949ed3f87ee28fa0c983502">domains_type</a> <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a1ca79b90b4b8dbc924e5eb1b42188311">domains</a>;
+<a name="l00100"></a>00100
+<a name="l00101"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a263d9d2c359ae7730e6d5bba54bb3022">00101</a> std::vector&lt;std::string&gt; <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a263d9d2c359ae7730e6d5bba54bb3022">paths</a>;
+<a name="l00102"></a>00102
+<a name="l00103"></a>00103
+<a name="l00114"></a>00114 <span class="keyword">typedef</span> function&lt;
+<a name="l00115"></a>00115 std::vector&lt;char&gt;(
+<a name="l00116"></a>00116 std::string <span class="keyword">const</span> &amp;file_name,
+<a name="l00117"></a>00117 std::string <span class="keyword">const</span> &amp;<a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4a7406581c6c7975c90db9d2d157d384">encoding</a>
+<a name="l00118"></a>00118 )
+<a name="l00119"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4dfe37c5a392e5106e65b396a5288b76">00119</a> &gt; <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4dfe37c5a392e5106e65b396a5288b76">callback_type</a>;
+<a name="l00120"></a>00120
+<a name="l00125"></a><a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a63bd8b01ca532a2657186bab3fa396a2">00125</a> <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4dfe37c5a392e5106e65b396a5288b76">callback_type</a> <a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a63bd8b01ca532a2657186bab3fa396a2">callback</a>;
+<a name="l00126"></a>00126
+<a name="l00127"></a>00127 };
+<a name="l00128"></a>00128
+<a name="l00133"></a>00133
+<a name="l00134"></a>00134 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00135"></a>00135 <a class="code" href="classboost_1_1locale_1_1message__format.html" title="This facet provides message formatting abilities.">message_format&lt;CharType&gt;</a> *<a class="code" href="namespaceboost_1_1locale_1_1gnu__gettext.html#a0e964bab0c1cc11e034177e629b08411">create_messages_facet</a>(<a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html" title="This structure holds all information required for creating gnu-gettext message catalogs,.">messages_info</a> <span class="keyword">const</span> &amp;<a class="code" href="classboost_1_1locale_1_1info.html" title="a facet that holds general information about locale">info</a>);
+<a name="l00136"></a>00136
+<a name="l00138"></a>00138
+<a name="l00139"></a>00139 <span class="keyword">template</span>&lt;&gt;
+<a name="l00140"></a>00140 BOOST_LOCALE_DECL <a class="code" href="classboost_1_1locale_1_1message__format.html" title="This facet provides message formatting abilities.">message_format&lt;char&gt;</a> *<a class="code" href="namespaceboost_1_1locale_1_1gnu__gettext.html#a0e964bab0c1cc11e034177e629b08411">create_messages_facet</a>(<a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html" title="This structure holds all information required for creating gnu-gettext message catalogs,.">messages_info</a> <span class="keyword">const</span> &amp;<a class="code" href="classboost_1_1locale_1_1info.html" title="a facet that holds general information about locale">info</a>);
+<a name="l00141"></a>00141
+<a name="l00142"></a>00142 <span class="keyword">template</span>&lt;&gt;
+<a name="l00143"></a>00143 BOOST_LOCALE_DECL <a class="code" href="classboost_1_1locale_1_1message__format.html" title="This facet provides message formatting abilities.">message_format&lt;wchar_t&gt;</a> *<a class="code" href="namespaceboost_1_1locale_1_1gnu__gettext.html#a0e964bab0c1cc11e034177e629b08411">create_messages_facet</a>(<a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html" title="This structure holds all information required for creating gnu-gettext message catalogs,.">messages_info</a> <span class="keyword">const</span> &amp;<a class="code" href="classboost_1_1locale_1_1info.html" title="a facet that holds general information about locale">info</a>);
+<a name="l00144"></a>00144
+<a name="l00145"></a>00145 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR16_T</span>
+<a name="l00146"></a>00146 <span class="preprocessor"></span> <span class="keyword">template</span>&lt;&gt;
+<a name="l00147"></a>00147 BOOST_LOCALE_DECL <a class="code" href="classboost_1_1locale_1_1message__format.html" title="This facet provides message formatting abilities.">message_format&lt;char16_t&gt;</a> *<a class="code" href="namespaceboost_1_1locale_1_1gnu__gettext.html#a0e964bab0c1cc11e034177e629b08411">create_messages_facet</a>(<a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html" title="This structure holds all information required for creating gnu-gettext message catalogs,.">messages_info</a> <span class="keyword">const</span> &amp;<a class="code" href="classboost_1_1locale_1_1info.html" title="a facet that holds general information about locale">info</a>);
+<a name="l00148"></a>00148 <span class="preprocessor"> #endif</span>
+<a name="l00149"></a>00149 <span class="preprocessor"></span>
+<a name="l00150"></a>00150 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR32_T</span>
+<a name="l00151"></a>00151 <span class="preprocessor"></span> <span class="keyword">template</span>&lt;&gt;
+<a name="l00152"></a>00152 BOOST_LOCALE_DECL <a class="code" href="classboost_1_1locale_1_1message__format.html" title="This facet provides message formatting abilities.">message_format&lt;char32_t&gt;</a> *<a class="code" href="namespaceboost_1_1locale_1_1gnu__gettext.html#a0e964bab0c1cc11e034177e629b08411">create_messages_facet</a>(<a class="code" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html" title="This structure holds all information required for creating gnu-gettext message catalogs,.">messages_info</a> <span class="keyword">const</span> &amp;<a class="code" href="classboost_1_1locale_1_1info.html" title="a facet that holds general information about locale">info</a>);
+<a name="l00153"></a>00153 <span class="preprocessor"> #endif</span>
+<a name="l00154"></a>00154 <span class="preprocessor"></span>
+<a name="l00156"></a>00156
+<a name="l00157"></a>00157 } <span class="comment">// gnu_gettext</span>
+<a name="l00158"></a>00158
+<a name="l00160"></a>00160
+<a name="l00161"></a>00161 } <span class="comment">// locale</span>
+<a name="l00162"></a>00162 } <span class="comment">// boost</span>
+<a name="l00163"></a>00163
+<a name="l00164"></a>00164 <span class="preprocessor">#endif</span>
+<a name="l00165"></a>00165 <span class="preprocessor"></span>
+<a name="l00166"></a>00166 <span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+<a name="l00167"></a>00167
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/group__boundary.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/group__boundary.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,1443 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Boundary Analysis</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Classes &#124;
+Typedefs &#124;
+Enumerations &#124;
+Functions &#124;
+Friends </div>
+ <div class="headertitle">
+<h1>Boundary Analysis</h1> </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class represents a boundary point in the text. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html">boost::locale::boundary::break_info</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This structure is used for representing boundary point that follows the offset. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This facet generates an index for boundary analysis for a given text. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class holds an index of segments in the text range and allows to iterate over them. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class holds an index of <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary points</a> and allows iterating over them. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">a segment object that represents a pair of two iterators that define the range where this segment exits and a rule that defines it. More...<br/></td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; break_info &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">boost::locale::boundary::index_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef unspecified_iterator_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">boost::locale::boundary::segment_index::iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef unspecified_iterator_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga5f8e61b5babc3f0fa95f5fb8acae3724">boost::locale::boundary::segment_index::const_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef segment&lt; base_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga067c663d18faee08adb3355701ae72ba">boost::locale::boundary::segment_index::value_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef unspecified_iterator_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">boost::locale::boundary::boundary_point_index::iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef unspecified_iterator_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gac9ce9158eb2fb030c1baf93376203d16">boost::locale::boundary::boundary_point_index::const_iterator</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef boundary_point<br class="typebreak"/>
+&lt; base_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga7f7328a860cf485a4bd8f17658c291e1">boost::locale::boundary::boundary_point_index::value_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef segment_index<br class="typebreak"/>
+&lt; std::string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gad4785439a3f03ee455c93830b8f1366c">boost::locale::boundary::ssegment_index</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga579cfdfccf9c682ac4dae5fb65d4a843"></a><!-- doxytag: member="boundary::wssegment_index" ref="ga579cfdfccf9c682ac4dae5fb65d4a843" args="" -->
+typedef segment_index<br class="typebreak"/>
+&lt; std::wstring::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga579cfdfccf9c682ac4dae5fb65d4a843">boost::locale::boundary::wssegment_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6fff9ef7a0971ed3c686f3e8d5c56bf4"></a><!-- doxytag: member="boundary::u16ssegment_index" ref="ga6fff9ef7a0971ed3c686f3e8d5c56bf4" args="" -->
+typedef segment_index<br class="typebreak"/>
+&lt; std::u16string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga6fff9ef7a0971ed3c686f3e8d5c56bf4">boost::locale::boundary::u16ssegment_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3a7b82f5a7e29bd079dd48ca13b79f20"></a><!-- doxytag: member="boundary::u32ssegment_index" ref="ga3a7b82f5a7e29bd079dd48ca13b79f20" args="" -->
+typedef segment_index<br class="typebreak"/>
+&lt; std::u32string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga3a7b82f5a7e29bd079dd48ca13b79f20">boost::locale::boundary::u32ssegment_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga82c153957bff0be844a5ce4490d4e7f8"></a><!-- doxytag: member="boundary::csegment_index" ref="ga82c153957bff0be844a5ce4490d4e7f8" args="" -->
+typedef segment_index&lt; char <br class="typebreak"/>
+const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga82c153957bff0be844a5ce4490d4e7f8">boost::locale::boundary::csegment_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga29ce0d14d0466a28c205b5dc9d0d6a36"></a><!-- doxytag: member="boundary::wcsegment_index" ref="ga29ce0d14d0466a28c205b5dc9d0d6a36" args="" -->
+typedef segment_index&lt; wchar_t <br class="typebreak"/>
+const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga29ce0d14d0466a28c205b5dc9d0d6a36">boost::locale::boundary::wcsegment_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa20a99d93e3202680bb0660481e1d414"></a><!-- doxytag: member="boundary::u16csegment_index" ref="gaa20a99d93e3202680bb0660481e1d414" args="" -->
+typedef segment_index<br class="typebreak"/>
+&lt; char16_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaa20a99d93e3202680bb0660481e1d414">boost::locale::boundary::u16csegment_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaacc781106af79ec27693fa8012d54cb9"></a><!-- doxytag: member="boundary::u32csegment_index" ref="gaacc781106af79ec27693fa8012d54cb9" args="" -->
+typedef segment_index<br class="typebreak"/>
+&lt; char32_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaacc781106af79ec27693fa8012d54cb9">boost::locale::boundary::u32csegment_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga485e82cdd9debd15dc4fd6f57be10727"></a><!-- doxytag: member="boundary::sboundary_point_index" ref="ga485e82cdd9debd15dc4fd6f57be10727" args="" -->
+typedef boundary_point_index<br class="typebreak"/>
+&lt; std::string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga485e82cdd9debd15dc4fd6f57be10727">boost::locale::boundary::sboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad539aad8c788c8e90cdf08aeed5df4a3"></a><!-- doxytag: member="boundary::wsboundary_point_index" ref="gad539aad8c788c8e90cdf08aeed5df4a3" args="" -->
+typedef boundary_point_index<br class="typebreak"/>
+&lt; std::wstring::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gad539aad8c788c8e90cdf08aeed5df4a3">boost::locale::boundary::wsboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaba43501d4ed1922c9446db3bf14a918f"></a><!-- doxytag: member="boundary::u16sboundary_point_index" ref="gaba43501d4ed1922c9446db3bf14a918f" args="" -->
+typedef boundary_point_index<br class="typebreak"/>
+&lt; std::u16string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaba43501d4ed1922c9446db3bf14a918f">boost::locale::boundary::u16sboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1379f8968dd611be0b59d04218a1aae8"></a><!-- doxytag: member="boundary::u32sboundary_point_index" ref="ga1379f8968dd611be0b59d04218a1aae8" args="" -->
+typedef boundary_point_index<br class="typebreak"/>
+&lt; std::u32string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga1379f8968dd611be0b59d04218a1aae8">boost::locale::boundary::u32sboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga31f0617de9388783205020a8679b40af"></a><!-- doxytag: member="boundary::cboundary_point_index" ref="ga31f0617de9388783205020a8679b40af" args="" -->
+typedef boundary_point_index<br class="typebreak"/>
+&lt; char const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga31f0617de9388783205020a8679b40af">boost::locale::boundary::cboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabcb5bcc788909afeb8c68d857284cb59"></a><!-- doxytag: member="boundary::wcboundary_point_index" ref="gabcb5bcc788909afeb8c68d857284cb59" args="" -->
+typedef boundary_point_index<br class="typebreak"/>
+&lt; wchar_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gabcb5bcc788909afeb8c68d857284cb59">boost::locale::boundary::wcboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1a89414f77d0b11b7fa8c3a5fa896266"></a><!-- doxytag: member="boundary::u16cboundary_point_index" ref="ga1a89414f77d0b11b7fa8c3a5fa896266" args="" -->
+typedef boundary_point_index<br class="typebreak"/>
+&lt; char16_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga1a89414f77d0b11b7fa8c3a5fa896266">boost::locale::boundary::u16cboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1d16a23d328240464f9068cf58fb38d7"></a><!-- doxytag: member="boundary::u32cboundary_point_index" ref="ga1d16a23d328240464f9068cf58fb38d7" args="" -->
+typedef boundary_point_index<br class="typebreak"/>
+&lt; char32_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga1d16a23d328240464f9068cf58fb38d7">boost::locale::boundary::u32cboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaac5031c17bd3f7ddc5138546af121064"></a><!-- doxytag: member="boundary::ssegment" ref="gaac5031c17bd3f7ddc5138546af121064" args="" -->
+typedef segment<br class="typebreak"/>
+&lt; std::string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaac5031c17bd3f7ddc5138546af121064">boost::locale::boundary::ssegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaca0e28d417ee314f3035c7561ed5134a"></a><!-- doxytag: member="boundary::wssegment" ref="gaca0e28d417ee314f3035c7561ed5134a" args="" -->
+typedef segment<br class="typebreak"/>
+&lt; std::wstring::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaca0e28d417ee314f3035c7561ed5134a">boost::locale::boundary::wssegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5084d9529f752361d18c2196f38df3c0"></a><!-- doxytag: member="boundary::u16ssegment" ref="ga5084d9529f752361d18c2196f38df3c0" args="" -->
+typedef segment<br class="typebreak"/>
+&lt; std::u16string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga5084d9529f752361d18c2196f38df3c0">boost::locale::boundary::u16ssegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaffcc722694a39291a9ea7f68a95e1e27"></a><!-- doxytag: member="boundary::u32ssegment" ref="gaffcc722694a39291a9ea7f68a95e1e27" args="" -->
+typedef segment<br class="typebreak"/>
+&lt; std::u32string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaffcc722694a39291a9ea7f68a95e1e27">boost::locale::boundary::u32ssegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7a89ba0de6cad23a0f1b0b90ca5296f0"></a><!-- doxytag: member="boundary::csegment" ref="ga7a89ba0de6cad23a0f1b0b90ca5296f0" args="" -->
+typedef segment&lt; char const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga7a89ba0de6cad23a0f1b0b90ca5296f0">boost::locale::boundary::csegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab9d26aae843dad891a3bfa736871e843"></a><!-- doxytag: member="boundary::wcsegment" ref="gab9d26aae843dad891a3bfa736871e843" args="" -->
+typedef segment&lt; wchar_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gab9d26aae843dad891a3bfa736871e843">boost::locale::boundary::wcsegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5ff9e98f81ad61dbcd480fc61780fee1"></a><!-- doxytag: member="boundary::u16csegment" ref="ga5ff9e98f81ad61dbcd480fc61780fee1" args="" -->
+typedef segment&lt; char16_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga5ff9e98f81ad61dbcd480fc61780fee1">boost::locale::boundary::u16csegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf2077b28c5de700fb5bff9688fe410d6"></a><!-- doxytag: member="boundary::u32csegment" ref="gaf2077b28c5de700fb5bff9688fe410d6" args="" -->
+typedef segment&lt; char32_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaf2077b28c5de700fb5bff9688fe410d6">boost::locale::boundary::u32csegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">boost::locale::boundary::rule_type</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flags used with word boundary analysis -- the type of the word, line or sentence boundary found. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boost::locale::boundary::boundary_type</a> { <a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641ae80c964112541d88af9b875dafb6605d">boost::locale::boundary::character</a>,
+<a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6">boost::locale::boundary::word</a>,
+<a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a88aa1509eace7589f5df87d4694871e9">boost::locale::boundary::sentence</a>,
+<a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a72895419fdd7219b3695cf0abd602ea4">boost::locale::boundary::line</a>
+ }</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename BaseIterator &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga43283ecda927605b1b802a3c3306bfb1">boost::locale::boundary::operator==</a> (BaseIterator const &amp;l, boundary_point&lt; BaseIterator &gt; const &amp;r)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename BaseIterator &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga11ff477ceecc7cbc274d998c3676126e">boost::locale::boundary::operator!=</a> (BaseIterator const &amp;l, boundary_point&lt; BaseIterator &gt; const &amp;r)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga2c354f4cc03677b58c97038cd84dc465">boost::locale::boundary::segment_index::segment_index</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga06ddc335e95479ec51e9b16d0f829bb3">boost::locale::boundary::segment_index::segment_index</a> (boundary_type type, base_iterator begin, base_iterator end, rule_type mask, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga46a5f584d5a1a43ad4bc0fff07183fcc">boost::locale::boundary::segment_index::segment_index</a> (boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga8187f58177fc89ef2f8f818a37111363">boost::locale::boundary::segment_index::segment_index</a> (boundary_point_index&lt; base_iterator &gt; const &amp;)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">segment_index const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gae7941dc874ca05d2ef2a03f781c5b78a">boost::locale::boundary::segment_index::operator=</a> (boundary_point_index&lt; base_iterator &gt; const &amp;)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gafa2a756b10d3522743204b45b794bb3e">boost::locale::boundary::segment_index::map</a> (boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaf74ff9c86c177efa8f74856277d659af">boost::locale::boundary::segment_index::begin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga8757062d2446b35675b585651c5fea9f">boost::locale::boundary::segment_index::end</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga2480236106971797460187777f2a4411">boost::locale::boundary::segment_index::find</a> (base_iterator p) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a">boost::locale::boundary::segment_index::rule</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gad19735180401edb15acbdbbeb21e5a73">boost::locale::boundary::segment_index::rule</a> (rule_type v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gace7faa10d536c85df0f2d5cac85f2bbc">boost::locale::boundary::segment_index::full_select</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga205fd51daa439a18527675e663a0802f">boost::locale::boundary::segment_index::full_select</a> (bool v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaba6993dd50ad8cf2db8921e5cf668a69">boost::locale::boundary::boundary_point_index::boundary_point_index</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gacc189288792012cfdb21c07fddbadc4f">boost::locale::boundary::boundary_point_index::boundary_point_index</a> (boundary_type type, base_iterator begin, base_iterator end, rule_type mask, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga9b926379fa2fcc7f87dc067953049d69">boost::locale::boundary::boundary_point_index::boundary_point_index</a> (boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gac48665ff53789c6ee44a423963b6550d">boost::locale::boundary::boundary_point_index::boundary_point_index</a> (segment_index&lt; base_iterator &gt; const &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">boundary_point_index const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga83d57b993b00686b2cac711667c6a931">boost::locale::boundary::boundary_point_index::operator=</a> (segment_index&lt; base_iterator &gt; const &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga6b4b5d5cf80b55302a88e7b36c812418">boost::locale::boundary::boundary_point_index::map</a> (boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga56f42a32f0378b6e157671f9e17bd66f">boost::locale::boundary::boundary_point_index::begin</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaf3d66d578e32a63b3f0ffbb59740667b">boost::locale::boundary::boundary_point_index::end</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga0bb71a287afca990e85b17246568492d">boost::locale::boundary::boundary_point_index::find</a> (base_iterator p) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03">boost::locale::boundary::boundary_point_index::rule</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga56e63913f51109e05a24a7136472a975">boost::locale::boundary::boundary_point_index::rule</a> (rule_type v)</td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga2b32edcb7e385885cc7bb6ed32e0ee94"></a><!-- doxytag: member="boundary::operator==" ref="ga2b32edcb7e385885cc7bb6ed32e0ee94" args="(segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename IteratorL , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga2b32edcb7e385885cc7bb6ed32e0ee94">boost::locale::boundary::operator==</a> (segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two segments. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga92e8bdaf8e347b65b711ef2437ad9348"></a><!-- doxytag: member="boundary::operator!=" ref="ga92e8bdaf8e347b65b711ef2437ad9348" args="(segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename IteratorL , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga92e8bdaf8e347b65b711ef2437ad9348">boost::locale::boundary::operator!=</a> (segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two segments. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3312b16b2a678780f2354e8addac83fd"></a><!-- doxytag: member="boundary::operator&lt;" ref="ga3312b16b2a678780f2354e8addac83fd" args="(segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename IteratorL , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga3312b16b2a678780f2354e8addac83fd">boost::locale::boundary::operator&lt;</a> (segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two segments. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf36ebfa12ec261fd4425eafe49245009"></a><!-- doxytag: member="boundary::operator&lt;=" ref="gaf36ebfa12ec261fd4425eafe49245009" args="(segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename IteratorL , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaf36ebfa12ec261fd4425eafe49245009">boost::locale::boundary::operator&lt;=</a> (segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two segments. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac09337a84a82c4f366148c98a69dddd4"></a><!-- doxytag: member="boundary::operator&gt;" ref="gac09337a84a82c4f366148c98a69dddd4" args="(segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename IteratorL , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gac09337a84a82c4f366148c98a69dddd4">boost::locale::boundary::operator&gt;</a> (segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two segments. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4cb705d03b2611464478733338539430"></a><!-- doxytag: member="boundary::operator&gt;=" ref="ga4cb705d03b2611464478733338539430" args="(segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename IteratorL , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga4cb705d03b2611464478733338539430">boost::locale::boundary::operator&gt;=</a> (segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two segments. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae7ac339ac890f13ae989589fd27b042a"></a><!-- doxytag: member="boundary::operator==" ref="gae7ac339ac890f13ae989589fd27b042a" args="(std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename Traits , typename Alloc , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gae7ac339ac890f13ae989589fd27b042a">boost::locale::boundary::operator==</a> (std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga36e8f0b7bfc18651da1d5b85d097daf2"></a><!-- doxytag: member="boundary::operator!=" ref="ga36e8f0b7bfc18651da1d5b85d097daf2" args="(std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename Traits , typename Alloc , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga36e8f0b7bfc18651da1d5b85d097daf2">boost::locale::boundary::operator!=</a> (std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0932175037e72b6988169afd0ae38e6e"></a><!-- doxytag: member="boundary::operator&lt;" ref="ga0932175037e72b6988169afd0ae38e6e" args="(std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename Traits , typename Alloc , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga0932175037e72b6988169afd0ae38e6e">boost::locale::boundary::operator&lt;</a> (std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga81060e764be6d980bb0675fb9f5e9812"></a><!-- doxytag: member="boundary::operator&lt;=" ref="ga81060e764be6d980bb0675fb9f5e9812" args="(std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename Traits , typename Alloc , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga81060e764be6d980bb0675fb9f5e9812">boost::locale::boundary::operator&lt;=</a> (std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga82536a8f6542277280e93b8f46537f8a"></a><!-- doxytag: member="boundary::operator&gt;" ref="ga82536a8f6542277280e93b8f46537f8a" args="(std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename Traits , typename Alloc , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga82536a8f6542277280e93b8f46537f8a">boost::locale::boundary::operator&gt;</a> (std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gafbcf10a14a62b789df75fa4223a2ff92"></a><!-- doxytag: member="boundary::operator&gt;=" ref="gafbcf10a14a62b789df75fa4223a2ff92" args="(std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename Traits , typename Alloc , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gafbcf10a14a62b789df75fa4223a2ff92">boost::locale::boundary::operator&gt;=</a> (std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga46962dd62a6655fd34b9ec165af2d391"></a><!-- doxytag: member="boundary::operator==" ref="ga46962dd62a6655fd34b9ec165af2d391" args="(segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)" -->
+template&lt;typename Iterator , typename CharType , typename Traits , typename Alloc &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga46962dd62a6655fd34b9ec165af2d391">boost::locale::boundary::operator==</a> (segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4932acde9903090a1d8451b2e8eb7cce"></a><!-- doxytag: member="boundary::operator!=" ref="ga4932acde9903090a1d8451b2e8eb7cce" args="(segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)" -->
+template&lt;typename Iterator , typename CharType , typename Traits , typename Alloc &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga4932acde9903090a1d8451b2e8eb7cce">boost::locale::boundary::operator!=</a> (segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0a251376a40e702e33fd067d44df4aa7"></a><!-- doxytag: member="boundary::operator&lt;" ref="ga0a251376a40e702e33fd067d44df4aa7" args="(segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)" -->
+template&lt;typename Iterator , typename CharType , typename Traits , typename Alloc &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga0a251376a40e702e33fd067d44df4aa7">boost::locale::boundary::operator&lt;</a> (segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa261b02fb8190249aeabe9558422b510"></a><!-- doxytag: member="boundary::operator&lt;=" ref="gaa261b02fb8190249aeabe9558422b510" args="(segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)" -->
+template&lt;typename Iterator , typename CharType , typename Traits , typename Alloc &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaa261b02fb8190249aeabe9558422b510">boost::locale::boundary::operator&lt;=</a> (segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gacb4ee8e6dd72faa9a70a6200f1086083"></a><!-- doxytag: member="boundary::operator&gt;" ref="gacb4ee8e6dd72faa9a70a6200f1086083" args="(segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)" -->
+template&lt;typename Iterator , typename CharType , typename Traits , typename Alloc &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gacb4ee8e6dd72faa9a70a6200f1086083">boost::locale::boundary::operator&gt;</a> (segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa83d2203efdaaa9ba0efdb5a4d8505c6"></a><!-- doxytag: member="boundary::operator&gt;=" ref="gaa83d2203efdaaa9ba0efdb5a4d8505c6" args="(segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)" -->
+template&lt;typename Iterator , typename CharType , typename Traits , typename Alloc &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaa83d2203efdaaa9ba0efdb5a4d8505c6">boost::locale::boundary::operator&gt;=</a> (segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab6ee0e4f55fc5346b3824a43851d8aa8"></a><!-- doxytag: member="boundary::operator==" ref="gab6ee0e4f55fc5346b3824a43851d8aa8" args="(CharType const *l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gab6ee0e4f55fc5346b3824a43851d8aa8">boost::locale::boundary::operator==</a> (CharType const *l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadd8ef92312098f5301a04ead7e7820ee"></a><!-- doxytag: member="boundary::operator!=" ref="gadd8ef92312098f5301a04ead7e7820ee" args="(CharType const *l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gadd8ef92312098f5301a04ead7e7820ee">boost::locale::boundary::operator!=</a> (CharType const *l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gacc75c28d1a9785f13bf8262f1ab16c42"></a><!-- doxytag: member="boundary::operator&lt;" ref="gacc75c28d1a9785f13bf8262f1ab16c42" args="(CharType const *l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gacc75c28d1a9785f13bf8262f1ab16c42">boost::locale::boundary::operator&lt;</a> (CharType const *l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3c55926456f7174f26d4cb8d21827f5b"></a><!-- doxytag: member="boundary::operator&lt;=" ref="ga3c55926456f7174f26d4cb8d21827f5b" args="(CharType const *l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga3c55926456f7174f26d4cb8d21827f5b">boost::locale::boundary::operator&lt;=</a> (CharType const *l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0b8814055201ec3ea36f0a01d891ad3d"></a><!-- doxytag: member="boundary::operator&gt;" ref="ga0b8814055201ec3ea36f0a01d891ad3d" args="(CharType const *l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga0b8814055201ec3ea36f0a01d891ad3d">boost::locale::boundary::operator&gt;</a> (CharType const *l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7a101883e579432250960545a9cebc5b"></a><!-- doxytag: member="boundary::operator&gt;=" ref="ga7a101883e579432250960545a9cebc5b" args="(CharType const *l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga7a101883e579432250960545a9cebc5b">boost::locale::boundary::operator&gt;=</a> (CharType const *l, segment&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae790fec4c9f079010027dc60cbfe7358"></a><!-- doxytag: member="boundary::operator==" ref="gae790fec4c9f079010027dc60cbfe7358" args="(segment&lt; Iterator &gt; const &amp;l, CharType const *r)" -->
+template&lt;typename Iterator , typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gae790fec4c9f079010027dc60cbfe7358">boost::locale::boundary::operator==</a> (segment&lt; Iterator &gt; const &amp;l, CharType const *r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga6664b475504a2396662bc3658b982e0c"></a><!-- doxytag: member="boundary::operator!=" ref="ga6664b475504a2396662bc3658b982e0c" args="(segment&lt; Iterator &gt; const &amp;l, CharType const *r)" -->
+template&lt;typename Iterator , typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga6664b475504a2396662bc3658b982e0c">boost::locale::boundary::operator!=</a> (segment&lt; Iterator &gt; const &amp;l, CharType const *r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga313c2d3e6270e57dc48587f52833e111"></a><!-- doxytag: member="boundary::operator&lt;" ref="ga313c2d3e6270e57dc48587f52833e111" args="(segment&lt; Iterator &gt; const &amp;l, CharType const *r)" -->
+template&lt;typename Iterator , typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga313c2d3e6270e57dc48587f52833e111">boost::locale::boundary::operator&lt;</a> (segment&lt; Iterator &gt; const &amp;l, CharType const *r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8736ae89a477d37d196e137e51f546f4"></a><!-- doxytag: member="boundary::operator&lt;=" ref="ga8736ae89a477d37d196e137e51f546f4" args="(segment&lt; Iterator &gt; const &amp;l, CharType const *r)" -->
+template&lt;typename Iterator , typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga8736ae89a477d37d196e137e51f546f4">boost::locale::boundary::operator&lt;=</a> (segment&lt; Iterator &gt; const &amp;l, CharType const *r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga46a945423c982c08c8143eaced7878bf"></a><!-- doxytag: member="boundary::operator&gt;" ref="ga46a945423c982c08c8143eaced7878bf" args="(segment&lt; Iterator &gt; const &amp;l, CharType const *r)" -->
+template&lt;typename Iterator , typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga46a945423c982c08c8143eaced7878bf">boost::locale::boundary::operator&gt;</a> (segment&lt; Iterator &gt; const &amp;l, CharType const *r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gacd03bf4305835d4dc2db8e98a67d8e4c"></a><!-- doxytag: member="boundary::operator&gt;=" ref="gacd03bf4305835d4dc2db8e98a67d8e4c" args="(segment&lt; Iterator &gt; const &amp;l, CharType const *r)" -->
+template&lt;typename Iterator , typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gacd03bf4305835d4dc2db8e98a67d8e4c">boost::locale::boundary::operator&gt;=</a> (segment&lt; Iterator &gt; const &amp;l, CharType const *r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType , typename TraitsType , typename Iterator &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_ostream&lt; CharType, <br class="typebreak"/>
+TraitsType &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga52e8a81834c07879736a585f33af5de6">boost::locale::boundary::operator&lt;&lt;</a> (std::basic_ostream&lt; CharType, TraitsType &gt; &amp;out, segment&lt; Iterator &gt; const &amp;tok)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga99daacb708289fe81def9f1ce4486515">boost::locale::boundary::boundary_rule</a> (boundary_type t)</td></tr>
+<tr><td colspan="2"><h2><a name="friend-members"></a>
+Friends</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga960209e8a9453221641eda6bd8c4989b"></a><!-- doxytag: member="boundary::boundary_point_index&lt; base_iterator &gt;" ref="ga960209e8a9453221641eda6bd8c4989b" args="" -->
+class&nbsp;</td><td class="memItemRight" valign="bottom"><b>boost::locale::boundary::segment_index::boundary_point_index&lt; base_iterator &gt;</b></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa8ba2e18ec3780af8f001ba85e40b9e2"></a><!-- doxytag: member="boundary::segment_index&lt; base_iterator &gt;" ref="gaa8ba2e18ec3780af8f001ba85e40b9e2" args="" -->
+class&nbsp;</td><td class="memItemRight" valign="bottom"><b>boost::locale::boundary::boundary_point_index::segment_index&lt; base_iterator &gt;</b></td></tr>
+<tr><td colspan="2"><h2><a name="member-group"></a>
+Flags that describe a type of word selected</h2></td></tr>
+<tr><td colspan="2"><p><a class="anchor" id="amgrpabac8d1452313f3e83b136f6f21b6d18"></a> <a class="anchor" id="bl_boundary_word_rules"></a> </p>
+<br/><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga90cf4f01b95658f659685377226677e7"></a><!-- doxytag: member="boundary::word_none" ref="ga90cf4f01b95658f659685377226677e7" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga90cf4f01b95658f659685377226677e7">boost::locale::boundary::word_none</a> = 0x0000F</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Not a word, like white space or punctuation mark. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaac78a3a6b9e671e253a2591cb56a479b"></a><!-- doxytag: member="boundary::word_number" ref="gaac78a3a6b9e671e253a2591cb56a479b" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaac78a3a6b9e671e253a2591cb56a479b">boost::locale::boundary::word_number</a> = 0x000F0</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word that appear to be a number. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8b7e6ce2fcb185845fa85a1a4c42b3c4"></a><!-- doxytag: member="boundary::word_letter" ref="ga8b7e6ce2fcb185845fa85a1a4c42b3c4" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga8b7e6ce2fcb185845fa85a1a4c42b3c4">boost::locale::boundary::word_letter</a> = 0x00F00</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word that contains letters, excluding kana and ideographic characters. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52d8c63e1f3f8c898c645352206a78ef"></a><!-- doxytag: member="boundary::word_kana" ref="ga52d8c63e1f3f8c898c645352206a78ef" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga52d8c63e1f3f8c898c645352206a78ef">boost::locale::boundary::word_kana</a> = 0x0F000</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word that contains kana characters. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga705ab96f9e62810c8ed977c90d404ef8"></a><!-- doxytag: member="boundary::word_ideo" ref="ga705ab96f9e62810c8ed977c90d404ef8" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga705ab96f9e62810c8ed977c90d404ef8">boost::locale::boundary::word_ideo</a> = 0xF0000</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word that contains ideographic characters. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3ab98808dbb1cc4a346dcc2554c9d8dc"></a><!-- doxytag: member="boundary::word_any" ref="ga3ab98808dbb1cc4a346dcc2554c9d8dc" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga3ab98808dbb1cc4a346dcc2554c9d8dc">boost::locale::boundary::word_any</a> = 0xFFFF0</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Any word including numbers, 0 is special flag, equivalent to 15. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae412d31a918dc793500fed7278663047"></a><!-- doxytag: member="boundary::word_letters" ref="gae412d31a918dc793500fed7278663047" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gae412d31a918dc793500fed7278663047">boost::locale::boundary::word_letters</a> = 0xFFF00</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Any word, excluding numbers but including letters, kana and ideograms. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5de65589628267ab7f2a51f4147d43f9"></a><!-- doxytag: member="boundary::word_kana_ideo" ref="ga5de65589628267ab7f2a51f4147d43f9" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga5de65589628267ab7f2a51f4147d43f9">boost::locale::boundary::word_kana_ideo</a> = 0xFF000</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word that includes kana or ideographic characters. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gad11031065617b6be9d4662d2c06afd52">boost::locale::boundary::word_mask</a> = 0xFFFFF</td></tr>
+<tr><td colspan="2"><h2><a name="member-group"></a>
+Flags that describe a type of line break</h2></td></tr>
+<tr><td colspan="2"><p><a class="anchor" id="amgrp99d1c759163f3082dff790a7e8e04eb5"></a> <a class="anchor" id="bl_boundary_line_rules"></a> </p>
+<br/><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa6a7b6ea3c63a1101a945b82eb10ebd0"></a><!-- doxytag: member="boundary::line_soft" ref="gaa6a7b6ea3c63a1101a945b82eb10ebd0" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaa6a7b6ea3c63a1101a945b82eb10ebd0">boost::locale::boundary::line_soft</a> = 0x0F</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Soft line break: optional but not required. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga04faac8129ca14e4e5a789652ee8ecab"></a><!-- doxytag: member="boundary::line_hard" ref="ga04faac8129ca14e4e5a789652ee8ecab" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga04faac8129ca14e4e5a789652ee8ecab">boost::locale::boundary::line_hard</a> = 0xF0</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hard line break: like break is required (as per CR/LF). <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga33fb765abbab27ee07cf70bfab8f47e0"></a><!-- doxytag: member="boundary::line_any" ref="ga33fb765abbab27ee07cf70bfab8f47e0" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga33fb765abbab27ee07cf70bfab8f47e0">boost::locale::boundary::line_any</a> = 0xFF</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Soft or Hard line break. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad5d8f2ac695f14b58d5df277aa5939f9"></a><!-- doxytag: member="boundary::line_mask" ref="gad5d8f2ac695f14b58d5df277aa5939f9" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gad5d8f2ac695f14b58d5df277aa5939f9">boost::locale::boundary::line_mask</a> = 0xFF</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select all types of line breaks. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="member-group"></a>
+Flags that describe a type of sentence break</h2></td></tr>
+<tr><td colspan="2"><p><a class="anchor" id="amgrpfb13ccc6dee7f63c89f426c484168b62"></a> <a class="anchor" id="bl_boundary_sentence_rules"></a> </p>
+<br/><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3befefe67f79691c117bf5588741355b"></a><!-- doxytag: member="boundary::sentence_term" ref="ga3befefe67f79691c117bf5588741355b" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b">boost::locale::boundary::sentence_term</a> = 0x0F</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The sentence was terminated with a sentence terminator like ".", "!" possible followed by hard separator like CR, LF, PS. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf67883341dd3d8f786e7281d40790000"></a><!-- doxytag: member="boundary::sentence_sep" ref="gaf67883341dd3d8f786e7281d40790000" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaf67883341dd3d8f786e7281d40790000">boost::locale::boundary::sentence_sep</a> = 0xF0</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The sentence does not contain terminator like ".", "!" but ended with hard separator like CR, LF, PS or end of input. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae2042518b20123ec14fbf71458ec9c79"></a><!-- doxytag: member="boundary::sentence_any" ref="gae2042518b20123ec14fbf71458ec9c79" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gae2042518b20123ec14fbf71458ec9c79">boost::locale::boundary::sentence_any</a> = 0xFF</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Either first or second sentence break type;. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacd2a521edb550e75c624000a1089934c"></a><!-- doxytag: member="boundary::sentence_mask" ref="gacd2a521edb550e75c624000a1089934c" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gacd2a521edb550e75c624000a1089934c">boost::locale::boundary::sentence_mask</a> = 0xFF</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select all sentence breaking points. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="member-group"></a>
+Flags that describe a type of character break.</h2></td></tr>
+<tr><td colspan="2"><p><a class="anchor" id="amgrp3e1d3241fbeb9a60e2aefb02fdc6f34a"></a> At this point break iterator does not distinguish different kinds of characters so it is used for consistency. </p>
+<br/><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9f9e97f7d234139cabe4c4df92a6d4b5"></a><!-- doxytag: member="boundary::character_any" ref="ga9f9e97f7d234139cabe4c4df92a6d4b5" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga9f9e97f7d234139cabe4c4df92a6d4b5">boost::locale::boundary::character_any</a> = 0xF</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Not in use, just for consistency. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad151135cfe341d3c1f63bf459f6a1f4c"></a><!-- doxytag: member="boundary::character_mask" ref="gad151135cfe341d3c1f63bf459f6a1f4c" args="" -->
+static const rule_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gad151135cfe341d3c1f63bf459f6a1f4c">boost::locale::boundary::character_mask</a> = 0xF</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select all character breaking points. <br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This module contains all operations required for boundary analysis of text: character, word, like and sentence boundaries</p>
+<p>This module contains all operations required for boundary analysis of text: character, word, like and sentence boundaries </p>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="ga5f8e61b5babc3f0fa95f5fb8acae3724"></a><!-- doxytag: member="boost::locale::boundary::segment_index::const_iterator" ref="ga5f8e61b5babc3f0fa95f5fb8acae3724" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef unspecified_iterator_type <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::const_iterator<code> [inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The bidirectional iterator that iterates over <a class="el" href="group__boundary.html#ga067c663d18faee08adb3355701ae72ba">value_type</a> objects.</p>
+<ul>
+<li>The iterators may be invalidated by use of any non-const member function including but not limited to <a class="el" href="group__boundary.html#gad19735180401edb15acbdbbeb21e5a73">rule(rule_type)</a> and <a class="el" href="group__boundary.html#ga205fd51daa439a18527675e663a0802f">full_select(bool)</a>.</li>
+<li>The returned value_type object is valid as long as iterator points to it. So this following code is wrong as t used after p was updated: <div class="fragment"><pre class="fragment"> segment_index&lt;some_iterator&gt;::iterator p=index.begin();
+ segment&lt;some_iterator&gt; &amp;t = *p;
+ ++p;
+ cout &lt;&lt; t.str() &lt;&lt; endl;
+</pre></div> </li>
+</ul>
+
+</div>
+</div>
+<a class="anchor" id="gac9ce9158eb2fb030c1baf93376203d16"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::const_iterator" ref="gac9ce9158eb2fb030c1baf93376203d16" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef unspecified_iterator_type <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a>&lt; BaseIterator &gt;::const_iterator<code> [inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The bidirectional iterator that iterates over <a class="el" href="group__boundary.html#ga7f7328a860cf485a4bd8f17658c291e1">value_type</a> objects.</p>
+<ul>
+<li>The iterators may be invalidated by use of any non-const member function including but not limited to <a class="el" href="group__boundary.html#ga56e63913f51109e05a24a7136472a975">rule(rule_type)</a> member function.</li>
+<li>The returned value_type object is valid as long as iterator points to it. So this following code is wrong as t used after p was updated: <div class="fragment"><pre class="fragment"> boundary_point_index&lt;some_iterator&gt;::iterator p=index.begin();
+ boundary_point&lt;some_iterator&gt; &amp;t = *p;
+ ++p;
+ <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> r = t-&gt;rule();
+</pre></div> </li>
+</ul>
+
+</div>
+</div>
+<a class="anchor" id="ga7b4dd7af8fad53fabd77e629da24d466"></a><!-- doxytag: member="boost::locale::boundary::index_type" ref="ga7b4dd7af8fad53fabd77e629da24d466" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef std::vector&lt;break_info&gt; <a class="el" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">boost::locale::boundary::index_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>This type holds the analysis of the text - all its break points with marks </p>
+
+</div>
+</div>
+<a class="anchor" id="gaf7a775e77dbbca3495e11d646df96fd2"></a><!-- doxytag: member="boost::locale::boundary::segment_index::iterator" ref="gaf7a775e77dbbca3495e11d646df96fd2" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef unspecified_iterator_type <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::iterator<code> [inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The bidirectional iterator that iterates over <a class="el" href="group__boundary.html#ga067c663d18faee08adb3355701ae72ba">value_type</a> objects.</p>
+<ul>
+<li>The iterators may be invalidated by use of any non-const member function including but not limited to <a class="el" href="group__boundary.html#gad19735180401edb15acbdbbeb21e5a73">rule(rule_type)</a> and <a class="el" href="group__boundary.html#ga205fd51daa439a18527675e663a0802f">full_select(bool)</a>.</li>
+<li>The returned value_type object is valid as long as iterator points to it. So this following code is wrong as t used after p was updated: <div class="fragment"><pre class="fragment"> segment_index&lt;some_iterator&gt;::iterator p=index.begin();
+ segment&lt;some_iterator&gt; &amp;t = *p;
+ ++p;
+ cout &lt;&lt; t.str() &lt;&lt; endl;
+</pre></div> </li>
+</ul>
+
+</div>
+</div>
+<a class="anchor" id="ga1af6e72b3c384edcebc0cf319fe97efe"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::iterator" ref="ga1af6e72b3c384edcebc0cf319fe97efe" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef unspecified_iterator_type <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a>&lt; BaseIterator &gt;::iterator<code> [inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The bidirectional iterator that iterates over <a class="el" href="group__boundary.html#ga7f7328a860cf485a4bd8f17658c291e1">value_type</a> objects.</p>
+<ul>
+<li>The iterators may be invalidated by use of any non-const member function including but not limited to <a class="el" href="group__boundary.html#ga56e63913f51109e05a24a7136472a975">rule(rule_type)</a> member function.</li>
+<li>The returned value_type object is valid as long as iterator points to it. So this following code is wrong as t used after p was updated: <div class="fragment"><pre class="fragment"> boundary_point_index&lt;some_iterator&gt;::iterator p=index.begin();
+ boundary_point&lt;some_iterator&gt; &amp;t = *p;
+ ++p;
+ <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> r = t-&gt;rule();
+</pre></div> </li>
+</ul>
+
+</div>
+</div>
+<a class="anchor" id="ga25e193c81052ef1795f1b53b46bc2095"></a><!-- doxytag: member="boost::locale::boundary::rule_type" ref="ga25e193c81052ef1795f1b53b46bc2095" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef uint32_t <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">boost::locale::boundary::rule_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Flags used with word boundary analysis -- the type of the word, line or sentence boundary found. </p>
+<p>It is a bit-mask that represents various combinations of rules used to select this specific boundary. </p>
+
+</div>
+</div>
+<a class="anchor" id="gad4785439a3f03ee455c93830b8f1366c"></a><!-- doxytag: member="boost::locale::boundary::ssegment_index" ref="gad4785439a3f03ee455c93830b8f1366c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef segment_index&lt;std::string::const_iterator&gt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::ssegment_index</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>convenience typedef </p>
+
+</div>
+</div>
+<a class="anchor" id="ga067c663d18faee08adb3355701ae72ba"></a><!-- doxytag: member="boost::locale::boundary::segment_index::value_type" ref="ga067c663d18faee08adb3355701ae72ba" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef segment&lt;base_iterator&gt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::value_type<code> [inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The type dereferenced by the <a class="el" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a> and <a class="el" href="group__boundary.html#ga5f8e61b5babc3f0fa95f5fb8acae3724">const_iterator</a>. It is an object that represents selected segment. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7f7328a860cf485a4bd8f17658c291e1"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::value_type" ref="ga7f7328a860cf485a4bd8f17658c291e1" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef boundary_point&lt;base_iterator&gt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a>&lt; BaseIterator &gt;::value_type<code> [inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The type dereferenced by the <a class="el" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a> and <a class="el" href="group__boundary.html#gac9ce9158eb2fb030c1baf93376203d16">const_iterator</a>. It is an object that represents the selected <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary point</a>. </p>
+
+</div>
+</div>
+<hr/><h2>Enumeration Type Documentation</h2>
+<a class="anchor" id="ga15de9963ce9bb6037c8525901dfbf641"></a><!-- doxytag: member="boost::locale::boundary::boundary_type" ref="ga15de9963ce9bb6037c8525901dfbf641" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boost::locale::boundary::boundary_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>This type describes a possible boundary analysis alternatives. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga15de9963ce9bb6037c8525901dfbf641ae80c964112541d88af9b875dafb6605d"></a><!-- doxytag: member="character" ref="gga15de9963ce9bb6037c8525901dfbf641ae80c964112541d88af9b875dafb6605d" args="" -->character</em>&nbsp;</td><td>
+<p>Analyse the text for character boundaries. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6"></a><!-- doxytag: member="word" ref="gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6" args="" -->word</em>&nbsp;</td><td>
+<p>Analyse the text for word boundaries. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga15de9963ce9bb6037c8525901dfbf641a88aa1509eace7589f5df87d4694871e9"></a><!-- doxytag: member="sentence" ref="gga15de9963ce9bb6037c8525901dfbf641a88aa1509eace7589f5df87d4694871e9" args="" -->sentence</em>&nbsp;</td><td>
+<p>Analyse the text for Find sentence boundaries. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga15de9963ce9bb6037c8525901dfbf641a72895419fdd7219b3695cf0abd602ea4"></a><!-- doxytag: member="line" ref="gga15de9963ce9bb6037c8525901dfbf641a72895419fdd7219b3695cf0abd602ea4" args="" -->line</em>&nbsp;</td><td>
+<p>Analyse the text for positions suitable for line breaks. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="gaf74ff9c86c177efa8f74856277d659af"></a><!-- doxytag: member="boost::locale::boundary::segment_index::begin" ref="gaf74ff9c86c177efa8f74856277d659af" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">iterator <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::begin </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get the <a class="el" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a> on the beginning of the segments range.</p>
+<p>Preconditions: the <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> should have a mapping</p>
+<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<p>The returned iterator is invalidated by access to any non-const member functions of this object </p>
+
+</div>
+</div>
+<a class="anchor" id="ga56f42a32f0378b6e157671f9e17bd66f"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::begin" ref="ga56f42a32f0378b6e157671f9e17bd66f" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">iterator <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a>&lt; BaseIterator &gt;::begin </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get the <a class="el" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a> on the beginning of the boundary points range.</p>
+<p>Preconditions: this <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a> should have a mapping</p>
+<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<p>The returned iterator is invalidated by access to any non-const member functions of this object </p>
+
+</div>
+</div>
+<a class="anchor" id="gacc189288792012cfdb21c07fddbadc4f"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::boundary_point_index" ref="gacc189288792012cfdb21c07fddbadc4f" args="(boundary_type type, base_iterator begin, base_iterator end, rule_type mask, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a>&lt; BaseIterator &gt;::boundary_point_index </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a>&nbsp;</td>
+ <td class="paramname"> <em>type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td>
+ <td class="paramname"> <em>mask</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> for boundary analysis <a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">type</a> of the text in range [begin,end) using a rule <em>mask</em> for locale <em>loc</em>. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga9b926379fa2fcc7f87dc067953049d69"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::boundary_point_index" ref="ga9b926379fa2fcc7f87dc067953049d69" args="(boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a>&lt; BaseIterator &gt;::boundary_point_index </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a>&nbsp;</td>
+ <td class="paramname"> <em>type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> for boundary analysis <a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">type</a> of the text in range [begin,end) selecting all possible boundary points (full mask) for locale <em>loc</em>. </p>
+
+</div>
+</div>
+<a class="anchor" id="gac48665ff53789c6ee44a423963b6550d"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::boundary_point_index" ref="gac48665ff53789c6ee44a423963b6550d" args="(segment_index&lt; base_iterator &gt; const &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a>&lt; BaseIterator &gt;::boundary_point_index </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a>&lt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a> from a <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a>. It copies all indexing information and uses the default rule (all possible boundary points)</p>
+<p>This operation is very cheap, so if you use <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a> and <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> on same text range it is much better to create one from another rather then indexing the same range twice.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd><a class="el" href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03">rule()</a> flags are not copied </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaba6993dd50ad8cf2db8921e5cf668a69"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::boundary_point_index" ref="gaba6993dd50ad8cf2db8921e5cf668a69" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a>&lt; BaseIterator &gt;::boundary_point_index </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Default constructor.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<p>When this object is constructed by default it does not include a valid index, thus calling <a class="el" href="group__boundary.html#ga56f42a32f0378b6e157671f9e17bd66f">begin()</a>, <a class="el" href="group__boundary.html#gaf3d66d578e32a63b3f0ffbb59740667b">end()</a> or <a class="el" href="group__boundary.html#ga0bb71a287afca990e85b17246568492d">find()</a> member functions would lead to undefined behavior </p>
+
+</div>
+</div>
+<a class="anchor" id="ga99daacb708289fe81def9f1ce4486515"></a><!-- doxytag: member="boost::locale::boundary::boundary_rule" ref="ga99daacb708289fe81def9f1ce4486515" args="(boundary_type t)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">rule_type boost::locale::boundary::boundary_rule </td>
+ <td>(</td>
+ <td class="paramtype">boundary_type&nbsp;</td>
+ <td class="paramname"> <em>t</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>This function returns the mask that covers all variants for specific boundary type </p>
+
+</div>
+</div>
+<a class="anchor" id="ga8757062d2446b35675b585651c5fea9f"></a><!-- doxytag: member="boost::locale::boundary::segment_index::end" ref="ga8757062d2446b35675b585651c5fea9f" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">iterator <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::end </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get the <a class="el" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a> on the ending of the segments range.</p>
+<p>Preconditions: the <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> should have a mapping</p>
+<p>The returned iterator is invalidated by access to any non-const member functions of this object </p>
+
+</div>
+</div>
+<a class="anchor" id="gaf3d66d578e32a63b3f0ffbb59740667b"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::end" ref="gaf3d66d578e32a63b3f0ffbb59740667b" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">iterator <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a>&lt; BaseIterator &gt;::end </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get the <a class="el" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a> on the ending of the boundary points range.</p>
+<p>Preconditions: this <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a> should have a mapping</p>
+<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<p>The returned iterator is invalidated by access to any non-const member functions of this object </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2480236106971797460187777f2a4411"></a><!-- doxytag: member="boost::locale::boundary::segment_index::find" ref="ga2480236106971797460187777f2a4411" args="(base_iterator p) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">iterator <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::find </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>p</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Find a first valid segment following a position <em>p</em>.</p>
+<p>If <em>p</em> is inside a valid segment this segment is selected:</p>
+<p>For example: For <a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6">word</a> boundary analysis with <a class="el" href="group__boundary.html#ga3ab98808dbb1cc4a346dcc2554c9d8dc">word_any</a> rule():</p>
+<ul>
+<li>"to| be or ", would point to "be",</li>
+<li>"t|o be or ", would point to "to",</li>
+<li>"to be or| ", would point to end.</li>
+</ul>
+<p>Preconditions: the <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> should have a mapping and <em>p</em> should be valid iterator to the text in the mapped range.</p>
+<p>The returned iterator is invalidated by access to any non-const member functions of this object </p>
+
+</div>
+</div>
+<a class="anchor" id="ga0bb71a287afca990e85b17246568492d"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::find" ref="ga0bb71a287afca990e85b17246568492d" args="(base_iterator p) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">iterator <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a>&lt; BaseIterator &gt;::find </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>p</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Find a first valid boundary point on a position <em>p</em> or following it.</p>
+<p>For example: For <a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6">word</a> boundary analysis of the text "to be or"</p>
+<ul>
+<li>"|to be", would return boundary point at "|to be",</li>
+<li>"t|o be", would point to "to| be"</li>
+</ul>
+<p>Preconditions: the <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a> should have a mapping and <em>p</em> should be valid iterator to the text in the mapped range.</p>
+<p>The returned iterator is invalidated by access to any non-const member functions of this object </p>
+
+</div>
+</div>
+<a class="anchor" id="gace7faa10d536c85df0f2d5cac85f2bbc"></a><!-- doxytag: member="boost::locale::boundary::segment_index::full_select" ref="gace7faa10d536c85df0f2d5cac85f2bbc" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::full_select </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get the full_select property value - should segment include in the range values that not belong to specific <a class="el" href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a">rule()</a> or not.</p>
+<p>The default value is false.</p>
+<p>For example for <a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a88aa1509eace7589f5df87d4694871e9">sentence</a> boundary with rule <a class="el" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b">sentence_term</a> the segments of text "Hello! How\nare you?" are "Hello!\", "are you?" when full_select() is false because "How\n" is selected as sentence by a rule spits the text by line feed. If full_select() is true the returned segments are "Hello! ", "How\nare you?" where "How\n" is joined with the following part "are you?" </p>
+
+</div>
+</div>
+<a class="anchor" id="ga205fd51daa439a18527675e663a0802f"></a><!-- doxytag: member="boost::locale::boundary::segment_index::full_select" ref="ga205fd51daa439a18527675e663a0802f" args="(bool v)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::full_select </td>
+ <td>(</td>
+ <td class="paramtype">bool&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set the full_select property value - should segment include in the range values that not belong to specific <a class="el" href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a">rule()</a> or not.</p>
+<p>The default value is false.</p>
+<p>For example for <a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a88aa1509eace7589f5df87d4694871e9">sentence</a> boundary with rule <a class="el" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b">sentence_term</a> the segments of text "Hello! How\nare you?" are "Hello!\", "are you?" when full_select() is false because "How\n" is selected as sentence by a rule spits the text by line feed. If full_select() is true the returned segments are "Hello! ", "How\nare you?" where "How\n" is joined with the following part "are you?" </p>
+
+</div>
+</div>
+<a class="anchor" id="ga6b4b5d5cf80b55302a88e7b36c812418"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::map" ref="ga6b4b5d5cf80b55302a88e7b36c812418" args="(boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a>&lt; BaseIterator &gt;::map </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a>&nbsp;</td>
+ <td class="paramname"> <em>type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a new index for boundary analysis <a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">type</a> of the text in range [begin,end) for locale <em>loc</em>.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd><a class="el" href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03">rule()</a> remains unchanged. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafa2a756b10d3522743204b45b794bb3e"></a><!-- doxytag: member="boost::locale::boundary::segment_index::map" ref="gafa2a756b10d3522743204b45b794bb3e" args="(boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::map </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a>&nbsp;</td>
+ <td class="paramname"> <em>type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a new index for boundary analysis <a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">type</a> of the text in range [begin,end) for locale <em>loc</em>.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd><a class="el" href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a">rule()</a> and <a class="el" href="group__boundary.html#gace7faa10d536c85df0f2d5cac85f2bbc">full_select()</a> remain unchanged. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga11ff477ceecc7cbc274d998c3676126e"></a><!-- doxytag: member="boost::locale::boundary::operator!=" ref="ga11ff477ceecc7cbc274d998c3676126e" args="(BaseIterator const &amp;l, boundary_point&lt; BaseIterator &gt; const &amp;r)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::boundary::operator!= </td>
+ <td>(</td>
+ <td class="paramtype">BaseIterator const &amp;&nbsp;</td>
+ <td class="paramname"> <em>l</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">boundary_point&lt; BaseIterator &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>r</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Check if the boundary point <em>r</em> points to different location from an iterator <em>l</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga52e8a81834c07879736a585f33af5de6"></a><!-- doxytag: member="boost::locale::boundary::operator&lt;&lt;" ref="ga52e8a81834c07879736a585f33af5de6" args="(std::basic_ostream&lt; CharType, TraitsType &gt; &amp;out, segment&lt; Iterator &gt; const &amp;tok)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType , typename TraitsType , typename Iterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_ostream&lt;CharType,TraitsType&gt;&amp; boost::locale::boundary::operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_ostream&lt; CharType, TraitsType &gt; &amp;&nbsp;</td>
+ <td class="paramname"> <em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">segment&lt; Iterator &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>tok</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Write the segment to the stream character by character </p>
+
+</div>
+</div>
+<a class="anchor" id="ga83d57b993b00686b2cac711667c6a931"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::operator=" ref="ga83d57b993b00686b2cac711667c6a931" args="(segment_index&lt; base_iterator &gt; const &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">boundary_point_index const&amp; <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a>&lt; BaseIterator &gt;::operator= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a>&lt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Copy a <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a> from a <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a>. It copies all indexing information and keeps the current <a class="el" href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03">rule()</a> unchanged</p>
+<p>This operation is very cheap, so if you use <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a> and <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> on same text range it is much better to create one from another rather then indexing the same range twice.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd><a class="el" href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03">rule()</a> flags are not copied </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae7941dc874ca05d2ef2a03f781c5b78a"></a><!-- doxytag: member="boost::locale::boundary::segment_index::operator=" ref="gae7941dc874ca05d2ef2a03f781c5b78a" args="(boundary_point_index&lt; base_iterator &gt; const &amp;)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">segment_index const&amp; <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::operator= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a>&lt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> &gt; const &amp;&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Copy an index from a <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a>. It copies all indexing information and uses the default rule (all possible segments)</p>
+<p>This operation is very cheap, so if you use <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a> and <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> on same text range it is much better to create one from another rather then indexing the same range twice.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd><a class="el" href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a">rule()</a> flags are not copied </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga43283ecda927605b1b802a3c3306bfb1"></a><!-- doxytag: member="boost::locale::boundary::operator==" ref="ga43283ecda927605b1b802a3c3306bfb1" args="(BaseIterator const &amp;l, boundary_point&lt; BaseIterator &gt; const &amp;r)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::boundary::operator== </td>
+ <td>(</td>
+ <td class="paramtype">BaseIterator const &amp;&nbsp;</td>
+ <td class="paramname"> <em>l</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">boundary_point&lt; BaseIterator &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>r</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Check if the boundary point <em>r</em> points to same location as an iterator <em>l</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga72b4ceb5bacec0eded2601c43a4d671a"></a><!-- doxytag: member="boost::locale::boundary::segment_index::rule" ref="ga72b4ceb5bacec0eded2601c43a4d671a" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">rule_type <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::rule </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get the mask of rules that are used </p>
+
+</div>
+</div>
+<a class="anchor" id="ga56e63913f51109e05a24a7136472a975"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::rule" ref="ga56e63913f51109e05a24a7136472a975" args="(rule_type v)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a>&lt; BaseIterator &gt;::rule </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set the mask of rules that are used </p>
+
+</div>
+</div>
+<a class="anchor" id="ga1d214029f1a780b7bf6e3f23a3004c03"></a><!-- doxytag: member="boost::locale::boundary::boundary_point_index::rule" ref="ga1d214029f1a780b7bf6e3f23a3004c03" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">rule_type <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a>&lt; BaseIterator &gt;::rule </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get the mask of rules that are used </p>
+
+</div>
+</div>
+<a class="anchor" id="gad19735180401edb15acbdbbeb21e5a73"></a><!-- doxytag: member="boost::locale::boundary::segment_index::rule" ref="gad19735180401edb15acbdbbeb21e5a73" args="(rule_type v)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::rule </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set the mask of rules that are used </p>
+
+</div>
+</div>
+<a class="anchor" id="ga46a5f584d5a1a43ad4bc0fff07183fcc"></a><!-- doxytag: member="boost::locale::boundary::segment_index::segment_index" ref="ga46a5f584d5a1a43ad4bc0fff07183fcc" args="(boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::segment_index </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a>&nbsp;</td>
+ <td class="paramname"> <em>type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> for boundary analysis <a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">type</a> of the text in range [begin,end) selecting all possible segments (full mask) for locale <em>loc</em>. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga06ddc335e95479ec51e9b16d0f829bb3"></a><!-- doxytag: member="boost::locale::boundary::segment_index::segment_index" ref="ga06ddc335e95479ec51e9b16d0f829bb3" args="(boundary_type type, base_iterator begin, base_iterator end, rule_type mask, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::segment_index </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a>&nbsp;</td>
+ <td class="paramname"> <em>type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a>&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td>
+ <td class="paramname"> <em>mask</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> for boundary analysis <a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">type</a> of the text in range [begin,end) using a rule <em>mask</em> for locale <em>loc</em>. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2c354f4cc03677b58c97038cd84dc465"></a><!-- doxytag: member="boost::locale::boundary::segment_index::segment_index" ref="ga2c354f4cc03677b58c97038cd84dc465" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::segment_index </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Default constructor.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<p>When this object is constructed by default it does not include a valid index, thus calling <a class="el" href="group__boundary.html#gaf74ff9c86c177efa8f74856277d659af">begin()</a>, <a class="el" href="group__boundary.html#ga8757062d2446b35675b585651c5fea9f">end()</a> or <a class="el" href="group__boundary.html#ga2480236106971797460187777f2a4411">find()</a> member functions would lead to undefined behavior </p>
+
+</div>
+</div>
+<a class="anchor" id="ga8187f58177fc89ef2f8f818a37111363"></a><!-- doxytag: member="boost::locale::boundary::segment_index::segment_index" ref="ga8187f58177fc89ef2f8f818a37111363" args="(boundary_point_index&lt; base_iterator &gt; const &amp;)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename BaseIterator&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a>&lt; BaseIterator &gt;::segment_index </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a>&lt; <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> &gt; const &amp;&nbsp;</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> from a <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a>. It copies all indexing information and used default rule (all possible segments)</p>
+<p>This operation is very cheap, so if you use <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a> and <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> on same text range it is much better to create one from another rather then indexing the same range twice.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd><a class="el" href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a">rule()</a> flags are not copied </dd></dl>
+
+</div>
+</div>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="gad11031065617b6be9d4662d2c06afd52"></a><!-- doxytag: member="boost::locale::boundary::word_mask" ref="gad11031065617b6be9d4662d2c06afd52" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const rule_type <a class="el" href="group__boundary.html#gad11031065617b6be9d4662d2c06afd52">boost::locale::boundary::word_mask</a> = 0xFFFFF<code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Full word mask - select all possible variants </p>
+
+</div>
+</div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/group__codepage.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/group__codepage.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,837 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Character conversion functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Classes &#124;
+Enumerations &#124;
+Functions </div>
+ <div class="headertitle">
+<h1>Character conversion functions</h1> </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1conv_1_1conversion__error.html">boost::locale::conv::conversion_error</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The excepton that is thrown in case of conversion error. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html">boost::locale::conv::invalid_charset_error</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This exception is thrown in case of use of unsupported or invalid character set. More...<br/></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">boost::locale::conv::method_type</a> { <a class="el" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84ae9b554a2955deddf714757788819edf9">boost::locale::conv::skip</a> = 0,
+<a class="el" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84aab08f9ee241c405ef40bd3cedb43b383">boost::locale::conv::stop</a> = 1,
+<a class="el" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559">boost::locale::conv::default_method</a> = skip
+ }</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#gad659f9c9c8b291e2ac6af24c49b42e43">boost::locale::conv::to_utf</a> (char const *begin, char const *end, std::string const &amp;charset, method_type how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">boost::locale::conv::from_utf</a> (CharType const *begin, CharType const *end, std::string const &amp;charset, method_type how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga474409c9625e08b86bf1480c82639e5b">boost::locale::conv::to_utf</a> (char const *begin, char const *end, std::locale const &amp;loc, method_type how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga075f5bae721a9e87d887556ebefe1860">boost::locale::conv::from_utf</a> (CharType const *begin, CharType const *end, std::locale const &amp;loc, method_type how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga26e823a630dbaecdfbc933ecc0a5c5be">boost::locale::conv::to_utf</a> (std::string const &amp;text, std::string const &amp;charset, method_type how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga878bd2dcc00621d4e4e7d3d98f39736d">boost::locale::conv::from_utf</a> (std::basic_string&lt; CharType &gt; const &amp;text, std::string const &amp;charset, method_type how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga42ab3fd3274363286d34088a376581d3">boost::locale::conv::to_utf</a> (char const *text, std::string const &amp;charset, method_type how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#gac56907f3f3585a922e4f44cf86638851">boost::locale::conv::from_utf</a> (CharType const *text, std::string const &amp;charset, method_type how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga24d4f73f7ed314ba5b992b226c341b07">boost::locale::conv::to_utf</a> (std::string const &amp;text, std::locale const &amp;loc, method_type how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga9b81fc6055ce081bf0a86681be6ce51e">boost::locale::conv::from_utf</a> (std::basic_string&lt; CharType &gt; const &amp;text, std::locale const &amp;loc, method_type how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#gae2b0ba250a16567c0ad8919be8061d6e">boost::locale::conv::to_utf</a> (char const *text, std::locale const &amp;loc, method_type how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#gab9f8f0e62bdfd258a99a627f8b88eb34">boost::locale::conv::from_utf</a> (CharType const *text, std::locale const &amp;loc, method_type how=default_method)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga7eda9058b8cbac9b05886bcc894faeff">boost::locale::conv::between</a> (char const *begin, char const *end, std::string const &amp;to_encoding, std::string const &amp;from_encoding, method_type how=default_method)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga612607a8616add30cf21ceb086e664d5">boost::locale::conv::between</a> (char const *text, std::string const &amp;to_encoding, std::string const &amp;from_encoding, method_type how=default_method)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codepage.html#gad7f6c33cf95749ab48174ccafddf7b62">boost::locale::conv::between</a> (std::string const &amp;text, std::string const &amp;to_encoding, std::string const &amp;from_encoding, method_type how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharOut , typename CharIn &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharOut &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga2de4d9d38004e5d7146abf2bd6a3df0b">boost::locale::conv::utf_to_utf</a> (CharIn const *begin, CharIn const *end, method_type how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharOut , typename CharIn &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharOut &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#gae36d1fa29f675c4f13164afd8e0fabde">boost::locale::conv::utf_to_utf</a> (CharIn const *str, method_type how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharOut , typename CharIn &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharOut &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga2aa7d34682ff4e66b297ab5d75e1de51">boost::locale::conv::utf_to_utf</a> (std::basic_string&lt; CharIn &gt; const &amp;str, method_type how=default_method)</td></tr>
+</table>
+<hr/><h2>Enumeration Type Documentation</h2>
+<a class="anchor" id="ga8e3c5a274f57107ec5745e227c26ba84"></a><!-- doxytag: member="boost::locale::conv::method_type" ref="ga8e3c5a274f57107ec5745e227c26ba84" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">boost::locale::conv::method_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>enum that defines conversion policy </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga8e3c5a274f57107ec5745e227c26ba84ae9b554a2955deddf714757788819edf9"></a><!-- doxytag: member="skip" ref="gga8e3c5a274f57107ec5745e227c26ba84ae9b554a2955deddf714757788819edf9" args="" -->skip</em>&nbsp;</td><td>
+<p>Skip illegal/unconvertable characters. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga8e3c5a274f57107ec5745e227c26ba84aab08f9ee241c405ef40bd3cedb43b383"></a><!-- doxytag: member="stop" ref="gga8e3c5a274f57107ec5745e227c26ba84aab08f9ee241c405ef40bd3cedb43b383" args="" -->stop</em>&nbsp;</td><td>
+<p>Stop conversion and throw <a class="el" href="classboost_1_1locale_1_1conv_1_1conversion__error.html" title="The excepton that is thrown in case of conversion error.">conversion_error</a>. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559"></a><!-- doxytag: member="default_method" ref="gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559" args="" -->default_method</em>&nbsp;</td><td>
+<p>Default method - skip. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ga7eda9058b8cbac9b05886bcc894faeff"></a><!-- doxytag: member="boost::locale::conv::between" ref="ga7eda9058b8cbac9b05886bcc894faeff" args="(char const *begin, char const *end, std::string const &amp;to_encoding, std::string const &amp;from_encoding, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::conv::between </td>
+ <td>(</td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>to_encoding</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>from_encoding</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a text in range [begin,end) to <em>to_encoding</em> from <em>from_encoding</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga612607a8616add30cf21ceb086e664d5"></a><!-- doxytag: member="boost::locale::conv::between" ref="ga612607a8616add30cf21ceb086e664d5" args="(char const *text, std::string const &amp;to_encoding, std::string const &amp;from_encoding, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::conv::between </td>
+ <td>(</td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>text</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>to_encoding</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>from_encoding</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a <em>text</em> to <em>to_encoding</em> from <em>from_encoding</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="gad7f6c33cf95749ab48174ccafddf7b62"></a><!-- doxytag: member="boost::locale::conv::between" ref="gad7f6c33cf95749ab48174ccafddf7b62" args="(std::string const &amp;text, std::string const &amp;to_encoding, std::string const &amp;from_encoding, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::conv::between </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>text</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>to_encoding</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>from_encoding</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a <em>text</em> to <em>to_encoding</em> from <em>from_encoding</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga075f5bae721a9e87d887556ebefe1860"></a><!-- doxytag: member="boost::locale::conv::from_utf" ref="ga075f5bae721a9e87d887556ebefe1860" args="(CharType const *begin, CharType const *end, std::locale const &amp;loc, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::conv::from_utf </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>convert UTF text in range [begin,end) to a text encoded according to locale <em>loc</em> according to policy <em>how</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if the loc does not have <a class="el" href="classboost_1_1locale_1_1info.html">info</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac56907f3f3585a922e4f44cf86638851"></a><!-- doxytag: member="boost::locale::conv::from_utf" ref="gac56907f3f3585a922e4f44cf86638851" args="(CharType const *text, std::string const &amp;charset, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::conv::from_utf </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>text</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>charset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a <em>text</em> from UTF to <em>charset</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga9b81fc6055ce081bf0a86681be6ce51e"></a><!-- doxytag: member="boost::locale::conv::from_utf" ref="ga9b81fc6055ce081bf0a86681be6ce51e" args="(std::basic_string&lt; CharType &gt; const &amp;text, std::locale const &amp;loc, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::conv::from_utf </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_string&lt; CharType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>text</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a <em>text</em> in UTF to locale encoding given by <em>loc</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if the loc does not have <a class="el" href="classboost_1_1locale_1_1info.html">info</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga878bd2dcc00621d4e4e7d3d98f39736d"></a><!-- doxytag: member="boost::locale::conv::from_utf" ref="ga878bd2dcc00621d4e4e7d3d98f39736d" args="(std::basic_string&lt; CharType &gt; const &amp;text, std::string const &amp;charset, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::conv::from_utf </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_string&lt; CharType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>text</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>charset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a <em>text</em> from <em>charset</em> to UTF string </p>
+
+</div>
+</div>
+<a class="anchor" id="gab9f8f0e62bdfd258a99a627f8b88eb34"></a><!-- doxytag: member="boost::locale::conv::from_utf" ref="gab9f8f0e62bdfd258a99a627f8b88eb34" args="(CharType const *text, std::locale const &amp;loc, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::conv::from_utf </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>text</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a <em>text</em> in UTF to locale encoding given by <em>loc</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if the loc does not have <a class="el" href="classboost_1_1locale_1_1info.html">info</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gadc41bd2517e6e3bdcecdfc93b339204c"></a><!-- doxytag: member="boost::locale::conv::from_utf" ref="gadc41bd2517e6e3bdcecdfc93b339204c" args="(CharType const *begin, CharType const *end, std::string const &amp;charset, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::conv::from_utf </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>charset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>convert UTF text in range [begin,end) to a text encoded with <em>charset</em> according to policy <em>how</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga42ab3fd3274363286d34088a376581d3"></a><!-- doxytag: member="boost::locale::conv::to_utf" ref="ga42ab3fd3274363286d34088a376581d3" args="(char const *text, std::string const &amp;charset, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::conv::to_utf </td>
+ <td>(</td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>text</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>charset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a <em>text</em> from <em>charset</em> to UTF string </p>
+
+</div>
+</div>
+<a class="anchor" id="gad659f9c9c8b291e2ac6af24c49b42e43"></a><!-- doxytag: member="boost::locale::conv::to_utf" ref="gad659f9c9c8b291e2ac6af24c49b42e43" args="(char const *begin, char const *end, std::string const &amp;charset, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::conv::to_utf </td>
+ <td>(</td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>charset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>convert string to UTF string from text in range [begin,end) encoded with <em>charset</em> according to policy <em>how</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga24d4f73f7ed314ba5b992b226c341b07"></a><!-- doxytag: member="boost::locale::conv::to_utf" ref="ga24d4f73f7ed314ba5b992b226c341b07" args="(std::string const &amp;text, std::locale const &amp;loc, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::conv::to_utf </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>text</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a <em>text</em> in locale encoding given by <em>loc</em> to UTF</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if the loc does not have <a class="el" href="classboost_1_1locale_1_1info.html">info</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga26e823a630dbaecdfbc933ecc0a5c5be"></a><!-- doxytag: member="boost::locale::conv::to_utf" ref="ga26e823a630dbaecdfbc933ecc0a5c5be" args="(std::string const &amp;text, std::string const &amp;charset, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::conv::to_utf </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>text</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>charset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>convert a string <em>text</em> encoded with <em>charset</em> to UTF string </p>
+
+</div>
+</div>
+<a class="anchor" id="ga474409c9625e08b86bf1480c82639e5b"></a><!-- doxytag: member="boost::locale::conv::to_utf" ref="ga474409c9625e08b86bf1480c82639e5b" args="(char const *begin, char const *end, std::locale const &amp;loc, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::conv::to_utf </td>
+ <td>(</td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>convert string to UTF string from text in range [begin,end) encoded according to locale <em>loc</em> according to policy <em>how</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if the loc does not have <a class="el" href="classboost_1_1locale_1_1info.html">info</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae2b0ba250a16567c0ad8919be8061d6e"></a><!-- doxytag: member="boost::locale::conv::to_utf" ref="gae2b0ba250a16567c0ad8919be8061d6e" args="(char const *text, std::locale const &amp;loc, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::conv::to_utf </td>
+ <td>(</td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>text</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a <em>text</em> in locale encoding given by <em>loc</em> to UTF</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if the loc does not have <a class="el" href="classboost_1_1locale_1_1info.html">info</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2aa7d34682ff4e66b297ab5d75e1de51"></a><!-- doxytag: member="boost::locale::conv::utf_to_utf" ref="ga2aa7d34682ff4e66b297ab5d75e1de51" args="(std::basic_string&lt; CharIn &gt; const &amp;str, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharOut , typename CharIn &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharOut&gt; boost::locale::conv::utf_to_utf </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_string&lt; CharIn &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a Unicode string <em>str</em> other Unicode encoding </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2de4d9d38004e5d7146abf2bd6a3df0b"></a><!-- doxytag: member="boost::locale::conv::utf_to_utf" ref="ga2de4d9d38004e5d7146abf2bd6a3df0b" args="(CharIn const *begin, CharIn const *end, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharOut , typename CharIn &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharOut&gt; boost::locale::conv::utf_to_utf </td>
+ <td>(</td>
+ <td class="paramtype">CharIn const *&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharIn const *&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a Unicode text in range [begin,end) to other Unicode encoding </p>
+
+</div>
+</div>
+<a class="anchor" id="gae36d1fa29f675c4f13164afd8e0fabde"></a><!-- doxytag: member="boost::locale::conv::utf_to_utf" ref="gae36d1fa29f675c4f13164afd8e0fabde" args="(CharIn const *str, method_type how=default_method)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharOut , typename CharIn &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharOut&gt; boost::locale::conv::utf_to_utf </td>
+ <td>(</td>
+ <td class="paramtype">CharIn const *&nbsp;</td>
+ <td class="paramname"> <em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">method_type&nbsp;</td>
+ <td class="paramname"> <em>how</em> = <code>default_method</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a Unicode NUL terminated string <em>str</em> other Unicode encoding </p>
+
+</div>
+</div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/group__collation.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/group__collation.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Collation</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Classes </div>
+ <div class="headertitle">
+<h1>Collation</h1> </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">a base class that includes collation level flags More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Collation facet. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1comparator.html">boost::locale::comparator&lt; CharType, default_level &gt;</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class can be used in STL algorithms and containers for comparison of strings with a level other than primary. More...<br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This module introduces collation related classes </p>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/group__convert.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/group__convert.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,683 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Text Conversions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Classes &#124;
+Enumerations &#124;
+Functions </div>
+ <div class="headertitle">
+<h1>Text Conversions</h1> </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class provides base flags for text manipulation. It is used as base for converter facet. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1converter.html">boost::locale::converter&lt; Char &gt;</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The facet that implements text manipulation. More...<br/></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__convert.html#ga6a595a415b83b8a0c8f14c34eb66cc9f">boost::locale::norm_type</a> { <br/>
+&nbsp;&nbsp;<a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9fa6648d0eabb931f2e9d258570b297e98f">boost::locale::norm_nfd</a>,
+<a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9faf6fe7be275e5e13df415ab258105ada0">boost::locale::norm_nfc</a>,
+<a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9fa0fbc2ac042fc6f58af5818bfd06d5379">boost::locale::norm_nfkd</a>,
+<a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9fa0305c1f3405ea70facf4c6a5ffa40583">boost::locale::norm_nfkc</a>,
+<br/>
+&nbsp;&nbsp;<a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9faa29173d73d9be7fefcbb18c8712465d2">boost::locale::norm_default</a> = norm_nfc
+<br/>
+ }</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga11672e3cc3ed7eecf1dd07060265aab2">boost::locale::normalize</a> (std::basic_string&lt; CharType &gt; const &amp;str, norm_type n=norm_default, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga340161bd91c1a768e927a4c827084a4c">boost::locale::normalize</a> (CharType const *str, norm_type n=norm_default, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga348f607537413204e88c636392c29704">boost::locale::normalize</a> (CharType const *begin, CharType const *end, norm_type n=norm_default, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">boost::locale::to_upper</a> (std::basic_string&lt; CharType &gt; const &amp;str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga21cc3d265fccd4dc4ac299edde0637f8">boost::locale::to_upper</a> (CharType const *str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga612ddbe1ed3fd910b22bcd6ae401ac22">boost::locale::to_upper</a> (CharType const *begin, CharType const *end, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga33de83f16ff2c09cac780977c6f67099">boost::locale::to_lower</a> (std::basic_string&lt; CharType &gt; const &amp;str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga676a7c90319f0f82657cb31ce20d3dbd">boost::locale::to_lower</a> (CharType const *str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#gab2d86cb2219169ab69c1d29f5d2a854e">boost::locale::to_lower</a> (CharType const *begin, CharType const *end, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga646f42adb01baf395d632c32f556a5b9">boost::locale::to_title</a> (std::basic_string&lt; CharType &gt; const &amp;str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga50fbad5e11e8e8ed0b04e6fb6bc25057">boost::locale::to_title</a> (CharType const *str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#gac9198c4fb61eefb72f1f863ed21b1e60">boost::locale::to_title</a> (CharType const *begin, CharType const *end, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#gabd1bc157122a5b9392487126fd0fffe5">boost::locale::fold_case</a> (std::basic_string&lt; CharType &gt; const &amp;str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga4254d12cc75cb7b66ca96deca3e90fd1">boost::locale::fold_case</a> (CharType const *str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga597671217af41a3fdee10281fb6a0d17">boost::locale::fold_case</a> (CharType const *begin, CharType const *end, std::locale const &amp;loc=std::locale())</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This module provides various function for string manipulation like Unicode normalization, case conversion etc. </p>
+<hr/><h2>Enumeration Type Documentation</h2>
+<a class="anchor" id="ga6a595a415b83b8a0c8f14c34eb66cc9f"></a><!-- doxytag: member="boost::locale::norm_type" ref="ga6a595a415b83b8a0c8f14c34eb66cc9f" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group__convert.html#ga6a595a415b83b8a0c8f14c34eb66cc9f">boost::locale::norm_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The type that defined normalization form </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="gga6a595a415b83b8a0c8f14c34eb66cc9fa6648d0eabb931f2e9d258570b297e98f"></a><!-- doxytag: member="norm_nfd" ref="gga6a595a415b83b8a0c8f14c34eb66cc9fa6648d0eabb931f2e9d258570b297e98f" args="" -->norm_nfd</em>&nbsp;</td><td>
+<p>Canonical decomposition. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga6a595a415b83b8a0c8f14c34eb66cc9faf6fe7be275e5e13df415ab258105ada0"></a><!-- doxytag: member="norm_nfc" ref="gga6a595a415b83b8a0c8f14c34eb66cc9faf6fe7be275e5e13df415ab258105ada0" args="" -->norm_nfc</em>&nbsp;</td><td>
+<p>Canonical decomposition followed by canonical composition. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga6a595a415b83b8a0c8f14c34eb66cc9fa0fbc2ac042fc6f58af5818bfd06d5379"></a><!-- doxytag: member="norm_nfkd" ref="gga6a595a415b83b8a0c8f14c34eb66cc9fa0fbc2ac042fc6f58af5818bfd06d5379" args="" -->norm_nfkd</em>&nbsp;</td><td>
+<p>Compatibility decomposition. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga6a595a415b83b8a0c8f14c34eb66cc9fa0305c1f3405ea70facf4c6a5ffa40583"></a><!-- doxytag: member="norm_nfkc" ref="gga6a595a415b83b8a0c8f14c34eb66cc9fa0305c1f3405ea70facf4c6a5ffa40583" args="" -->norm_nfkc</em>&nbsp;</td><td>
+<p>Compatibility decomposition followed by canonical composition. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="gga6a595a415b83b8a0c8f14c34eb66cc9faa29173d73d9be7fefcbb18c8712465d2"></a><!-- doxytag: member="norm_default" ref="gga6a595a415b83b8a0c8f14c34eb66cc9faa29173d73d9be7fefcbb18c8712465d2" args="" -->norm_default</em>&nbsp;</td><td>
+<p>Default normalization - canonical decomposition followed by canonical composition. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="gabd1bc157122a5b9392487126fd0fffe5"></a><!-- doxytag: member="boost::locale::fold_case" ref="gabd1bc157122a5b9392487126fd0fffe5" args="(std::basic_string&lt; CharType &gt; const &amp;str, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::fold_case </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_string&lt; CharType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Fold case of a string <em>str</em> according to locale <em>loc</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> facet installed </dd></dl>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="hello_8cpp-example.html#a9">hello.cpp</a>, and <a class="el" href="whello_8cpp-example.html#a9">whello.cpp</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ga4254d12cc75cb7b66ca96deca3e90fd1"></a><!-- doxytag: member="boost::locale::fold_case" ref="ga4254d12cc75cb7b66ca96deca3e90fd1" args="(CharType const *str, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::fold_case </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Fold case of a NUL terminated string <em>str</em> according to locale <em>loc</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga597671217af41a3fdee10281fb6a0d17"></a><!-- doxytag: member="boost::locale::fold_case" ref="ga597671217af41a3fdee10281fb6a0d17" args="(CharType const *begin, CharType const *end, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::fold_case </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Fold case of a string in range [begin,end) according to locale <em>loc</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga340161bd91c1a768e927a4c827084a4c"></a><!-- doxytag: member="boost::locale::normalize" ref="ga340161bd91c1a768e927a4c827084a4c" args="(CharType const *str, norm_type n=norm_default, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::normalize </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">norm_type&nbsp;</td>
+ <td class="paramname"> <em>n</em> = <code>norm_default</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Normalize NUL terminated Unicode string <em>str</em> according to <a class="el" href="group__convert.html#ga6a595a415b83b8a0c8f14c34eb66cc9f">normalization form</a> <em>n</em> </p>
+<p>Note: This function receives only Unicode strings, i.e.: UTF-8, UTF-16 or UTF-32. It does not take in account the locale encoding, because Unicode decomposition and composition are meaningless outside of a Unicode character set.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga348f607537413204e88c636392c29704"></a><!-- doxytag: member="boost::locale::normalize" ref="ga348f607537413204e88c636392c29704" args="(CharType const *begin, CharType const *end, norm_type n=norm_default, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::normalize </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">norm_type&nbsp;</td>
+ <td class="paramname"> <em>n</em> = <code>norm_default</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Normalize Unicode string in range [begin,end) according to <a class="el" href="group__convert.html#ga6a595a415b83b8a0c8f14c34eb66cc9f">normalization form</a> <em>n</em> </p>
+<p>Note: This function receives only Unicode strings, i.e.: UTF-8, UTF-16 or UTF-32. It does not take in account the locale encoding, because Unicode decomposition and composition are meaningless outside of a Unicode character set.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga11672e3cc3ed7eecf1dd07060265aab2"></a><!-- doxytag: member="boost::locale::normalize" ref="ga11672e3cc3ed7eecf1dd07060265aab2" args="(std::basic_string&lt; CharType &gt; const &amp;str, norm_type n=norm_default, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::normalize </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_string&lt; CharType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">norm_type&nbsp;</td>
+ <td class="paramname"> <em>n</em> = <code>norm_default</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Normalize Unicode string <em>str</em> according to <a class="el" href="group__convert.html#ga6a595a415b83b8a0c8f14c34eb66cc9f">normalization form</a> <em>n</em> </p>
+<p>Note: This function receives only Unicode strings, i.e.: UTF-8, UTF-16 or UTF-32. It does not take in account the locale encoding, because Unicode decomposition and composition are meaningless outside of a Unicode character set.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga676a7c90319f0f82657cb31ce20d3dbd"></a><!-- doxytag: member="boost::locale::to_lower" ref="ga676a7c90319f0f82657cb31ce20d3dbd" args="(CharType const *str, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::to_lower </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a NUL terminated string <em>str</em> to lower case according to locale <em>loc</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab2d86cb2219169ab69c1d29f5d2a854e"></a><!-- doxytag: member="boost::locale::to_lower" ref="gab2d86cb2219169ab69c1d29f5d2a854e" args="(CharType const *begin, CharType const *end, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::to_lower </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a string in range [begin,end) to lower case according to locale <em>loc</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga33de83f16ff2c09cac780977c6f67099"></a><!-- doxytag: member="boost::locale::to_lower" ref="ga33de83f16ff2c09cac780977c6f67099" args="(std::basic_string&lt; CharType &gt; const &amp;str, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::to_lower </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_string&lt; CharType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a string <em>str</em> to lower case according to locale <em>loc</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> facet installed </dd></dl>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="conversions_8cpp-example.html#a2">conversions.cpp</a>, <a class="el" href="hello_8cpp-example.html#a7">hello.cpp</a>, <a class="el" href="wconversions_8cpp-example.html#a2">wconversions.cpp</a>, and <a class="el" href="whello_8cpp-example.html#a7">whello.cpp</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="gac9198c4fb61eefb72f1f863ed21b1e60"></a><!-- doxytag: member="boost::locale::to_title" ref="gac9198c4fb61eefb72f1f863ed21b1e60" args="(CharType const *begin, CharType const *end, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::to_title </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a string in range [begin,end) to title case according to locale <em>loc</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga646f42adb01baf395d632c32f556a5b9"></a><!-- doxytag: member="boost::locale::to_title" ref="ga646f42adb01baf395d632c32f556a5b9" args="(std::basic_string&lt; CharType &gt; const &amp;str, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::to_title </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_string&lt; CharType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a string <em>str</em> to title case according to locale <em>loc</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> facet installed </dd></dl>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="hello_8cpp-example.html#a8">hello.cpp</a>, and <a class="el" href="whello_8cpp-example.html#a8">whello.cpp</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ga50fbad5e11e8e8ed0b04e6fb6bc25057"></a><!-- doxytag: member="boost::locale::to_title" ref="ga50fbad5e11e8e8ed0b04e6fb6bc25057" args="(CharType const *str, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::to_title </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a NUL terminated string <em>str</em> to title case according to locale <em>loc</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga21cc3d265fccd4dc4ac299edde0637f8"></a><!-- doxytag: member="boost::locale::to_upper" ref="ga21cc3d265fccd4dc4ac299edde0637f8" args="(CharType const *str, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::to_upper </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a NUL terminated string <em>str</em> to upper case according to locale <em>loc</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga612ddbe1ed3fd910b22bcd6ae401ac22"></a><!-- doxytag: member="boost::locale::to_upper" ref="ga612ddbe1ed3fd910b22bcd6ae401ac22" args="(CharType const *begin, CharType const *end, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::to_upper </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>begin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a string in range [begin,end) to upper case according to locale <em>loc</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7889a57e1bc1059fbb107db0781d0b6d"></a><!-- doxytag: member="boost::locale::to_upper" ref="ga7889a57e1bc1059fbb107db0781d0b6d" args="(std::basic_string&lt; CharType &gt; const &amp;str, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::to_upper </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_string&lt; CharType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a string <em>str</em> to upper case according to locale <em>loc</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if loc does not have <a class="el" href="classboost_1_1locale_1_1converter.html">converter</a> facet installed </dd></dl>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="conversions_8cpp-example.html#a1">conversions.cpp</a>, <a class="el" href="hello_8cpp-example.html#a6">hello.cpp</a>, <a class="el" href="wconversions_8cpp-example.html#a1">wconversions.cpp</a>, and <a class="el" href="whello_8cpp-example.html#a6">whello.cpp</a>.</dd>
+</dl>
+</div>
+</div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/group__date__time.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/group__date__time.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Date, Time, Timezone and Calendar manipulations</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Classes &#124;
+Namespaces &#124;
+Functions </div>
+ <div class="headertitle">
+<h1>Date, Time, Timezone and Calendar manipulations</h1> </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__error.html">boost::locale::date_time_error</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This error is thrown in case of invalid state that occurred. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">boost::locale::date_time_period</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class represents a pair of period_type and the integer values that describes its amount. For example 3 days or 4 years. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">boost::locale::date_time_period_set</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this class that represents a set of periods, More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this class provides an access to general calendar information. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this class represents a date time and allows to perform various operation according to the locale settings. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__duration.html">boost::locale::date_time_duration</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class represents a period: a pair of two <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> objects. More...<br/></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html">boost::locale::period</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Namespace that contains various types for manipulation with dates. </p>
+<br/></td></tr>
+</p>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1time__zone.html">boost::locale::time_zone</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace that holds functions for operating with global time zone </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">date_time_period_set&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__date__time.html#gaa7e728633f76cae8fa19e76cfb5e113b">boost::locale::operator+</a> (date_time_period_set const &amp;a, date_time_period_set const &amp;b)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">date_time_period_set&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__date__time.html#ga023333646e070abf361be3890c12560b">boost::locale::operator-</a> (date_time_period_set const &amp;a, date_time_period_set const &amp;b)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_ostream&lt; CharType &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__date__time.html#ga0055f16ba156eb9a3f333c2bf2eae815">boost::locale::operator&lt;&lt;</a> (std::basic_ostream&lt; CharType &gt; &amp;out, date_time const &amp;t)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_istream&lt; CharType &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__date__time.html#gaaf12ac2d38329331a8d9101ecc5e64d5">boost::locale::operator&gt;&gt;</a> (std::basic_istream&lt; CharType &gt; &amp;in, date_time &amp;t)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">date_time_duration&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__date__time.html#ga13c05afeb4ea7904b944b42f6c685022">boost::locale::operator-</a> (date_time const &amp;later, date_time const &amp;earlier)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This module provides various calendar, timezone and date time services </p>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="gaa7e728633f76cae8fa19e76cfb5e113b"></a><!-- doxytag: member="boost::locale::operator+" ref="gaa7e728633f76cae8fa19e76cfb5e113b" args="(date_time_period_set const &amp;a, date_time_period_set const &amp;b)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">date_time_period_set boost::locale::operator+ </td>
+ <td>(</td>
+ <td class="paramtype">date_time_period_set const &amp;&nbsp;</td>
+ <td class="paramname"> <em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">date_time_period_set const &amp;&nbsp;</td>
+ <td class="paramname"> <em>b</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Append two periods sets. Note this operator is not commutative </p>
+
+</div>
+</div>
+<a class="anchor" id="ga13c05afeb4ea7904b944b42f6c685022"></a><!-- doxytag: member="boost::locale::operator&#45;" ref="ga13c05afeb4ea7904b944b42f6c685022" args="(date_time const &amp;later, date_time const &amp;earlier)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">date_time_duration boost::locale::operator- </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>later</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>earlier</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Calculates the difference between two dates, the left operand is a later point on time line. Returns <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> object. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga023333646e070abf361be3890c12560b"></a><!-- doxytag: member="boost::locale::operator&#45;" ref="ga023333646e070abf361be3890c12560b" args="(date_time_period_set const &amp;a, date_time_period_set const &amp;b)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">date_time_period_set boost::locale::operator- </td>
+ <td>(</td>
+ <td class="paramtype">date_time_period_set const &amp;&nbsp;</td>
+ <td class="paramname"> <em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">date_time_period_set const &amp;&nbsp;</td>
+ <td class="paramname"> <em>b</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Append two period sets when all periods of set <b>change</b> their sign </p>
+
+</div>
+</div>
+<a class="anchor" id="ga0055f16ba156eb9a3f333c2bf2eae815"></a><!-- doxytag: member="boost::locale::operator&lt;&lt;" ref="ga0055f16ba156eb9a3f333c2bf2eae815" args="(std::basic_ostream&lt; CharType &gt; &amp;out, date_time const &amp;t)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_ostream&lt;CharType&gt;&amp; boost::locale::operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_ostream&lt; CharType &gt; &amp;&nbsp;</td>
+ <td class="paramname"> <em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Writes <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <em>t</em> to output stream <em>out</em>.</p>
+<p>This function uses locale, calendar and time zone of the target stream <em>in</em>.</p>
+<p>For example: </p>
+<div class="fragment"><pre class="fragment"> date_time now(<a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">time</a>(0),hebrew_calendar)
+ cout &lt;&lt; &quot;Year: &quot; &lt;&lt; period::year(now) &lt;&lt;&quot; Full Date:&quot;&lt;&lt; now;
+</pre></div><p>The output may be Year:5770 Full Date:Jan 1, 2010 </p>
+
+</div>
+</div>
+<a class="anchor" id="gaaf12ac2d38329331a8d9101ecc5e64d5"></a><!-- doxytag: member="boost::locale::operator&gt;&gt;" ref="gaaf12ac2d38329331a8d9101ecc5e64d5" args="(std::basic_istream&lt; CharType &gt; &amp;in, date_time &amp;t)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_istream&lt;CharType&gt;&amp; boost::locale::operator&gt;&gt; </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_istream&lt; CharType &gt; &amp;&nbsp;</td>
+ <td class="paramname"> <em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">date_time &amp;&nbsp;</td>
+ <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Reads <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> <em>t</em> from output stream <em>in</em> </p>
+<p>This function uses locale, calendar and time zone of the source stream <em>in</em>. </p>
+
+</div>
+</div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/group__format.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/group__format.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Format</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Classes &#124;
+Typedefs &#124;
+Functions </div>
+ <div class="headertitle">
+<h1>Format</h1> </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format&lt; CharType &gt;</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">a printf like class that allows type-safe and locale aware message formatting More...<br/></td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef basic_format&lt; char &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">boost::locale::format</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef basic_format&lt; wchar_t &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__format.html#ga610f3ae827801febc962019cf82a2227">boost::locale::wformat</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef basic_format&lt; char16_t &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__format.html#ga7e1b668f020290ebca6570b4c12a36e6">boost::locale::u16format</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef basic_format&lt; char32_t &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__format.html#ga70ce1d532e859739182439f1f3321032">boost::locale::u32format</a></td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_ostream&lt; CharType &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__format.html#ga1f24c2af23fab51855945ab2c6800278">boost::locale::operator&lt;&lt;</a> (std::basic_ostream&lt; CharType &gt; &amp;out, basic_format&lt; CharType &gt; const &amp;fmt)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This module provides printf like functionality integrated into iostreams and suitable for localization </p>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="gad7914df7b54382c1ad7f5360676fe2e8"></a><!-- doxytag: member="boost::locale::format" ref="gad7914df7b54382c1ad7f5360676fe2e8" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef basic_format&lt;char&gt; <a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::format</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Definition of char based format </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="calendar_8cpp-example.html#a5">calendar.cpp</a>, and <a class="el" href="hello_8cpp-example.html#a1">hello.cpp</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ga7e1b668f020290ebca6570b4c12a36e6"></a><!-- doxytag: member="boost::locale::u16format" ref="ga7e1b668f020290ebca6570b4c12a36e6" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef basic_format&lt;char16_t&gt; <a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::u16format</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Definition of char16_t based format </p>
+
+</div>
+</div>
+<a class="anchor" id="ga70ce1d532e859739182439f1f3321032"></a><!-- doxytag: member="boost::locale::u32format" ref="ga70ce1d532e859739182439f1f3321032" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef basic_format&lt;char32_t&gt; <a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::u32format</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Definition of char32_t based format </p>
+
+</div>
+</div>
+<a class="anchor" id="ga610f3ae827801febc962019cf82a2227"></a><!-- doxytag: member="boost::locale::wformat" ref="ga610f3ae827801febc962019cf82a2227" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef basic_format&lt;wchar_t&gt; <a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::wformat</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Definition of wchar_t based format </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="whello_8cpp-example.html#a1">whello.cpp</a>.</dd>
+</dl>
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ga1f24c2af23fab51855945ab2c6800278"></a><!-- doxytag: member="boost::locale::operator&lt;&lt;" ref="ga1f24c2af23fab51855945ab2c6800278" args="(std::basic_ostream&lt; CharType &gt; &amp;out, basic_format&lt; CharType &gt; const &amp;fmt)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_ostream&lt;CharType&gt;&amp; boost::locale::operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_ostream&lt; CharType &gt; &amp;&nbsp;</td>
+ <td class="paramname"> <em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">basic_format&lt; CharType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>fmt</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Write formatted message to stream.</p>
+<p>This operator actually causes actual text formatting. It uses the locale of <em>out</em> stream </p>
+
+</div>
+</div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/group__manipulators.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/group__manipulators.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,719 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: I/O Stream manipulators</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Functions </div>
+ <div class="headertitle">
+<h1>I/O Stream manipulators</h1> </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga879b679c0a88b7af9ac059a6e8f67c0a">boost::locale::as::posix</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gaee05db73f5525d9a010cdc3aa02f634f">boost::locale::as::number</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga97c4997f9692834ea7b5ed3e8137d5fd">boost::locale::as::currency</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga365767c66c9c82fb646458f5eace8534">boost::locale::as::percent</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">boost::locale::as::date</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">boost::locale::as::time</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga820edf843e20847a0c4ccb8da0c4acd8">boost::locale::as::datetime</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga782b256b82922e6a5f32446787a6f7dc">boost::locale::as::strftime</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gac65e6cd9619db80d60793bbd86a3bd77">boost::locale::as::spellout</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga50cc23779fd846809182e50345b4eb7c">boost::locale::as::ordinal</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga18f1cb392e5b26c12a9deaff816e7998">boost::locale::as::currency_default</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gab8bc145e8147e45e9b9dc0ee9edd9fbe">boost::locale::as::currency_iso</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga2b1ea6b22e2c6f3a162264d9e59d3f95">boost::locale::as::currency_national</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga0970bc4cb3a4ab8070faa04808f65052">boost::locale::as::time_default</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gada3d88eef293c9495a3f7d756d369fd3">boost::locale::as::time_short</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga3f3cc44eeeaffc3b90bebe7660b3e853">boost::locale::as::time_medium</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gad6590ea48c57d53899b90d3464cf3c0b">boost::locale::as::time_long</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga9a8bd936176e3c81dfa07748e1cbabd4">boost::locale::as::time_full</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gacb5b9243e6537a9378e2d020a4e6a57a">boost::locale::as::date_default</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga295c7b48ce2732c196df31a70660b7b9">boost::locale::as::date_short</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga3b9dcc64afbd67883603cfa7bb67e6c4">boost::locale::as::date_medium</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gac553a86e8d0606c4a6f6d75c3cb104e7">boost::locale::as::date_long</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gad8d6858ec18524c9a993da387c896d0e">boost::locale::as::date_full</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">unspecified_type&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gaff2d2d435fb9efcb185b2b47355e5fd6">boost::locale::as::ftime</a> (std::basic_string&lt; CharType &gt; const &amp;format)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">unspecified_type&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gaa3b700e53188d9dfca0a7ea8e8a891c1">boost::locale::as::ftime</a> (CharType const *format)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gac90c969d876305b8584def8632ae1808">boost::locale::as::gmt</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gac6cb5458543daf651cd6b48812891541">boost::locale::as::local_time</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unspecified_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gad51fbdc634fe0c81e5183915e9eeb238">boost::locale::as::time_zone</a> (char const *id)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unspecified_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga4348099506fc7c52945e639683398a20">boost::locale::as::time_zone</a> (std::string const &amp;id)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unspecified_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">boost::locale::as::domain</a> (std::string const &amp;id)</td></tr>
+</table>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ga97c4997f9692834ea7b5ed3e8137d5fd"></a><!-- doxytag: member="boost::locale::as::currency" ref="ga97c4997f9692834ea7b5ed3e8137d5fd" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::currency </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Format currency, number is treated like amount of money </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="hello_8cpp-example.html#a4">hello.cpp</a>, and <a class="el" href="whello_8cpp-example.html#a4">whello.cpp</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ga18f1cb392e5b26c12a9deaff816e7998"></a><!-- doxytag: member="boost::locale::as::currency_default" ref="ga18f1cb392e5b26c12a9deaff816e7998" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::currency_default </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set default currency formatting style -- national, like "$" </p>
+
+</div>
+</div>
+<a class="anchor" id="gab8bc145e8147e45e9b9dc0ee9edd9fbe"></a><!-- doxytag: member="boost::locale::as::currency_iso" ref="gab8bc145e8147e45e9b9dc0ee9edd9fbe" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::currency_iso </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set ISO currency formatting style, like "USD", (requires ICU &gt;= 4.2) </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2b1ea6b22e2c6f3a162264d9e59d3f95"></a><!-- doxytag: member="boost::locale::as::currency_national" ref="ga2b1ea6b22e2c6f3a162264d9e59d3f95" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::currency_national </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set national currency formatting style, like "$" </p>
+
+</div>
+</div>
+<a class="anchor" id="gae05b82e6658dc573521518fed5f5c77f"></a><!-- doxytag: member="boost::locale::as::date" ref="gae05b82e6658dc573521518fed5f5c77f" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::date </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Format a date, number is treated as POSIX time </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="hello_8cpp-example.html#a5">hello.cpp</a>, and <a class="el" href="whello_8cpp-example.html#a5">whello.cpp</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="gacb5b9243e6537a9378e2d020a4e6a57a"></a><!-- doxytag: member="boost::locale::as::date_default" ref="gacb5b9243e6537a9378e2d020a4e6a57a" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::date_default </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>set default (medium) date formatting style </p>
+
+</div>
+</div>
+<a class="anchor" id="gad8d6858ec18524c9a993da387c896d0e"></a><!-- doxytag: member="boost::locale::as::date_full" ref="gad8d6858ec18524c9a993da387c896d0e" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::date_full </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>set full date formatting style </p>
+
+</div>
+</div>
+<a class="anchor" id="gac553a86e8d0606c4a6f6d75c3cb104e7"></a><!-- doxytag: member="boost::locale::as::date_long" ref="gac553a86e8d0606c4a6f6d75c3cb104e7" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::date_long </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>set long date formatting style </p>
+
+</div>
+</div>
+<a class="anchor" id="ga3b9dcc64afbd67883603cfa7bb67e6c4"></a><!-- doxytag: member="boost::locale::as::date_medium" ref="ga3b9dcc64afbd67883603cfa7bb67e6c4" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::date_medium </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>set medium date formatting style </p>
+
+</div>
+</div>
+<a class="anchor" id="ga295c7b48ce2732c196df31a70660b7b9"></a><!-- doxytag: member="boost::locale::as::date_short" ref="ga295c7b48ce2732c196df31a70660b7b9" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::date_short </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>set short date formatting style </p>
+
+</div>
+</div>
+<a class="anchor" id="ga820edf843e20847a0c4ccb8da0c4acd8"></a><!-- doxytag: member="boost::locale::as::datetime" ref="ga820edf843e20847a0c4ccb8da0c4acd8" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::datetime </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Format a date and time, number is treated as POSIX time </p>
+
+</div>
+</div>
+<a class="anchor" id="gab522188e3d82f1d2898b290b9132925e"></a><!-- doxytag: member="boost::locale::as::domain" ref="gab522188e3d82f1d2898b290b9132925e" args="(std::string const &amp;id)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unspecified_type boost::locale::as::domain </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>id</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Manipulator for switching message domain in ostream,</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>The returned object throws std::bad_cast if the I/O stream does not have <a class="el" href="classboost_1_1locale_1_1message__format.html">message_format</a> facet installed </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaff2d2d435fb9efcb185b2b47355e5fd6"></a><!-- doxytag: member="boost::locale::as::ftime" ref="gaff2d2d435fb9efcb185b2b47355e5fd6" args="(std::basic_string&lt; CharType &gt; const &amp;format)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">unspecified_type boost::locale::as::ftime </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_string&lt; CharType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>format</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set strftime like formatting string</p>
+<p>Please note, formatting flags are very similar but not exactly the same as flags for C function strftime. Differences: some flags as "%e" do not add blanks to fill text up to two spaces, not all flags supported.</p>
+<p>Flags:</p>
+<ul>
+<li>"%a" -- Abbreviated weekday (Sun.)</li>
+<li>"%A" -- Full weekday (Sunday)</li>
+<li>"%b" -- Abbreviated month (Jan.)</li>
+<li>"%B" -- Full month (January)</li>
+<li>"%c" -- Locale date-time format. **Note:** prefer using "as::datetime"</li>
+<li>"%d" -- Day of Month [01,31]</li>
+<li>"%e" -- Day of Month [1,31]</li>
+<li>"%h" -- Same as "%b"</li>
+<li>"%H" -- 24 clock hour [00,23]</li>
+<li>"%I" -- 12 clock hour [01,12]</li>
+<li>"%j" -- Day of year [1,366]</li>
+<li>"%m" -- Month [01,12]</li>
+<li>"%M" -- Minute [00,59]</li>
+<li>"%n" -- New Line</li>
+<li>"%p" -- AM/PM in locale representation</li>
+<li>"%r" -- Time with AM/PM, same as "%I:%M:%S %p"</li>
+<li>"%R" -- Same as "%H:%M"</li>
+<li>"%S" -- Second [00,61]</li>
+<li>"%t" -- Tab character</li>
+<li>"%T" -- Same as "%H:%M:%S"</li>
+<li>"%x" -- Local date representation. **Note:** prefer using "as::date"</li>
+<li>"%X" -- Local time representation. **Note:** prefer using "as::time"</li>
+<li>"%y" -- Year [00,99]</li>
+<li>"%Y" -- 4 digits year. (2009)</li>
+<li>"%Z" -- Time Zone</li>
+<li>"%%" -- Percent symbol </li>
+</ul>
+
+</div>
+</div>
+<a class="anchor" id="gaa3b700e53188d9dfca0a7ea8e8a891c1"></a><!-- doxytag: member="boost::locale::as::ftime" ref="gaa3b700e53188d9dfca0a7ea8e8a891c1" args="(CharType const *format)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">unspecified_type boost::locale::as::ftime </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>format</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>See ftime(std::basic_string&lt;CharType&gt; const &amp;format) </p>
+
+</div>
+</div>
+<a class="anchor" id="gac90c969d876305b8584def8632ae1808"></a><!-- doxytag: member="boost::locale::as::gmt" ref="gac90c969d876305b8584def8632ae1808" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::gmt </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set GMT time zone to stream </p>
+
+</div>
+</div>
+<a class="anchor" id="gac6cb5458543daf651cd6b48812891541"></a><!-- doxytag: member="boost::locale::as::local_time" ref="gac6cb5458543daf651cd6b48812891541" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::local_time </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set local time zone to stream </p>
+
+</div>
+</div>
+<a class="anchor" id="gaee05db73f5525d9a010cdc3aa02f634f"></a><!-- doxytag: member="boost::locale::as::number" ref="gaee05db73f5525d9a010cdc3aa02f634f" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::number </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Format a number. Note, unlike standard number formatting, integers would be treated like real numbers when std::fixed or std::scientific manipulators were applied </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="hello_8cpp-example.html#a3">hello.cpp</a>, and <a class="el" href="whello_8cpp-example.html#a3">whello.cpp</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ga50cc23779fd846809182e50345b4eb7c"></a><!-- doxytag: member="boost::locale::as::ordinal" ref="ga50cc23779fd846809182e50345b4eb7c" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::ordinal </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Write an order of the number like 4th. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga365767c66c9c82fb646458f5eace8534"></a><!-- doxytag: member="boost::locale::as::percent" ref="ga365767c66c9c82fb646458f5eace8534" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::percent </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Format percent, value 0.3 is treated as 30%. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga879b679c0a88b7af9ac059a6e8f67c0a"></a><!-- doxytag: member="boost::locale::as::posix" ref="ga879b679c0a88b7af9ac059a6e8f67c0a" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::posix </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Format values with "POSIX" or "C" locale. Note, if locale was created with additional non-classic locale then These numbers may be localized </p>
+
+</div>
+</div>
+<a class="anchor" id="gac65e6cd9619db80d60793bbd86a3bd77"></a><!-- doxytag: member="boost::locale::as::spellout" ref="gac65e6cd9619db80d60793bbd86a3bd77" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::spellout </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Spell the number, like "one hundred and ten" </p>
+
+</div>
+</div>
+<a class="anchor" id="ga782b256b82922e6a5f32446787a6f7dc"></a><!-- doxytag: member="boost::locale::as::strftime" ref="ga782b256b82922e6a5f32446787a6f7dc" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::strftime </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create formatted date time, Please note, this manipulator only changes formatting mode, and not format itself, so you are probably looking for ftime manipulator </p>
+
+</div>
+</div>
+<a class="anchor" id="gae669b101cbeaed6f6d246ebdcaa8f39c"></a><!-- doxytag: member="boost::locale::as::time" ref="gae669b101cbeaed6f6d246ebdcaa8f39c" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::time </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Format a time, number is treated as POSIX time </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="hello_8cpp-example.html#a2">hello.cpp</a>, and <a class="el" href="whello_8cpp-example.html#a2">whello.cpp</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ga0970bc4cb3a4ab8070faa04808f65052"></a><!-- doxytag: member="boost::locale::as::time_default" ref="ga0970bc4cb3a4ab8070faa04808f65052" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::time_default </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>set default (medium) time formatting style </p>
+
+</div>
+</div>
+<a class="anchor" id="ga9a8bd936176e3c81dfa07748e1cbabd4"></a><!-- doxytag: member="boost::locale::as::time_full" ref="ga9a8bd936176e3c81dfa07748e1cbabd4" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::time_full </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>set full time formatting style </p>
+
+</div>
+</div>
+<a class="anchor" id="gad6590ea48c57d53899b90d3464cf3c0b"></a><!-- doxytag: member="boost::locale::as::time_long" ref="gad6590ea48c57d53899b90d3464cf3c0b" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::time_long </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>set long time formatting style </p>
+
+</div>
+</div>
+<a class="anchor" id="ga3f3cc44eeeaffc3b90bebe7660b3e853"></a><!-- doxytag: member="boost::locale::as::time_medium" ref="ga3f3cc44eeeaffc3b90bebe7660b3e853" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::time_medium </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>set medium time formatting style </p>
+
+</div>
+</div>
+<a class="anchor" id="gada3d88eef293c9495a3f7d756d369fd3"></a><!-- doxytag: member="boost::locale::as::time_short" ref="gada3d88eef293c9495a3f7d756d369fd3" args="(std::ios_base &amp;ios)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::ios_base&amp; boost::locale::as::time_short </td>
+ <td>(</td>
+ <td class="paramtype">std::ios_base &amp;&nbsp;</td>
+ <td class="paramname"> <em>ios</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>set short time formatting style </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4348099506fc7c52945e639683398a20"></a><!-- doxytag: member="boost::locale::as::time_zone" ref="ga4348099506fc7c52945e639683398a20" args="(std::string const &amp;id)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unspecified_type boost::locale::as::time_zone </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>id</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set time zone using <em>id</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="gad51fbdc634fe0c81e5183915e9eeb238"></a><!-- doxytag: member="boost::locale::as::time_zone" ref="gad51fbdc634fe0c81e5183915e9eeb238" args="(char const *id)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unspecified_type boost::locale::as::time_zone </td>
+ <td>(</td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>id</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set time zone using <em>id</em> </p>
+
+</div>
+</div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/group__message.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/group__message.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,1301 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Message Formatting (translation)</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Classes &#124;
+Namespaces &#124;
+Typedefs &#124;
+Functions </div>
+ <div class="headertitle">
+<h1>Message Formatting (translation)</h1> </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format&lt; CharType &gt;</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This facet provides message formatting abilities. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class represents a message that can be converted to a specific locale message. More...<br/></td></tr>
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1gnu__gettext.html">boost::locale::gnu_gettext</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>This namespace holds classes that provide GNU Gettext message catalogs support. </p>
+<br/></td></tr>
+</p>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1as.html">boost::locale::as</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>This namespace includes all manipulators that can be used on IO streams. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::basic_string<br class="typebreak"/>
+&lt; CharType &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gaaa932705310ce196fccc9d672b25518f">boost::locale::message_format::string_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga529423e08fc9a8ca9ceef5c56181c6d3"></a><!-- doxytag: member="message::string_type" ref="ga529423e08fc9a8ca9ceef5c56181c6d3" args="" -->
+typedef std::basic_string<br class="typebreak"/>
+&lt; char_type &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">boost::locale::basic_message::string_type</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The string type this object can be used with. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa63527cb368d0bcd4cb0809138c927df"></a><!-- doxytag: member="message::facet_type" ref="gaa63527cb368d0bcd4cb0809138c927df" args="" -->
+typedef message_format&lt; char_type &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gaa63527cb368d0bcd4cb0809138c927df">boost::locale::basic_message::facet_type</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The type of the facet the messages are fetched with. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef basic_message&lt; char &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga556e3e7696302902b2242a7a94516dee">boost::locale::message</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef basic_message&lt; wchar_t &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gafea131aa123d666905076f34b77326a9">boost::locale::wmessage</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef basic_message&lt; char16_t &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga43ddf342eec2ab9145d04727f8161e1c">boost::locale::u16message</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef basic_message&lt; char32_t &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga6c0b40121a07c13de9e712845b43468f">boost::locale::u32message</a></td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gafa681d0df94a35f9d75c16dea099d03e">boost::locale::message_format::message_format</a> (size_t refs=0)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual char_type const *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga4f65e4e1c3995eb09dd8f8f0e150a012">boost::locale::message_format::get</a> (int domain_id, char_type const *context, char_type const *id) const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual char_type const *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gabb35b8a77bca9d28c5d5c266b66fe291">boost::locale::message_format::get</a> (int domain_id, char_type const *context, char_type const *single_id, int n) const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga73e25178ba9ef91ebe1df0aade4d8ae6">boost::locale::message_format::domain</a> (std::string const &amp;domain) const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual char_type const *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga3f2c9d7f9a363efa607738083a986251">boost::locale::message_format::convert</a> (char_type const *msg, string_type &amp;buffer) const =0</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga33bdf7fbb164a96a8685b5747afc2b45">boost::locale::basic_message::basic_message</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gae32d7f89d5f268e8d6bae662d8008bae">boost::locale::basic_message::basic_message</a> (char_type const *id)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga40bf56415a235f13ee666d51f645f280">boost::locale::basic_message::basic_message</a> (char_type const *single, char_type const *plural, int n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga4d78f8f45467984d7244e2ddbb9e0f6e">boost::locale::basic_message::basic_message</a> (char_type const *context, char_type const *id)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gabf9afe77f0254397389289c386bf8a73">boost::locale::basic_message::basic_message</a> (char_type const *context, char_type const *single, char_type const *plural, int n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gabbb4365d621a33442ae34ac7c17a9d74">boost::locale::basic_message::basic_message</a> (string_type const &amp;id)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga380f3a258b3b28929bbf01f4e622e71a">boost::locale::basic_message::basic_message</a> (string_type const &amp;single, string_type const &amp;plural, int number)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga8c2fab962e10a46ea85f0188d08e499d">boost::locale::basic_message::basic_message</a> (string_type const &amp;context, string_type const &amp;id)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gaf8ba10b7b1d45e6c78b84d77e8175d5d">boost::locale::basic_message::basic_message</a> (string_type const &amp;context, string_type const &amp;single, string_type const &amp;plural, int number)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gae6ed9dded4ab78ff28e994b48c766c84">boost::locale::basic_message::basic_message</a> (basic_message const &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">basic_message const &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gae0e786e45ef32cf73efd8495cae45aed">boost::locale::basic_message::operator=</a> (basic_message const &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gac204b563c7c9bd86e5555f129350f0e3">boost::locale::basic_message::swap</a> (basic_message &amp;other)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga8da81038939b85ca248cba50f1deacf1">boost::locale::basic_message::operator string_type</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">string_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">boost::locale::basic_message::str</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">string_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga26c6489f8269096f835abfb268498fdd">boost::locale::basic_message::str</a> (std::locale const &amp;locale) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">string_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gaa907a1d3f43fe59cea938e1606f004ee">boost::locale::basic_message::str</a> (std::locale const &amp;locale, std::string const &amp;domain_id) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">string_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga2d2ca0fe119e4ce4766fd3d42b549314">boost::locale::basic_message::str</a> (std::string const &amp;domain_id) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">string_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gaa51c0f65363d8d1cee83bb07fe45ced5">boost::locale::basic_message::str</a> (std::locale const &amp;loc, int id) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga4dd81f4d40c4e8871bb1bf02bbc8e968">boost::locale::basic_message::write</a> (std::basic_ostream&lt; char_type &gt; &amp;out) const </td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_ostream&lt; CharType &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga65c188250db86a10f038b77c377f6ec5">boost::locale::operator&lt;&lt;</a> (std::basic_ostream&lt; CharType &gt; &amp;out, basic_message&lt; CharType &gt; const &amp;msg)</td></tr>
+<tr><td colspan="2"><h2><a name="member-group"></a>
+Indirect message translation function family</h2></td></tr>
+<tr><td colspan="2"><p><a class="anchor" id="amgrp32a7bab11d00770484c96c0058512efc"></a> <a class="anchor" id="boost_locale_translate_family"></a> </p>
+<br/><br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7f35933e136f9202baa66128d87e5d43"></a><!-- doxytag: member="message::translate" ref="ga7f35933e136f9202baa66128d87e5d43" args="(CharType const *msg)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">basic_message&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43">boost::locale::translate</a> (CharType const *msg)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a message, <em>msg</em> is not copied. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac1392ab84aa084a652fca57ad11ab754"></a><!-- doxytag: member="message::translate" ref="gac1392ab84aa084a652fca57ad11ab754" args="(CharType const *context, CharType const *msg)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">basic_message&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#gac1392ab84aa084a652fca57ad11ab754">boost::locale::translate</a> (CharType const *context, CharType const *msg)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a message in context, <em>msg</em> and <em>context</em> are not copied. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaef8d3a6063f6b2a79b1cebeda9bafd52"></a><!-- doxytag: member="message::translate" ref="gaef8d3a6063f6b2a79b1cebeda9bafd52" args="(CharType const *single, CharType const *plural, int n)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">basic_message&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#gaef8d3a6063f6b2a79b1cebeda9bafd52">boost::locale::translate</a> (CharType const *single, CharType const *plural, int n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a plural message form, <em>single</em> and <em>plural</em> are not copied. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gafae5e056f599ae051e81b84e14f61255"></a><!-- doxytag: member="message::translate" ref="gafae5e056f599ae051e81b84e14f61255" args="(CharType const *context, CharType const *single, CharType const *plural, int n)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">basic_message&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#gafae5e056f599ae051e81b84e14f61255">boost::locale::translate</a> (CharType const *context, CharType const *single, CharType const *plural, int n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a plural message from in constext, <em>context</em>, <em>single</em> and <em>plural</em> are not copied. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gabe61325e81b62bab9351d514c2f3218c"></a><!-- doxytag: member="message::translate" ref="gabe61325e81b62bab9351d514c2f3218c" args="(std::basic_string&lt; CharType &gt; const &amp;msg)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">basic_message&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#gabe61325e81b62bab9351d514c2f3218c">boost::locale::translate</a> (std::basic_string&lt; CharType &gt; const &amp;msg)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a message, <em>msg</em> is copied. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf1e2c81bd1be15d2075bbba353251cd4"></a><!-- doxytag: member="message::translate" ref="gaf1e2c81bd1be15d2075bbba353251cd4" args="(std::basic_string&lt; CharType &gt; const &amp;context, std::basic_string&lt; CharType &gt; const &amp;msg)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">basic_message&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#gaf1e2c81bd1be15d2075bbba353251cd4">boost::locale::translate</a> (std::basic_string&lt; CharType &gt; const &amp;context, std::basic_string&lt; CharType &gt; const &amp;msg)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a message in context,<em>context</em> and <em>msg</em> is copied. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga534be0a86c6ed58adb94127decc704cd"></a><!-- doxytag: member="message::translate" ref="ga534be0a86c6ed58adb94127decc704cd" args="(std::basic_string&lt; CharType &gt; const &amp;context, std::basic_string&lt; CharType &gt; const &amp;single, std::basic_string&lt; CharType &gt; const &amp;plural, int n)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">basic_message&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga534be0a86c6ed58adb94127decc704cd">boost::locale::translate</a> (std::basic_string&lt; CharType &gt; const &amp;context, std::basic_string&lt; CharType &gt; const &amp;single, std::basic_string&lt; CharType &gt; const &amp;plural, int n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a plural message form in constext, <em>context</em>, <em>single</em> and <em>plural</em> are copied. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga39d53e2aa86045ffb19ac7533466db26"></a><!-- doxytag: member="message::translate" ref="ga39d53e2aa86045ffb19ac7533466db26" args="(std::basic_string&lt; CharType &gt; const &amp;single, std::basic_string&lt; CharType &gt; const &amp;plural, int n)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">basic_message&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga39d53e2aa86045ffb19ac7533466db26">boost::locale::translate</a> (std::basic_string&lt; CharType &gt; const &amp;single, std::basic_string&lt; CharType &gt; const &amp;plural, int n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a plural message form, <em>single</em> and <em>plural</em> are copied. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="member-group"></a>
+Direct message translation functions family</h2></td></tr>
+<tr><td colspan="2"><p><a class="anchor" id="amgrp365823f5317287b5d67977a7fc724307"></a> <a class="anchor" id="boost_locale_gettext_family"></a> </p>
+<br/><br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#gadd3006a6d5d1c804490152ee6300d47f">boost::locale::gettext</a> (CharType const *id, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga80a13c0c61d4d0b530ef7df873dc31bb">boost::locale::ngettext</a> (CharType const *s, CharType const *p, int n, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga4679dd42049207a9632002cd13d29260">boost::locale::dgettext</a> (char const *domain, CharType const *id, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga8969a29e9eb19ce41178920892da5c27">boost::locale::dngettext</a> (char const *domain, CharType const *s, CharType const *p, int n, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga2a39910bdf57e4d151607ee1a115b853">boost::locale::pgettext</a> (CharType const *context, CharType const *id, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga65fb8244993e7e3870e4e89540803323">boost::locale::npgettext</a> (CharType const *context, CharType const *s, CharType const *p, int n, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga352dfa66c04ff924f1999ca47ff11aba">boost::locale::dpgettext</a> (char const *domain, CharType const *context, CharType const *id, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga49b1d83256ead90a9f86940e3d977dee">boost::locale::dnpgettext</a> (char const *domain, CharType const *context, CharType const *s, CharType const *p, int n, std::locale const &amp;loc=std::locale())</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This module provides message translation functionality, i.e. allow your application to speak native language </p>
+<hr/><h2>Typedef Documentation</h2>
+<a class="anchor" id="ga556e3e7696302902b2242a7a94516dee"></a><!-- doxytag: member="boost::locale::message" ref="ga556e3e7696302902b2242a7a94516dee" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef basic_message&lt;char&gt; <a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::message</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convenience typedef for char </p>
+
+</div>
+</div>
+<a class="anchor" id="gaaa932705310ce196fccc9d672b25518f"></a><!-- doxytag: member="boost::locale::message_format::string_type" ref="gaaa932705310ce196fccc9d672b25518f" args="" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef std::basic_string&lt;CharType&gt; <a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format</a>&lt; CharType &gt;::string_type<code> [inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>String type </p>
+
+</div>
+</div>
+<a class="anchor" id="ga43ddf342eec2ab9145d04727f8161e1c"></a><!-- doxytag: member="boost::locale::u16message" ref="ga43ddf342eec2ab9145d04727f8161e1c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef basic_message&lt;char16_t&gt; <a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::u16message</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convenience typedef for char16_t </p>
+
+</div>
+</div>
+<a class="anchor" id="ga6c0b40121a07c13de9e712845b43468f"></a><!-- doxytag: member="boost::locale::u32message" ref="ga6c0b40121a07c13de9e712845b43468f" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef basic_message&lt;char32_t&gt; <a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::u32message</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convenience typedef for char32_t </p>
+
+</div>
+</div>
+<a class="anchor" id="gafea131aa123d666905076f34b77326a9"></a><!-- doxytag: member="boost::locale::wmessage" ref="gafea131aa123d666905076f34b77326a9" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef basic_message&lt;wchar_t&gt; <a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::wmessage</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convenience typedef for wchar_t </p>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ga33bdf7fbb164a96a8685b5747afc2b45"></a><!-- doxytag: member="boost::locale::basic_message::basic_message" ref="ga33bdf7fbb164a96a8685b5747afc2b45" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::basic_message </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create default empty message </p>
+
+</div>
+</div>
+<a class="anchor" id="gae32d7f89d5f268e8d6bae662d8008bae"></a><!-- doxytag: member="boost::locale::basic_message::basic_message" ref="gae32d7f89d5f268e8d6bae662d8008bae" args="(char_type const *id)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::basic_message </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>id</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline, explicit, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a simple message from 0 terminated string. The string should exist until the message is destroyed. Generally useful with static constant strings </p>
+
+</div>
+</div>
+<a class="anchor" id="ga40bf56415a235f13ee666d51f645f280"></a><!-- doxytag: member="boost::locale::basic_message::basic_message" ref="ga40bf56415a235f13ee666d51f645f280" args="(char_type const *single, char_type const *plural, int n)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::basic_message </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>single</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>plural</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline, explicit, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a simple plural form message from 0 terminated strings. The strings should exist until the message is destroyed. Generally useful with static constant strings.</p>
+<p><em>n</em> is the number, <em>single</em> and <em>plural</em> are singular and plural forms of the message </p>
+
+</div>
+</div>
+<a class="anchor" id="gae6ed9dded4ab78ff28e994b48c766c84"></a><!-- doxytag: member="boost::locale::basic_message::basic_message" ref="gae6ed9dded4ab78ff28e994b48c766c84" args="(basic_message const &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::basic_message </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; CharType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Copy an object </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4d78f8f45467984d7244e2ddbb9e0f6e"></a><!-- doxytag: member="boost::locale::basic_message::basic_message" ref="ga4d78f8f45467984d7244e2ddbb9e0f6e" args="(char_type const *context, char_type const *id)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::basic_message </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline, explicit, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a simple message from 0 terminated strings, with context information. The string should exist until the message is destroyed. Generally useful with static constant strings </p>
+
+</div>
+</div>
+<a class="anchor" id="gabf9afe77f0254397389289c386bf8a73"></a><!-- doxytag: member="boost::locale::basic_message::basic_message" ref="gabf9afe77f0254397389289c386bf8a73" args="(char_type const *context, char_type const *single, char_type const *plural, int n)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::basic_message </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>single</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>plural</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline, explicit, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a simple plural form message from 0 terminated strings, with context. The strings should exist until the message is destroyed. Generally useful with static constant strings.</p>
+<p><em>n</em> is the number, <em>single</em> and <em>plural</em> are singular and plural forms of the message </p>
+
+</div>
+</div>
+<a class="anchor" id="gabbb4365d621a33442ae34ac7c17a9d74"></a><!-- doxytag: member="boost::locale::basic_message::basic_message" ref="gabbb4365d621a33442ae34ac7c17a9d74" args="(string_type const &amp;id)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::basic_message </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>id</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline, explicit, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a simple message from a string. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga380f3a258b3b28929bbf01f4e622e71a"></a><!-- doxytag: member="boost::locale::basic_message::basic_message" ref="ga380f3a258b3b28929bbf01f4e622e71a" args="(string_type const &amp;single, string_type const &amp;plural, int number)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::basic_message </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>single</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>plural</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>number</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline, explicit, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a simple plural form message from strings.</p>
+<p><em>n</em> is the number, <em>single</em> and <em>plural</em> are single and plural forms of the message </p>
+
+</div>
+</div>
+<a class="anchor" id="ga8c2fab962e10a46ea85f0188d08e499d"></a><!-- doxytag: member="boost::locale::basic_message::basic_message" ref="ga8c2fab962e10a46ea85f0188d08e499d" args="(string_type const &amp;context, string_type const &amp;id)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::basic_message </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline, explicit, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a simple message from a string with context. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaf8ba10b7b1d45e6c78b84d77e8175d5d"></a><!-- doxytag: member="boost::locale::basic_message::basic_message" ref="gaf8ba10b7b1d45e6c78b84d77e8175d5d" args="(string_type const &amp;context, string_type const &amp;single, string_type const &amp;plural, int number)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::basic_message </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>single</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">string_type</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>plural</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>number</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline, explicit, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a simple plural form message from strings.</p>
+<p><em>n</em> is the number, <em>single</em> and <em>plural</em> are single and plural forms of the message </p>
+
+</div>
+</div>
+<a class="anchor" id="ga3f2c9d7f9a363efa607738083a986251"></a><!-- doxytag: member="boost::locale::message_format::convert" ref="ga3f2c9d7f9a363efa607738083a986251" args="(char_type const *msg, string_type &amp;buffer) const =0" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual char_type const* <a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format</a>&lt; CharType &gt;::convert </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>msg</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group__message.html#gaaa932705310ce196fccc9d672b25518f">string_type</a> &amp;&nbsp;</td>
+ <td class="paramname"> <em>buffer</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [pure virtual, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert the string <em>msg</em> to target locale's encoding. If <em>msg</em> is already in target encoding it would be returned otherwise the converted string is stored in temporary <em>buffer</em> and buffer.c_str() is returned.</p>
+<p>Note: for char_type that is char16_t, char32_t and wchar_t it is no-op, returns msg </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4679dd42049207a9632002cd13d29260"></a><!-- doxytag: member="boost::locale::dgettext" ref="ga4679dd42049207a9632002cd13d29260" args="(char const *domain, CharType const *id, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::dgettext </td>
+ <td>(</td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>domain</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Translate message <em>id</em> according to locale <em>loc</em> in domain <em>domain</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga8969a29e9eb19ce41178920892da5c27"></a><!-- doxytag: member="boost::locale::dngettext" ref="ga8969a29e9eb19ce41178920892da5c27" args="(char const *domain, CharType const *s, CharType const *p, int n, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::dngettext </td>
+ <td>(</td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>domain</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>p</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Translate plural form according to locale <em>loc</em> in domain <em>domain</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga49b1d83256ead90a9f86940e3d977dee"></a><!-- doxytag: member="boost::locale::dnpgettext" ref="ga49b1d83256ead90a9f86940e3d977dee" args="(char const *domain, CharType const *context, CharType const *s, CharType const *p, int n, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::dnpgettext </td>
+ <td>(</td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>domain</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>p</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Translate plural form according to locale <em>loc</em> in domain <em>domain</em> in context <em>context</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga73e25178ba9ef91ebe1df0aade4d8ae6"></a><!-- doxytag: member="boost::locale::message_format::domain" ref="ga73e25178ba9ef91ebe1df0aade4d8ae6" args="(std::string const &amp;domain) const =0" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual int <a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format</a>&lt; CharType &gt;::domain </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>domain</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [pure virtual, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Convert a string that defines <em>domain</em> to the integer id used by <em>get</em> functions </p>
+
+</div>
+</div>
+<a class="anchor" id="ga352dfa66c04ff924f1999ca47ff11aba"></a><!-- doxytag: member="boost::locale::dpgettext" ref="ga352dfa66c04ff924f1999ca47ff11aba" args="(char const *domain, CharType const *context, CharType const *id, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::dpgettext </td>
+ <td>(</td>
+ <td class="paramtype">char const *&nbsp;</td>
+ <td class="paramname"> <em>domain</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Translate message <em>id</em> according to locale <em>loc</em> in domain <em>domain</em> in context <em>context</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4f65e4e1c3995eb09dd8f8f0e150a012"></a><!-- doxytag: member="boost::locale::message_format::get" ref="ga4f65e4e1c3995eb09dd8f8f0e150a012" args="(int domain_id, char_type const *context, char_type const *id) const =0" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual char_type const* <a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format</a>&lt; CharType &gt;::get </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>domain_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [pure virtual, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>This function returns a pointer to the string for a message defined by a <em>context</em> and identification string <em>id</em>. Both create a single key for message lookup in a domain defined by <em>domain_id</em>.</p>
+<p>If <em>context</em> is NULL it is not considered to be a part of the key</p>
+<p>If a translated string is found, it is returned, otherwise NULL is returned </p>
+
+</div>
+</div>
+<a class="anchor" id="gabb35b8a77bca9d28c5d5c266b66fe291"></a><!-- doxytag: member="boost::locale::message_format::get" ref="gabb35b8a77bca9d28c5d5c266b66fe291" args="(int domain_id, char_type const *context, char_type const *single_id, int n) const =0" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual char_type const* <a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format</a>&lt; CharType &gt;::get </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>domain_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> const *&nbsp;</td>
+ <td class="paramname"> <em>single_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [pure virtual, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>This function returns a pointer to the string for a plural message defined by a <em>context</em> and identification string <em>single_id</em>.</p>
+<p>If <em>context</em> is NULL it is not considered to be a part of the key</p>
+<p>Both create a single key for message lookup in a domain defined <em>domain_id</em>. <em>n</em> is used to pick the correct translation string for a specific number.</p>
+<p>If a translated string is found, it is returned, otherwise NULL is returned </p>
+
+</div>
+</div>
+<a class="anchor" id="gadd3006a6d5d1c804490152ee6300d47f"></a><!-- doxytag: member="boost::locale::gettext" ref="gadd3006a6d5d1c804490152ee6300d47f" args="(CharType const *id, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::gettext </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Translate message <em>id</em> according to locale <em>loc</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="gafa681d0df94a35f9d75c16dea099d03e"></a><!-- doxytag: member="boost::locale::message_format::message_format" ref="gafa681d0df94a35f9d75c16dea099d03e" args="(size_t refs=0)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format</a>&lt; CharType &gt;::message_format </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>refs</em> = <code>0</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Default constructor </p>
+
+</div>
+</div>
+<a class="anchor" id="ga80a13c0c61d4d0b530ef7df873dc31bb"></a><!-- doxytag: member="boost::locale::ngettext" ref="ga80a13c0c61d4d0b530ef7df873dc31bb" args="(CharType const *s, CharType const *p, int n, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::ngettext </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>p</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Translate plural form according to locale <em>loc</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga65fb8244993e7e3870e4e89540803323"></a><!-- doxytag: member="boost::locale::npgettext" ref="ga65fb8244993e7e3870e4e89540803323" args="(CharType const *context, CharType const *s, CharType const *p, int n, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::npgettext </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>p</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Translate plural form according to locale <em>loc</em> in context <em>context</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga8da81038939b85ca248cba50f1deacf1"></a><!-- doxytag: member="boost::locale::basic_message::operator string_type" ref="ga8da81038939b85ca248cba50f1deacf1" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::operator string_type </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Message class can be explicitly converted to string class </p>
+
+</div>
+</div>
+<a class="anchor" id="ga65c188250db86a10f038b77c377f6ec5"></a><!-- doxytag: member="boost::locale::operator&lt;&lt;" ref="ga65c188250db86a10f038b77c377f6ec5" args="(std::basic_ostream&lt; CharType &gt; &amp;out, basic_message&lt; CharType &gt; const &amp;msg)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_ostream&lt;CharType&gt;&amp; boost::locale::operator&lt;&lt; </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_ostream&lt; CharType &gt; &amp;&nbsp;</td>
+ <td class="paramname"> <em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">basic_message&lt; CharType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>msg</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Translate message <em>msg</em> and write it to stream </p>
+
+</div>
+</div>
+<a class="anchor" id="gae0e786e45ef32cf73efd8495cae45aed"></a><!-- doxytag: member="boost::locale::basic_message::operator=" ref="gae0e786e45ef32cf73efd8495cae45aed" args="(basic_message const &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">basic_message const&amp; <a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::operator= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; CharType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Assign other message object to this one </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2a39910bdf57e4d151607ee1a115b853"></a><!-- doxytag: member="boost::locale::pgettext" ref="ga2a39910bdf57e4d151607ee1a115b853" args="(CharType const *context, CharType const *id, std::locale const &amp;loc=std::locale())" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::basic_string&lt;CharType&gt; boost::locale::pgettext </td>
+ <td>(</td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>context</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">CharType const *&nbsp;</td>
+ <td class="paramname"> <em>id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em> = <code>std::locale()</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Translate message <em>id</em> according to locale <em>loc</em> in context <em>context</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2d2ca0fe119e4ce4766fd3d42b549314"></a><!-- doxytag: member="boost::locale::basic_message::str" ref="ga2d2ca0fe119e4ce4766fd3d42b549314" args="(std::string const &amp;domain_id) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">string_type <a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::str </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>domain_id</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Translate message to a string using the default locale and message domain <em>domain_id</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga11c5f400e03e0b16b9a60bd3fae3f168"></a><!-- doxytag: member="boost::locale::basic_message::str" ref="ga11c5f400e03e0b16b9a60bd3fae3f168" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">string_type <a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::str </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Translate message to a string in the default global locale, using default domain </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa907a1d3f43fe59cea938e1606f004ee"></a><!-- doxytag: member="boost::locale::basic_message::str" ref="gaa907a1d3f43fe59cea938e1606f004ee" args="(std::locale const &amp;locale, std::string const &amp;domain_id) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">string_type <a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::str </td>
+ <td>(</td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>locale</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>domain_id</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Translate message to a string using locale <em>locale</em> and message domain <em>domain_id</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa51c0f65363d8d1cee83bb07fe45ced5"></a><!-- doxytag: member="boost::locale::basic_message::str" ref="gaa51c0f65363d8d1cee83bb07fe45ced5" args="(std::locale const &amp;loc, int id) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">string_type <a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::str </td>
+ <td>(</td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>loc</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Translate message to a string using locale <em>loc</em> and message domain index <em>id</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga26c6489f8269096f835abfb268498fdd"></a><!-- doxytag: member="boost::locale::basic_message::str" ref="ga26c6489f8269096f835abfb268498fdd" args="(std::locale const &amp;locale) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">string_type <a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::str </td>
+ <td>(</td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>locale</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Translate message to a string in the locale <em>locale</em>, using default domain </p>
+
+</div>
+</div>
+<a class="anchor" id="gac204b563c7c9bd86e5555f129350f0e3"></a><!-- doxytag: member="boost::locale::basic_message::swap" ref="gac204b563c7c9bd86e5555f129350f0e3" args="(basic_message &amp;other)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::swap </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; CharType &gt; &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Swap two message objects </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4dd81f4d40c4e8871bb1bf02bbc8e968"></a><!-- doxytag: member="boost::locale::basic_message::write" ref="ga4dd81f4d40c4e8871bb1bf02bbc8e968" args="(std::basic_ostream&lt; char_type &gt; &amp;out) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message</a>&lt; CharType &gt;::write </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_ostream&lt; <a class="el" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">char_type</a> &gt; &amp;&nbsp;</td>
+ <td class="paramname"> <em>out</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline, inherited]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Translate message and write to stream <em>out</em>, using imbued locale and domain set to the stream </p>
+
+</div>
+</div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/hello_8cpp-example.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/hello_8cpp-example.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: hello.cpp</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>hello.cpp</h1> </div>
+</div>
+<div class="contents">
+<p>Basic example of using various functions provided by this library</p>
+<div class="fragment"><pre class="fragment"><span class="comment">//</span>
+<span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<span class="comment">//</span>
+<span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<span class="comment">//</span>
+<span class="preprocessor">#include &lt;boost/locale.hpp&gt;</span>
+<span class="preprocessor">#include &lt;iostream&gt;</span>
+
+<span class="preprocessor">#include &lt;ctime&gt;</span>
+
+<span class="keywordtype">int</span> main()
+{
+ <span class="keyword">using namespace </span>boost::locale;
+ <span class="keyword">using namespace </span>std;
+ <a name="_a0"></a><a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">generator</a> gen;
+ locale loc=gen(<span class="stringliteral">&quot;&quot;</span>);
+ <span class="comment">// Create system default locale</span>
+
+ locale::global(loc);
+ <span class="comment">// Make it system global</span>
+
+ cout.imbue(loc);
+ <span class="comment">// Set as default locale for output</span>
+
+ cout &lt;&lt;<a name="a1"></a><a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<span class="stringliteral">&quot;Today {1,date} at {1,time} we had run our first localization example&quot;</span>) % <a name="a2"></a><a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">time</a>(0)
+ &lt;&lt;endl;
+
+ cout&lt;&lt;<span class="stringliteral">&quot;This is how we show numbers in this locale &quot;</span>&lt;&lt;<a name="a3"></a><a class="code" href="group__manipulators.html#gaee05db73f5525d9a010cdc3aa02f634f">as::number</a> &lt;&lt; 103.34 &lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot;This is how we show currency in this locale &quot;</span>&lt;&lt;<a name="a4"></a><a class="code" href="group__manipulators.html#ga97c4997f9692834ea7b5ed3e8137d5fd">as::currency</a> &lt;&lt; 103.34 &lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot;This is typical date in the locale &quot;</span>&lt;&lt;<a name="a5"></a><a class="code" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">as::date</a> &lt;&lt; <a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">std::time</a>(0) &lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot;This is typical time in the locale &quot;</span>&lt;&lt;<a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">as::time</a> &lt;&lt; <a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">std::time</a>(0) &lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot;This is upper case &quot;</span>&lt;&lt;<a name="a6"></a><a class="code" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">to_upper</a>(<span class="stringliteral">&quot;Hello World!&quot;</span>)&lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot;This is lower case &quot;</span>&lt;&lt;<a name="a7"></a><a class="code" href="group__convert.html#ga33de83f16ff2c09cac780977c6f67099">to_lower</a>(<span class="stringliteral">&quot;Hello World!&quot;</span>)&lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot;This is title case &quot;</span>&lt;&lt;<a name="a8"></a><a class="code" href="group__convert.html#ga646f42adb01baf395d632c32f556a5b9">to_title</a>(<span class="stringliteral">&quot;Hello World!&quot;</span>)&lt;&lt;endl;
+ cout&lt;&lt;<span class="stringliteral">&quot;This is fold case &quot;</span>&lt;&lt;<a name="a9"></a><a class="code" href="group__convert.html#gabd1bc157122a5b9392487126fd0fffe5">fold_case</a>(<span class="stringliteral">&quot;Hello World!&quot;</span>)&lt;&lt;endl;
+
+}
+
+<span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div> </div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/hierarchy.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/hierarchy.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Hierarchical Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li class="current">Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Class Hierarchy</h1> </div>
+</div>
+<div class="contents">
+This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
+<li><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">boost::locale::abstract_calendar</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">boost::locale::util::base_converter</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1basic__format.html">boost::locale::basic_format&lt; CharType &gt;</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1basic__message.html">boost::locale::basic_message&lt; CharType &gt;</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></li>
+<li><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html">boost::locale::boundary::break_info</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1calendar.html">boost::locale::calendar</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1calendar__facet.html">boost::locale::calendar_facet</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a><ul>
+<li><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator&lt; CharType &gt;</a></li>
+</ul>
+</li>
+<li><a class="el" href="structboost_1_1locale_1_1comparator.html">boost::locale::comparator&lt; CharType, default_level &gt;</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1conv_1_1conversion__error.html">boost::locale::conv::conversion_error</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1converter__base.html">boost::locale::converter_base</a><ul>
+<li><a class="el" href="classboost_1_1locale_1_1converter.html">boost::locale::converter&lt; Char &gt;</a></li>
+</ul>
+</li>
+<li><a class="el" href="classboost_1_1locale_1_1date__time.html">boost::locale::date_time</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1date__time__duration.html">boost::locale::date_time_duration</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1date__time__error.html">boost::locale::date_time_error</a></li>
+<li><a class="el" href="structboost_1_1locale_1_1date__time__period.html">boost::locale::date_time_period</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">boost::locale::date_time_period_set</a></li>
+<li><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">boost::locale::gnu_gettext::messages_info::domain</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1generator.html">boost::locale::generator</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">boost::locale::hold_ptr&lt; T &gt;</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html">boost::locale::conv::invalid_charset_error</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1ios__info.html">boost::locale::ios_info</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1localization__backend.html">boost::locale::localization_backend</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">boost::locale::localization_backend_manager</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1message__format.html">boost::locale::message_format&lt; CharType &gt;</a></li>
+<li><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">boost::locale::period::period_type</a></li>
+<li><a class="el" href="structboost_1_1locale_1_1posix__time.html">boost::locale::posix_time</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment&lt; IteratorType &gt;</a></li>
+<li><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/hold__ptr_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/hold__ptr_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/hold_ptr.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/hold_ptr.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2010 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_HOLD_PTR_H</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_HOLD_PTR_H</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="keyword">namespace </span>boost {
+<a name="l00012"></a>00012 <span class="keyword">namespace </span>locale {
+<a name="l00017"></a>00017 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
+<a name="l00018"></a><a class="code" href="classboost_1_1locale_1_1hold__ptr.html">00018</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1hold__ptr.html" title="a smart pointer similar to std::auto_ptr but it is non-copyable and the underlying object has the sam...">hold_ptr</a> {
+<a name="l00019"></a>00019 <a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a681ee3d579435f9f2f171b830c402072">hold_ptr</a>(<a class="code" href="classboost_1_1locale_1_1hold__ptr.html" title="a smart pointer similar to std::auto_ptr but it is non-copyable and the underlying object has the sam...">hold_ptr</a> <span class="keyword">const</span> &amp;other); <span class="comment">// non copyable </span>
+<a name="l00020"></a>00020 <a class="code" href="classboost_1_1locale_1_1hold__ptr.html" title="a smart pointer similar to std::auto_ptr but it is non-copyable and the underlying object has the sam...">hold_ptr</a> <span class="keyword">const</span> &amp;operator=(<a class="code" href="classboost_1_1locale_1_1hold__ptr.html" title="a smart pointer similar to std::auto_ptr but it is non-copyable and the underlying object has the sam...">hold_ptr</a> <span class="keyword">const</span> &amp;other); <span class="comment">// non assignable</span>
+<a name="l00021"></a>00021 <span class="keyword">public</span>:
+<a name="l00025"></a><a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a681ee3d579435f9f2f171b830c402072">00025</a> <a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a681ee3d579435f9f2f171b830c402072">hold_ptr</a>() : ptr_(0) {}
+<a name="l00029"></a><a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a0007514dc0410ccb16adf01c56874f52">00029</a> <span class="keyword">explicit</span> <a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a0007514dc0410ccb16adf01c56874f52">hold_ptr</a>(T *v) : ptr_(v) {}
+<a name="l00030"></a>00030
+<a name="l00034"></a><a class="code" href="classboost_1_1locale_1_1hold__ptr.html#aace934e7a8b3f1880d1a06fa85795a48">00034</a> <a class="code" href="classboost_1_1locale_1_1hold__ptr.html#aace934e7a8b3f1880d1a06fa85795a48">~hold_ptr</a>()
+<a name="l00035"></a>00035 {
+<a name="l00036"></a>00036 <span class="keyword">delete</span> ptr_;
+<a name="l00037"></a>00037 }
+<a name="l00038"></a>00038
+<a name="l00042"></a><a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a907a9385c1a15dab07aade7466620bf6">00042</a> T <span class="keyword">const</span> *<span class="keyword">get</span>() <span class="keyword">const</span> { <span class="keywordflow">return</span> ptr_; }
+<a name="l00046"></a><a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a30dbc88eb9fde35198774f3ace282712">00046</a> T *<span class="keyword">get</span>() { <span class="keywordflow">return</span> ptr_; }
+<a name="l00047"></a>00047
+<a name="l00051"></a><a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a2c8a19e35ff3c57100b24371854f31b7">00051</a> T <span class="keyword">const</span> &amp;<a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a2c8a19e35ff3c57100b24371854f31b7">operator *</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *ptr_; }
+<a name="l00055"></a><a class="code" href="classboost_1_1locale_1_1hold__ptr.html#af99f3719b755b787b022253aa6f8d1c0">00055</a> T &amp;<a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a2c8a19e35ff3c57100b24371854f31b7">operator *</a>() { <span class="keywordflow">return</span> *ptr_; }
+<a name="l00059"></a><a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a7ae6b54ed5471dd9560904c7ff8a7971">00059</a> T <span class="keyword">const</span> *<a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a7ae6b54ed5471dd9560904c7ff8a7971">operator-&gt;</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ptr_; }
+<a name="l00063"></a><a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a474f2619452b63408e1e761f414328f4">00063</a> T *<a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a474f2619452b63408e1e761f414328f4">operator-&gt;</a>() { <span class="keywordflow">return</span> ptr_; }
+<a name="l00064"></a>00064
+<a name="l00068"></a><a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a2d7b2957c037589b65b2cdd4f61ebe03">00068</a> T *<a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a2d7b2957c037589b65b2cdd4f61ebe03">release</a>() { T *tmp=ptr_; ptr_=0; <span class="keywordflow">return</span> tmp; }
+<a name="l00069"></a>00069
+<a name="l00073"></a><a class="code" href="classboost_1_1locale_1_1hold__ptr.html#acb84b86bb220d663ffe13e5be9cfd72e">00073</a> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1hold__ptr.html#acb84b86bb220d663ffe13e5be9cfd72e">reset</a>(T *p=0)
+<a name="l00074"></a>00074 {
+<a name="l00075"></a>00075 <span class="keywordflow">if</span>(ptr_) <span class="keyword">delete</span> ptr_;
+<a name="l00076"></a>00076 ptr_=p;
+<a name="l00077"></a>00077 }
+<a name="l00079"></a><a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a3e2640b5df80f86aeb68a6ee78dfd6f9">00079</a> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1hold__ptr.html#a3e2640b5df80f86aeb68a6ee78dfd6f9" title="Swap two pointers.">swap</a>(<a class="code" href="classboost_1_1locale_1_1hold__ptr.html" title="a smart pointer similar to std::auto_ptr but it is non-copyable and the underlying object has the sam...">hold_ptr</a> &amp;other)
+<a name="l00080"></a>00080 {
+<a name="l00081"></a>00081 T *tmp=other.ptr_;
+<a name="l00082"></a>00082 other.ptr_=ptr_;
+<a name="l00083"></a>00083 ptr_=tmp;
+<a name="l00084"></a>00084 }
+<a name="l00085"></a>00085 <span class="keyword">private</span>:
+<a name="l00086"></a>00086 T *ptr_;
+<a name="l00087"></a>00087 };
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 } <span class="comment">// locale</span>
+<a name="l00090"></a>00090 } <span class="comment">// boost</span>
+<a name="l00091"></a>00091
+<a name="l00092"></a>00092 <span class="preprocessor">#endif</span>
+<a name="l00093"></a>00093 <span class="preprocessor"></span><span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/index.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/index.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,16 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale</title>
+</head>
+<frameset cols="*,250">
+ <frame src="main.html" name="basefrm"/>
+ <frame src="tree.html" name="treefrm"/>
+ <noframes>
+ <body>
+ Frames are disabled. Click here to go to the main page.
+ </body>
+ </noframes>
+</frameset>
+</html>

Added: trunk/libs/locale/doc/html/index_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/index_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,877 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/boundary/index.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/boundary/index.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_BOUNDARY_INDEX_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_BOUNDARY_INDEX_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#include &lt;boost/locale/boundary/types.hpp&gt;</span>
+<a name="l00013"></a>00013 <span class="preprocessor">#include &lt;boost/locale/boundary/facets.hpp&gt;</span>
+<a name="l00014"></a>00014 <span class="preprocessor">#include &lt;boost/locale/boundary/segment.hpp&gt;</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include &lt;boost/locale/boundary/boundary_point.hpp&gt;</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include &lt;boost/iterator/iterator_facade.hpp&gt;</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;boost/shared_ptr.hpp&gt;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;boost/cstdint.hpp&gt;</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;boost/assert.hpp&gt;</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;locale&gt;</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;iterator&gt;</span>
+<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;algorithm&gt;</span>
+<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;stdexcept&gt;</span>
+<a name="l00030"></a>00030
+<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;iostream&gt;</span>
+<a name="l00032"></a>00032
+<a name="l00033"></a>00033 <span class="keyword">namespace </span>boost {
+<a name="l00034"></a>00034
+<a name="l00035"></a>00035 <span class="keyword">namespace </span>locale {
+<a name="l00036"></a>00036
+<a name="l00037"></a>00037 <span class="keyword">namespace </span>boundary {
+<a name="l00045"></a>00045
+<a name="l00047"></a>00047
+<a name="l00048"></a>00048 <span class="keyword">namespace </span>details {
+<a name="l00049"></a>00049
+<a name="l00050"></a>00050 template&lt;typename IteratorType,typename CategoryType = typename std::iterator_traits&lt;IteratorType&gt;::iterator_category&gt;
+<a name="l00051"></a>00051 <span class="keyword">struct </span>mapping_traits {
+<a name="l00052"></a>00052 <span class="keyword">typedef</span> <span class="keyword">typename</span> std::iterator_traits&lt;IteratorType&gt;::value_type char_type;
+<a name="l00053"></a>00053 <span class="keyword">static</span> <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> map(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> t,IteratorType b,IteratorType e,std::locale <span class="keyword">const</span> &amp;l)
+<a name="l00054"></a>00054 {
+<a name="l00055"></a>00055 std::basic_string&lt;char_type&gt; str(b,e);
+<a name="l00056"></a>00056 <span class="keywordflow">return</span> std::use_facet&lt;boundary_indexing&lt;char_type&gt; &gt;(l).map(t,str.c_str(),str.c_str()+str.size());
+<a name="l00057"></a>00057 }
+<a name="l00058"></a>00058 };
+<a name="l00059"></a>00059
+<a name="l00060"></a>00060 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> SomeIteratorType&gt;
+<a name="l00061"></a>00061 <span class="keyword">struct </span>linear_iterator_traits {
+<a name="l00062"></a>00062 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_linear = <span class="keyword">false</span>;
+<a name="l00063"></a>00063 };
+<a name="l00064"></a>00064
+<a name="l00065"></a>00065 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00066"></a>00066 <span class="keyword">struct </span>linear_iterator_traits&lt;CharType,typename std::basic_string&lt;CharType&gt;::iterator&gt; {
+<a name="l00067"></a>00067 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_linear = <span class="keyword">true</span>;
+<a name="l00068"></a>00068 };
+<a name="l00069"></a>00069
+<a name="l00070"></a>00070 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00071"></a>00071 <span class="keyword">struct </span>linear_iterator_traits&lt;CharType,typename std::basic_string&lt;CharType&gt;::const_iterator&gt; {
+<a name="l00072"></a>00072 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_linear = <span class="keyword">true</span>;
+<a name="l00073"></a>00073 };
+<a name="l00074"></a>00074
+<a name="l00075"></a>00075 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00076"></a>00076 <span class="keyword">struct </span>linear_iterator_traits&lt;CharType,typename std::vector&lt;CharType&gt;::iterator&gt; {
+<a name="l00077"></a>00077 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_linear = <span class="keyword">true</span>;
+<a name="l00078"></a>00078 };
+<a name="l00079"></a>00079
+<a name="l00080"></a>00080 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00081"></a>00081 <span class="keyword">struct </span>linear_iterator_traits&lt;CharType,typename std::vector&lt;CharType&gt;::const_iterator&gt; {
+<a name="l00082"></a>00082 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_linear = <span class="keyword">true</span>;
+<a name="l00083"></a>00083 };
+<a name="l00084"></a>00084
+<a name="l00085"></a>00085 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00086"></a>00086 <span class="keyword">struct </span>linear_iterator_traits&lt;CharType,CharType *&gt; {
+<a name="l00087"></a>00087 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_linear = <span class="keyword">true</span>;
+<a name="l00088"></a>00088 };
+<a name="l00089"></a>00089
+<a name="l00090"></a>00090 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00091"></a>00091 <span class="keyword">struct </span>linear_iterator_traits&lt;CharType,CharType const *&gt; {
+<a name="l00092"></a>00092 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_linear = <span class="keyword">true</span>;
+<a name="l00093"></a>00093 };
+<a name="l00094"></a>00094
+<a name="l00095"></a>00095
+<a name="l00096"></a>00096 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> IteratorType&gt;
+<a name="l00097"></a>00097 <span class="keyword">struct </span>mapping_traits&lt;IteratorType,std::random_access_iterator_tag&gt; {
+<a name="l00098"></a>00098
+<a name="l00099"></a>00099 <span class="keyword">typedef</span> <span class="keyword">typename</span> std::iterator_traits&lt;IteratorType&gt;::value_type char_type;
+<a name="l00100"></a>00100
+<a name="l00101"></a>00101
+<a name="l00102"></a>00102
+<a name="l00103"></a>00103 <span class="keyword">static</span> <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> map(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> t,IteratorType b,IteratorType e,std::locale <span class="keyword">const</span> &amp;l)
+<a name="l00104"></a>00104 {
+<a name="l00105"></a>00105 <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> result;
+<a name="l00106"></a>00106
+<a name="l00107"></a>00107 <span class="comment">//</span>
+<a name="l00108"></a>00108 <span class="comment">// Optimize for most common cases</span>
+<a name="l00109"></a>00109 <span class="comment">//</span>
+<a name="l00110"></a>00110 <span class="comment">// C++0x requires that string is continious in memory and all known</span>
+<a name="l00111"></a>00111 <span class="comment">// string implementations</span>
+<a name="l00112"></a>00112 <span class="comment">// do this because of c_str() support. </span>
+<a name="l00113"></a>00113 <span class="comment">//</span>
+<a name="l00114"></a>00114
+<a name="l00115"></a>00115 <span class="keywordflow">if</span>(linear_iterator_traits&lt;char_type,IteratorType&gt;::is_linear &amp;&amp; b!=e)
+<a name="l00116"></a>00116 {
+<a name="l00117"></a>00117 char_type <span class="keyword">const</span> *begin = &amp;*b;
+<a name="l00118"></a>00118 char_type <span class="keyword">const</span> *end = begin + (e-b);
+<a name="l00119"></a>00119 <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> tmp=std::use_facet&lt;boundary_indexing&lt;char_type&gt; &gt;(l).map(t,begin,end);
+<a name="l00120"></a>00120 result.swap(tmp);
+<a name="l00121"></a>00121 }
+<a name="l00122"></a>00122 <span class="keywordflow">else</span> {
+<a name="l00123"></a>00123 std::basic_string&lt;char_type&gt; str(b,e);
+<a name="l00124"></a>00124 <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> tmp = std::use_facet&lt;boundary_indexing&lt;char_type&gt; &gt;(l).map(t,str.c_str(),str.c_str()+str.size());
+<a name="l00125"></a>00125 result.swap(tmp);
+<a name="l00126"></a>00126 }
+<a name="l00127"></a>00127 <span class="keywordflow">return</span> result;
+<a name="l00128"></a>00128 }
+<a name="l00129"></a>00129 };
+<a name="l00130"></a>00130
+<a name="l00131"></a>00131 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;
+<a name="l00132"></a>00132 <span class="keyword">class </span>mapping {
+<a name="l00133"></a>00133 <span class="keyword">public</span>:
+<a name="l00134"></a>00134 <span class="keyword">typedef</span> BaseIterator base_iterator;
+<a name="l00135"></a>00135 <span class="keyword">typedef</span> <span class="keyword">typename</span> std::iterator_traits&lt;base_iterator&gt;::value_type char_type;
+<a name="l00136"></a>00136
+<a name="l00137"></a>00137
+<a name="l00138"></a>00138 mapping(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type,
+<a name="l00139"></a>00139 base_iterator begin,
+<a name="l00140"></a>00140 base_iterator end,
+<a name="l00141"></a>00141 std::locale <span class="keyword">const</span> &amp;loc)
+<a name="l00142"></a>00142 :
+<a name="l00143"></a>00143 index_(new <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a>()),
+<a name="l00144"></a>00144 begin_(begin),
+<a name="l00145"></a>00145 end_(end)
+<a name="l00146"></a>00146 {
+<a name="l00147"></a>00147 <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> idx=details::mapping_traits&lt;base_iterator&gt;::map(type,begin,end,loc);
+<a name="l00148"></a>00148 index_-&gt;swap(idx);
+<a name="l00149"></a>00149 }
+<a name="l00150"></a>00150
+<a name="l00151"></a>00151 mapping()
+<a name="l00152"></a>00152 {
+<a name="l00153"></a>00153 }
+<a name="l00154"></a>00154
+<a name="l00155"></a>00155 <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> <span class="keyword">const</span> &amp;index()<span class="keyword"> const</span>
+<a name="l00156"></a>00156 <span class="keyword"> </span>{
+<a name="l00157"></a>00157 <span class="keywordflow">return</span> *index_;
+<a name="l00158"></a>00158 }
+<a name="l00159"></a>00159
+<a name="l00160"></a>00160 base_iterator begin()<span class="keyword"> const</span>
+<a name="l00161"></a>00161 <span class="keyword"> </span>{
+<a name="l00162"></a>00162 <span class="keywordflow">return</span> begin_;
+<a name="l00163"></a>00163 }
+<a name="l00164"></a>00164
+<a name="l00165"></a>00165 base_iterator end()<span class="keyword"> const</span>
+<a name="l00166"></a>00166 <span class="keyword"> </span>{
+<a name="l00167"></a>00167 <span class="keywordflow">return</span> end_;
+<a name="l00168"></a>00168 }
+<a name="l00169"></a>00169
+<a name="l00170"></a>00170 <span class="keyword">private</span>:
+<a name="l00171"></a>00171 boost::shared_ptr&lt;index_type&gt; index_;
+<a name="l00172"></a>00172 base_iterator begin_,end_;
+<a name="l00173"></a>00173 };
+<a name="l00174"></a>00174
+<a name="l00175"></a>00175 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;
+<a name="l00176"></a>00176 <span class="keyword">class </span>segment_index_iterator :
+<a name="l00177"></a>00177 <span class="keyword">public</span> boost::iterator_facade&lt;
+<a name="l00178"></a>00178 segment_index_iterator&lt;BaseIterator&gt;,
+<a name="l00179"></a>00179 segment&lt;BaseIterator&gt;,
+<a name="l00180"></a>00180 boost::bidirectional_traversal_tag,
+<a name="l00181"></a>00181 segment&lt;BaseIterator&gt; const &amp;
+<a name="l00182"></a>00182 &gt;
+<a name="l00183"></a>00183 {
+<a name="l00184"></a>00184 <span class="keyword">public</span>:
+<a name="l00185"></a>00185 <span class="keyword">typedef</span> BaseIterator base_iterator;
+<a name="l00186"></a>00186 <span class="keyword">typedef</span> mapping&lt;base_iterator&gt; mapping_type;
+<a name="l00187"></a>00187 <span class="keyword">typedef</span> segment&lt;base_iterator&gt; segment_type;
+<a name="l00188"></a>00188
+<a name="l00189"></a>00189 segment_index_iterator() : current_(0,0),map_(0)
+<a name="l00190"></a>00190 {
+<a name="l00191"></a>00191 }
+<a name="l00192"></a>00192
+<a name="l00193"></a>00193 segment_index_iterator(base_iterator p,mapping_type <span class="keyword">const</span> *map,<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> mask,<span class="keywordtype">bool</span> full_select) :
+<a name="l00194"></a>00194 map_(map),
+<a name="l00195"></a>00195 mask_(mask),
+<a name="l00196"></a>00196 full_select_(full_select)
+<a name="l00197"></a>00197 {
+<a name="l00198"></a>00198 <span class="keyword">set</span>(p);
+<a name="l00199"></a>00199 }
+<a name="l00200"></a>00200 segment_index_iterator(<span class="keywordtype">bool</span> is_begin,mapping_type <span class="keyword">const</span> *map,<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> mask,<span class="keywordtype">bool</span> full_select) :
+<a name="l00201"></a>00201 map_(map),
+<a name="l00202"></a>00202 mask_(mask),
+<a name="l00203"></a>00203 full_select_(full_select)
+<a name="l00204"></a>00204 {
+<a name="l00205"></a>00205 <span class="keywordflow">if</span>(is_begin)
+<a name="l00206"></a>00206 set_begin();
+<a name="l00207"></a>00207 <span class="keywordflow">else</span>
+<a name="l00208"></a>00208 set_end();
+<a name="l00209"></a>00209 }
+<a name="l00210"></a>00210
+<a name="l00211"></a>00211 segment_type <span class="keyword">const</span> &amp;dereference()<span class="keyword"> const</span>
+<a name="l00212"></a>00212 <span class="keyword"> </span>{
+<a name="l00213"></a>00213 <span class="keywordflow">return</span> value_;
+<a name="l00214"></a>00214 }
+<a name="l00215"></a>00215
+<a name="l00216"></a>00216 <span class="keywordtype">bool</span> equal(segment_index_iterator <span class="keyword">const</span> &amp;other)<span class="keyword"> const</span>
+<a name="l00217"></a>00217 <span class="keyword"> </span>{
+<a name="l00218"></a>00218 <span class="keywordflow">return</span> map_ == other.map_ &amp;&amp; current_.second == other.current_.second;
+<a name="l00219"></a>00219 }
+<a name="l00220"></a>00220
+<a name="l00221"></a>00221 <span class="keywordtype">void</span> increment()
+<a name="l00222"></a>00222 {
+<a name="l00223"></a>00223 std::pair&lt;size_t,size_t&gt; next = current_;
+<a name="l00224"></a>00224 <span class="keywordflow">if</span>(full_select_) {
+<a name="l00225"></a>00225 next.first = next.second;
+<a name="l00226"></a>00226 <span class="keywordflow">while</span>(next.second &lt; size()) {
+<a name="l00227"></a>00227 next.second++;
+<a name="l00228"></a>00228 <span class="keywordflow">if</span>(valid_offset(next.second))
+<a name="l00229"></a>00229 <span class="keywordflow">break</span>;
+<a name="l00230"></a>00230 }
+<a name="l00231"></a>00231 <span class="keywordflow">if</span>(next.second == size())
+<a name="l00232"></a>00232 next.first = next.second - 1;
+<a name="l00233"></a>00233 }
+<a name="l00234"></a>00234 <span class="keywordflow">else</span> {
+<a name="l00235"></a>00235 <span class="keywordflow">while</span>(next.second &lt; size()) {
+<a name="l00236"></a>00236 next.first = next.second;
+<a name="l00237"></a>00237 next.second++;
+<a name="l00238"></a>00238 <span class="keywordflow">if</span>(valid_offset(next.second))
+<a name="l00239"></a>00239 <span class="keywordflow">break</span>;
+<a name="l00240"></a>00240 }
+<a name="l00241"></a>00241 }
+<a name="l00242"></a>00242 update_current(next);
+<a name="l00243"></a>00243 }
+<a name="l00244"></a>00244
+<a name="l00245"></a>00245 <span class="keywordtype">void</span> decrement()
+<a name="l00246"></a>00246 {
+<a name="l00247"></a>00247 std::pair&lt;size_t,size_t&gt; next = current_;
+<a name="l00248"></a>00248 <span class="keywordflow">if</span>(full_select_) {
+<a name="l00249"></a>00249 <span class="keywordflow">while</span>(next.second &gt;1) {
+<a name="l00250"></a>00250 next.second--;
+<a name="l00251"></a>00251 <span class="keywordflow">if</span>(valid_offset(next.second))
+<a name="l00252"></a>00252 <span class="keywordflow">break</span>;
+<a name="l00253"></a>00253 }
+<a name="l00254"></a>00254 next.first = next.second;
+<a name="l00255"></a>00255 <span class="keywordflow">while</span>(next.first &gt;0) {
+<a name="l00256"></a>00256 next.first--;
+<a name="l00257"></a>00257 <span class="keywordflow">if</span>(valid_offset(next.first))
+<a name="l00258"></a>00258 <span class="keywordflow">break</span>;
+<a name="l00259"></a>00259 }
+<a name="l00260"></a>00260 }
+<a name="l00261"></a>00261 <span class="keywordflow">else</span> {
+<a name="l00262"></a>00262 <span class="keywordflow">while</span>(next.second &gt;1) {
+<a name="l00263"></a>00263 next.second--;
+<a name="l00264"></a>00264 <span class="keywordflow">if</span>(valid_offset(next.second))
+<a name="l00265"></a>00265 <span class="keywordflow">break</span>;
+<a name="l00266"></a>00266 }
+<a name="l00267"></a>00267 next.first = next.second - 1;
+<a name="l00268"></a>00268 }
+<a name="l00269"></a>00269 update_current(next);
+<a name="l00270"></a>00270 }
+<a name="l00271"></a>00271
+<a name="l00272"></a>00272 <span class="keyword">private</span>:
+<a name="l00273"></a>00273
+<a name="l00274"></a>00274 <span class="keywordtype">void</span> set_end()
+<a name="l00275"></a>00275 {
+<a name="l00276"></a>00276 current_.first = size() - 1;
+<a name="l00277"></a>00277 current_.second = size();
+<a name="l00278"></a>00278 value_ = segment_type(map_-&gt;end(),map_-&gt;end(),0);
+<a name="l00279"></a>00279 }
+<a name="l00280"></a>00280 <span class="keywordtype">void</span> set_begin()
+<a name="l00281"></a>00281 {
+<a name="l00282"></a>00282 current_.first = current_.second = 0;
+<a name="l00283"></a>00283 value_ = segment_type(map_-&gt;begin(),map_-&gt;begin(),0);
+<a name="l00284"></a>00284 increment();
+<a name="l00285"></a>00285 }
+<a name="l00286"></a>00286
+<a name="l00287"></a>00287 <span class="keywordtype">void</span> <span class="keyword">set</span>(base_iterator p)
+<a name="l00288"></a>00288 {
+<a name="l00289"></a>00289 <span class="keywordtype">size_t</span> dist=std::distance(map_-&gt;begin(),p);
+<a name="l00290"></a>00290 index_type::const_iterator b=map_-&gt;index().begin(),e=map_-&gt;index().end();
+<a name="l00291"></a>00291 index_type::const_iterator
+<a name="l00292"></a>00292 boundary_point=std::upper_bound(b,e,break_info(dist));
+<a name="l00293"></a>00293 <span class="keywordflow">while</span>(boundary_point != e &amp;&amp; (boundary_point-&gt;rule &amp; mask_)==0)
+<a name="l00294"></a>00294 boundary_point++;
+<a name="l00295"></a>00295
+<a name="l00296"></a>00296 current_.first = current_.second = boundary_point - b;
+<a name="l00297"></a>00297
+<a name="l00298"></a>00298 <span class="keywordflow">if</span>(full_select_) {
+<a name="l00299"></a>00299 <span class="keywordflow">while</span>(current_.first &gt; 0) {
+<a name="l00300"></a>00300 current_.first --;
+<a name="l00301"></a>00301 <span class="keywordflow">if</span>(valid_offset(current_.first))
+<a name="l00302"></a>00302 <span class="keywordflow">break</span>;
+<a name="l00303"></a>00303 }
+<a name="l00304"></a>00304 }
+<a name="l00305"></a>00305 <span class="keywordflow">else</span> {
+<a name="l00306"></a>00306 <span class="keywordflow">if</span>(current_.first &gt; 0)
+<a name="l00307"></a>00307 current_.first --;
+<a name="l00308"></a>00308 }
+<a name="l00309"></a>00309 value_.first = map_-&gt;begin();
+<a name="l00310"></a>00310 std::advance(value_.first,get_offset(current_.first));
+<a name="l00311"></a>00311 value_.second = value_.first;
+<a name="l00312"></a>00312 std::advance(value_.second,get_offset(current_.second) - get_offset(current_.first));
+<a name="l00313"></a>00313
+<a name="l00314"></a>00314 update_rule();
+<a name="l00315"></a>00315 }
+<a name="l00316"></a>00316
+<a name="l00317"></a>00317 <span class="keywordtype">void</span> update_current(std::pair&lt;size_t,size_t&gt; pos)
+<a name="l00318"></a>00318 {
+<a name="l00319"></a>00319 std::ptrdiff_t first_diff = get_offset(pos.first) - get_offset(current_.first);
+<a name="l00320"></a>00320 std::ptrdiff_t second_diff = get_offset(pos.second) - get_offset(current_.second);
+<a name="l00321"></a>00321 std::advance(value_.first,first_diff);
+<a name="l00322"></a>00322 std::advance(value_.second,second_diff);
+<a name="l00323"></a>00323 current_ = pos;
+<a name="l00324"></a>00324 update_rule();
+<a name="l00325"></a>00325 }
+<a name="l00326"></a>00326
+<a name="l00327"></a>00327 <span class="keywordtype">void</span> update_rule()
+<a name="l00328"></a>00328 {
+<a name="l00329"></a>00329 <span class="keywordflow">if</span>(current_.second != size()) {
+<a name="l00330"></a>00330 value_.rule(index()[current_.second].rule);
+<a name="l00331"></a>00331 }
+<a name="l00332"></a>00332 }
+<a name="l00333"></a>00333 <span class="keywordtype">size_t</span> get_offset(<span class="keywordtype">size_t</span> ind)<span class="keyword"> const</span>
+<a name="l00334"></a>00334 <span class="keyword"> </span>{
+<a name="l00335"></a>00335 <span class="keywordflow">if</span>(ind == size())
+<a name="l00336"></a>00336 <span class="keywordflow">return</span> index().back().offset;
+<a name="l00337"></a>00337 <span class="keywordflow">return</span> index()[ind].offset;
+<a name="l00338"></a>00338 }
+<a name="l00339"></a>00339
+<a name="l00340"></a>00340 <span class="keywordtype">bool</span> valid_offset(<span class="keywordtype">size_t</span> offset)<span class="keyword"> const</span>
+<a name="l00341"></a>00341 <span class="keyword"> </span>{
+<a name="l00342"></a>00342 <span class="keywordflow">return</span> offset == 0
+<a name="l00343"></a>00343 || offset == size() <span class="comment">// make sure we not acess index[size]</span>
+<a name="l00344"></a>00344 || (index()[offset].rule &amp; mask_)!=0;
+<a name="l00345"></a>00345 }
+<a name="l00346"></a>00346
+<a name="l00347"></a>00347 <span class="keywordtype">size_t</span> size()<span class="keyword"> const</span>
+<a name="l00348"></a>00348 <span class="keyword"> </span>{
+<a name="l00349"></a>00349 <span class="keywordflow">return</span> index().size();
+<a name="l00350"></a>00350 }
+<a name="l00351"></a>00351
+<a name="l00352"></a>00352 <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> <span class="keyword">const</span> &amp;index()<span class="keyword"> const</span>
+<a name="l00353"></a>00353 <span class="keyword"> </span>{
+<a name="l00354"></a>00354 <span class="keywordflow">return</span> map_-&gt;index();
+<a name="l00355"></a>00355 }
+<a name="l00356"></a>00356
+<a name="l00357"></a>00357
+<a name="l00358"></a>00358 segment_type value_;
+<a name="l00359"></a>00359 std::pair&lt;size_t,size_t&gt; current_;
+<a name="l00360"></a>00360 mapping_type <span class="keyword">const</span> *map_;
+<a name="l00361"></a>00361 <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> mask_;
+<a name="l00362"></a>00362 <span class="keywordtype">bool</span> full_select_;
+<a name="l00363"></a>00363 };
+<a name="l00364"></a>00364
+<a name="l00365"></a>00365 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;
+<a name="l00366"></a>00366 <span class="keyword">class </span>boundary_point_index_iterator :
+<a name="l00367"></a>00367 <span class="keyword">public</span> boost::iterator_facade&lt;
+<a name="l00368"></a>00368 boundary_point_index_iterator&lt;BaseIterator&gt;,
+<a name="l00369"></a>00369 boundary_point&lt;BaseIterator&gt;,
+<a name="l00370"></a>00370 boost::bidirectional_traversal_tag,
+<a name="l00371"></a>00371 boundary_point&lt;BaseIterator&gt; const &amp;
+<a name="l00372"></a>00372 &gt;
+<a name="l00373"></a>00373 {
+<a name="l00374"></a>00374 <span class="keyword">public</span>:
+<a name="l00375"></a>00375 <span class="keyword">typedef</span> BaseIterator base_iterator;
+<a name="l00376"></a>00376 <span class="keyword">typedef</span> mapping&lt;base_iterator&gt; mapping_type;
+<a name="l00377"></a>00377 <span class="keyword">typedef</span> boundary_point&lt;base_iterator&gt; boundary_point_type;
+<a name="l00378"></a>00378
+<a name="l00379"></a>00379 boundary_point_index_iterator() : current_(0),map_(0)
+<a name="l00380"></a>00380 {
+<a name="l00381"></a>00381 }
+<a name="l00382"></a>00382
+<a name="l00383"></a>00383 boundary_point_index_iterator(<span class="keywordtype">bool</span> is_begin,mapping_type <span class="keyword">const</span> *map,<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> mask) :
+<a name="l00384"></a>00384 map_(map),
+<a name="l00385"></a>00385 mask_(mask)
+<a name="l00386"></a>00386 {
+<a name="l00387"></a>00387 <span class="keywordflow">if</span>(is_begin)
+<a name="l00388"></a>00388 set_begin();
+<a name="l00389"></a>00389 <span class="keywordflow">else</span>
+<a name="l00390"></a>00390 set_end();
+<a name="l00391"></a>00391 }
+<a name="l00392"></a>00392 boundary_point_index_iterator(base_iterator p,mapping_type <span class="keyword">const</span> *map,<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> mask) :
+<a name="l00393"></a>00393 map_(map),
+<a name="l00394"></a>00394 mask_(mask)
+<a name="l00395"></a>00395 {
+<a name="l00396"></a>00396 <span class="keyword">set</span>(p);
+<a name="l00397"></a>00397 }
+<a name="l00398"></a>00398
+<a name="l00399"></a>00399 boundary_point_type <span class="keyword">const</span> &amp;dereference()<span class="keyword"> const</span>
+<a name="l00400"></a>00400 <span class="keyword"> </span>{
+<a name="l00401"></a>00401 <span class="keywordflow">return</span> value_;
+<a name="l00402"></a>00402 }
+<a name="l00403"></a>00403
+<a name="l00404"></a>00404 <span class="keywordtype">bool</span> equal(boundary_point_index_iterator <span class="keyword">const</span> &amp;other)<span class="keyword"> const</span>
+<a name="l00405"></a>00405 <span class="keyword"> </span>{
+<a name="l00406"></a>00406 <span class="keywordflow">return</span> map_ == other.map_ &amp;&amp; current_ == other.current_;
+<a name="l00407"></a>00407 }
+<a name="l00408"></a>00408
+<a name="l00409"></a>00409 <span class="keywordtype">void</span> increment()
+<a name="l00410"></a>00410 {
+<a name="l00411"></a>00411 <span class="keywordtype">size_t</span> next = current_;
+<a name="l00412"></a>00412 <span class="keywordflow">while</span>(next &lt; size()) {
+<a name="l00413"></a>00413 next++;
+<a name="l00414"></a>00414 <span class="keywordflow">if</span>(valid_offset(next))
+<a name="l00415"></a>00415 <span class="keywordflow">break</span>;
+<a name="l00416"></a>00416 }
+<a name="l00417"></a>00417 update_current(next);
+<a name="l00418"></a>00418 }
+<a name="l00419"></a>00419
+<a name="l00420"></a>00420 <span class="keywordtype">void</span> decrement()
+<a name="l00421"></a>00421 {
+<a name="l00422"></a>00422 <span class="keywordtype">size_t</span> next = current_;
+<a name="l00423"></a>00423 <span class="keywordflow">while</span>(next&gt;0) {
+<a name="l00424"></a>00424 next--;
+<a name="l00425"></a>00425 <span class="keywordflow">if</span>(valid_offset(next))
+<a name="l00426"></a>00426 <span class="keywordflow">break</span>;
+<a name="l00427"></a>00427 }
+<a name="l00428"></a>00428 update_current(next);
+<a name="l00429"></a>00429 }
+<a name="l00430"></a>00430
+<a name="l00431"></a>00431 <span class="keyword">private</span>:
+<a name="l00432"></a>00432 <span class="keywordtype">void</span> set_end()
+<a name="l00433"></a>00433 {
+<a name="l00434"></a>00434 current_ = size();
+<a name="l00435"></a>00435 value_ = boundary_point_type(map_-&gt;end(),0);
+<a name="l00436"></a>00436 }
+<a name="l00437"></a>00437 <span class="keywordtype">void</span> set_begin()
+<a name="l00438"></a>00438 {
+<a name="l00439"></a>00439 current_ = 0;
+<a name="l00440"></a>00440 value_ = boundary_point_type(map_-&gt;begin(),0);
+<a name="l00441"></a>00441 }
+<a name="l00442"></a>00442
+<a name="l00443"></a>00443 <span class="keywordtype">void</span> <span class="keyword">set</span>(base_iterator p)
+<a name="l00444"></a>00444 {
+<a name="l00445"></a>00445 <span class="keywordtype">size_t</span> dist = std::distance(map_-&gt;begin(),p);
+<a name="l00446"></a>00446
+<a name="l00447"></a>00447 index_type::const_iterator b=index().begin();
+<a name="l00448"></a>00448 index_type::const_iterator e=index().end();
+<a name="l00449"></a>00449 index_type::const_iterator ptr = std::lower_bound(b,e,break_info(dist));
+<a name="l00450"></a>00450
+<a name="l00451"></a>00451 <span class="keywordflow">if</span>(ptr==index().end())
+<a name="l00452"></a>00452 current_=size()-1;
+<a name="l00453"></a>00453 <span class="keywordflow">else</span>
+<a name="l00454"></a>00454 current_=ptr - index().begin();
+<a name="l00455"></a>00455
+<a name="l00456"></a>00456 <span class="keywordflow">while</span>(!valid_offset(current_))
+<a name="l00457"></a>00457 current_ ++;
+<a name="l00458"></a>00458
+<a name="l00459"></a>00459 std::ptrdiff_t diff = get_offset(current_) - dist;
+<a name="l00460"></a>00460 std::advance(p,diff);
+<a name="l00461"></a>00461 value_.iterator(p);
+<a name="l00462"></a>00462 update_rule();
+<a name="l00463"></a>00463 }
+<a name="l00464"></a>00464
+<a name="l00465"></a>00465 <span class="keywordtype">void</span> update_current(<span class="keywordtype">size_t</span> pos)
+<a name="l00466"></a>00466 {
+<a name="l00467"></a>00467 std::ptrdiff_t diff = get_offset(pos) - get_offset(current_);
+<a name="l00468"></a>00468 base_iterator i=value_.iterator();
+<a name="l00469"></a>00469 std::advance(i,diff);
+<a name="l00470"></a>00470 current_ = pos;
+<a name="l00471"></a>00471 value_.iterator(i);
+<a name="l00472"></a>00472 update_rule();
+<a name="l00473"></a>00473 }
+<a name="l00474"></a>00474
+<a name="l00475"></a>00475 <span class="keywordtype">void</span> update_rule()
+<a name="l00476"></a>00476 {
+<a name="l00477"></a>00477 <span class="keywordflow">if</span>(current_ != size()) {
+<a name="l00478"></a>00478 value_.rule(index()[current_].rule);
+<a name="l00479"></a>00479 }
+<a name="l00480"></a>00480 }
+<a name="l00481"></a>00481 <span class="keywordtype">size_t</span> get_offset(<span class="keywordtype">size_t</span> ind)<span class="keyword"> const</span>
+<a name="l00482"></a>00482 <span class="keyword"> </span>{
+<a name="l00483"></a>00483 <span class="keywordflow">if</span>(ind == size())
+<a name="l00484"></a>00484 <span class="keywordflow">return</span> index().back().offset;
+<a name="l00485"></a>00485 <span class="keywordflow">return</span> index()[ind].offset;
+<a name="l00486"></a>00486 }
+<a name="l00487"></a>00487
+<a name="l00488"></a>00488 <span class="keywordtype">bool</span> valid_offset(<span class="keywordtype">size_t</span> offset)<span class="keyword"> const</span>
+<a name="l00489"></a>00489 <span class="keyword"> </span>{
+<a name="l00490"></a>00490 <span class="keywordflow">return</span> offset == 0
+<a name="l00491"></a>00491 || offset + 1 &gt;= size() <span class="comment">// last and first are always valid regardless of mark</span>
+<a name="l00492"></a>00492 || (index()[offset].rule &amp; mask_)!=0;
+<a name="l00493"></a>00493 }
+<a name="l00494"></a>00494
+<a name="l00495"></a>00495 <span class="keywordtype">size_t</span> size()<span class="keyword"> const</span>
+<a name="l00496"></a>00496 <span class="keyword"> </span>{
+<a name="l00497"></a>00497 <span class="keywordflow">return</span> index().size();
+<a name="l00498"></a>00498 }
+<a name="l00499"></a>00499
+<a name="l00500"></a>00500 <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> <span class="keyword">const</span> &amp;index()<span class="keyword"> const</span>
+<a name="l00501"></a>00501 <span class="keyword"> </span>{
+<a name="l00502"></a>00502 <span class="keywordflow">return</span> map_-&gt;index();
+<a name="l00503"></a>00503 }
+<a name="l00504"></a>00504
+<a name="l00505"></a>00505
+<a name="l00506"></a>00506 boundary_point_type value_;
+<a name="l00507"></a>00507 <span class="keywordtype">size_t</span> current_;
+<a name="l00508"></a>00508 mapping_type <span class="keyword">const</span> *map_;
+<a name="l00509"></a>00509 <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> mask_;
+<a name="l00510"></a>00510 };
+<a name="l00511"></a>00511
+<a name="l00512"></a>00512
+<a name="l00513"></a>00513 } <span class="comment">// details</span>
+<a name="l00514"></a>00514
+<a name="l00516"></a>00516
+<a name="l00517"></a>00517 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;
+<a name="l00518"></a>00518 <span class="keyword">class </span>segment_index;
+<a name="l00519"></a>00519
+<a name="l00520"></a>00520 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;
+<a name="l00521"></a>00521 <span class="keyword">class </span>boundary_point_index;
+<a name="l00522"></a>00522
+<a name="l00523"></a>00523
+<a name="l00575"></a>00575
+<a name="l00576"></a>00576 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;
+<a name="l00577"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">00577</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> {
+<a name="l00578"></a>00578 <span class="keyword">public</span>:
+<a name="l00579"></a>00579
+<a name="l00583"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">00583</a> <span class="keyword">typedef</span> BaseIterator base_iterator;
+<a name="l00584"></a>00584 <span class="preprocessor"> #ifdef BOOST_LOCALE_DOXYGEN</span>
+<a name="l00585"></a>00585 <span class="preprocessor"></span>
+<a name="l00586"></a>00586
+<a name="l00587"></a>00587
+<a name="l00588"></a>00588
+<a name="l00589"></a>00589
+<a name="l00590"></a>00590
+<a name="l00591"></a>00591
+<a name="l00592"></a>00592
+<a name="l00593"></a>00593
+<a name="l00594"></a>00594
+<a name="l00595"></a>00595
+<a name="l00596"></a>00596
+<a name="l00597"></a>00597
+<a name="l00598"></a>00598
+<a name="l00599"></a><a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">00599</a> <span class="keyword">typedef</span> unspecified_iterator_type iterator;
+<a name="l00603"></a><a class="code" href="group__boundary.html#ga5f8e61b5babc3f0fa95f5fb8acae3724">00603</a> <span class="keyword">typedef</span> unspecified_iterator_type const_iterator;
+<a name="l00604"></a>00604 <span class="preprocessor"> #else</span>
+<a name="l00605"></a>00605 <span class="preprocessor"></span> <span class="keyword">typedef</span> details::segment_index_iterator&lt;base_iterator&gt; iterator;
+<a name="l00606"></a>00606 <span class="keyword">typedef</span> details::segment_index_iterator&lt;base_iterator&gt; const_iterator;
+<a name="l00607"></a>00607 <span class="preprocessor"> #endif</span>
+<a name="l00608"></a>00608 <span class="preprocessor"></span>
+<a name="l00609"></a>00609
+<a name="l00610"></a>00610
+<a name="l00611"></a>00611
+<a name="l00612"></a><a class="code" href="group__boundary.html#ga067c663d18faee08adb3355701ae72ba">00612</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;base_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">value_type</a>;
+<a name="l00613"></a>00613
+<a name="l00623"></a><a class="code" href="group__boundary.html#ga2c354f4cc03677b58c97038cd84dc465">00623</a> <a class="code" href="group__boundary.html#ga2c354f4cc03677b58c97038cd84dc465">segment_index</a>() : mask_(0xFFFFFFFFu),full_select_(false)
+<a name="l00624"></a>00624 {
+<a name="l00625"></a>00625 }
+<a name="l00630"></a><a class="code" href="group__boundary.html#ga06ddc335e95479ec51e9b16d0f829bb3">00630</a> <a class="code" href="group__boundary.html#ga2c354f4cc03677b58c97038cd84dc465">segment_index</a>(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type,
+<a name="l00631"></a>00631 <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> begin,
+<a name="l00632"></a>00632 <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> end,
+<a name="l00633"></a>00633 <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> mask,
+<a name="l00634"></a>00634 std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00635"></a>00635 :
+<a name="l00636"></a>00636 map_(type,begin,end,loc),
+<a name="l00637"></a>00637 mask_(mask),
+<a name="l00638"></a>00638 full_select_(false)
+<a name="l00639"></a>00639 {
+<a name="l00640"></a>00640 }
+<a name="l00645"></a><a class="code" href="group__boundary.html#ga46a5f584d5a1a43ad4bc0fff07183fcc">00645</a> <a class="code" href="group__boundary.html#ga2c354f4cc03677b58c97038cd84dc465">segment_index</a>(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type,
+<a name="l00646"></a>00646 <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> begin,
+<a name="l00647"></a>00647 <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> end,
+<a name="l00648"></a>00648 std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00649"></a>00649 :
+<a name="l00650"></a>00650 map_(type,begin,end,loc),
+<a name="l00651"></a>00651 mask_(0xFFFFFFFFu),
+<a name="l00652"></a>00652 full_select_(false)
+<a name="l00653"></a>00653 {
+<a name="l00654"></a>00654 }
+<a name="l00655"></a>00655
+<a name="l00666"></a>00666 <a class="code" href="group__boundary.html#ga2c354f4cc03677b58c97038cd84dc465">segment_index</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index&lt;base_iterator&gt;</a> <span class="keyword">const</span> &amp;);
+<a name="l00677"></a>00677 <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a> <span class="keyword">const</span> &amp;<a class="code" href="group__boundary.html#gae7941dc874ca05d2ef2a03f781c5b78a">operator = </a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index&lt;base_iterator&gt;</a> <span class="keyword">const</span> &amp;);
+<a name="l00678"></a>00678
+<a name="l00679"></a>00679
+<a name="l00686"></a><a class="code" href="group__boundary.html#gafa2a756b10d3522743204b45b794bb3e">00686</a> <span class="keywordtype">void</span> <a class="code" href="group__boundary.html#gafa2a756b10d3522743204b45b794bb3e">map</a>(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> begin,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> end,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00687"></a>00687 {
+<a name="l00688"></a>00688 map_ = mapping_type(type,begin,end,loc);
+<a name="l00689"></a>00689 }
+<a name="l00690"></a>00690
+<a name="l00700"></a><a class="code" href="group__boundary.html#gaf74ff9c86c177efa8f74856277d659af">00700</a> <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a> <a class="code" href="group__boundary.html#gaf74ff9c86c177efa8f74856277d659af">begin</a>()<span class="keyword"> const</span>
+<a name="l00701"></a>00701 <span class="keyword"> </span>{
+<a name="l00702"></a>00702 <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a>(<span class="keyword">true</span>,&amp;map_,mask_,full_select_);
+<a name="l00703"></a>00703 }
+<a name="l00704"></a>00704
+<a name="l00712"></a><a class="code" href="group__boundary.html#ga8757062d2446b35675b585651c5fea9f">00712</a> <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a> <a class="code" href="group__boundary.html#ga8757062d2446b35675b585651c5fea9f">end</a>()<span class="keyword"> const</span>
+<a name="l00713"></a>00713 <span class="keyword"> </span>{
+<a name="l00714"></a>00714 <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a>(<span class="keyword">false</span>,&amp;map_,mask_,full_select_);
+<a name="l00715"></a>00715 }
+<a name="l00716"></a>00716
+<a name="l00734"></a><a class="code" href="group__boundary.html#ga2480236106971797460187777f2a4411">00734</a> <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a> <a class="code" href="group__boundary.html#ga2480236106971797460187777f2a4411">find</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> p)<span class="keyword"> const</span>
+<a name="l00735"></a>00735 <span class="keyword"> </span>{
+<a name="l00736"></a>00736 <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a>(p,&amp;map_,mask_,full_select_);
+<a name="l00737"></a>00737 }
+<a name="l00738"></a>00738
+<a name="l00742"></a><a class="code" href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a">00742</a> <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> <a class="code" href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a">rule</a>()<span class="keyword"> const</span>
+<a name="l00743"></a>00743 <span class="keyword"> </span>{
+<a name="l00744"></a>00744 <span class="keywordflow">return</span> mask_;
+<a name="l00745"></a>00745 }
+<a name="l00749"></a><a class="code" href="group__boundary.html#gad19735180401edb15acbdbbeb21e5a73">00749</a> <span class="keywordtype">void</span> <a class="code" href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a">rule</a>(<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> v)
+<a name="l00750"></a>00750 {
+<a name="l00751"></a>00751 mask_ = v;
+<a name="l00752"></a>00752 }
+<a name="l00753"></a>00753
+<a name="l00766"></a>00766
+<a name="l00767"></a><a class="code" href="group__boundary.html#gace7faa10d536c85df0f2d5cac85f2bbc">00767</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#gace7faa10d536c85df0f2d5cac85f2bbc">full_select</a>()<span class="keyword"> const </span>
+<a name="l00768"></a>00768 <span class="keyword"> </span>{
+<a name="l00769"></a>00769 <span class="keywordflow">return</span> full_select_;
+<a name="l00770"></a>00770 }
+<a name="l00771"></a>00771
+<a name="l00784"></a>00784
+<a name="l00785"></a><a class="code" href="group__boundary.html#ga205fd51daa439a18527675e663a0802f">00785</a> <span class="keywordtype">void</span> <a class="code" href="group__boundary.html#gace7faa10d536c85df0f2d5cac85f2bbc">full_select</a>(<span class="keywordtype">bool</span> v)
+<a name="l00786"></a>00786 {
+<a name="l00787"></a>00787 full_select_ = v;
+<a name="l00788"></a>00788 }
+<a name="l00789"></a>00789
+<a name="l00790"></a>00790 <span class="keyword">private</span>:
+<a name="l00791"></a>00791 <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a>&lt;<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html#a06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a>&gt;;
+<a name="l00792"></a>00792 <span class="keyword">typedef</span> details::mapping&lt;base_iterator&gt; mapping_type;
+<a name="l00793"></a>00793 mapping_type map_;
+<a name="l00794"></a>00794 <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> mask_;
+<a name="l00795"></a>00795 <span class="keywordtype">bool</span> full_select_;
+<a name="l00796"></a>00796 };
+<a name="l00797"></a>00797
+<a name="l00844"></a>00844
+<a name="l00845"></a>00845
+<a name="l00846"></a>00846 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;
+<a name="l00847"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">00847</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a> {
+<a name="l00848"></a>00848 <span class="keyword">public</span>:
+<a name="l00852"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">00852</a> <span class="keyword">typedef</span> BaseIterator base_iterator;
+<a name="l00853"></a>00853 <span class="preprocessor"> #ifdef BOOST_LOCALE_DOXYGEN</span>
+<a name="l00854"></a>00854 <span class="preprocessor"></span>
+<a name="l00855"></a>00855
+<a name="l00856"></a>00856
+<a name="l00857"></a>00857
+<a name="l00858"></a>00858
+<a name="l00859"></a>00859
+<a name="l00860"></a>00860
+<a name="l00861"></a>00861
+<a name="l00862"></a>00862
+<a name="l00863"></a>00863
+<a name="l00864"></a>00864
+<a name="l00865"></a>00865
+<a name="l00866"></a>00866
+<a name="l00867"></a>00867
+<a name="l00868"></a><a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">00868</a> <span class="keyword">typedef</span> unspecified_iterator_type iterator;
+<a name="l00872"></a><a class="code" href="group__boundary.html#gac9ce9158eb2fb030c1baf93376203d16">00872</a> <span class="keyword">typedef</span> unspecified_iterator_type const_iterator;
+<a name="l00873"></a>00873 <span class="preprocessor"> #else</span>
+<a name="l00874"></a>00874 <span class="preprocessor"></span> <span class="keyword">typedef</span> details::boundary_point_index_iterator&lt;base_iterator&gt; iterator;
+<a name="l00875"></a>00875 <span class="keyword">typedef</span> details::boundary_point_index_iterator&lt;base_iterator&gt; const_iterator;
+<a name="l00876"></a>00876 <span class="preprocessor"> #endif</span>
+<a name="l00877"></a>00877 <span class="preprocessor"></span>
+<a name="l00878"></a>00878
+<a name="l00879"></a>00879
+<a name="l00880"></a>00880
+<a name="l00881"></a><a class="code" href="group__boundary.html#ga7f7328a860cf485a4bd8f17658c291e1">00881</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">boundary_point&lt;base_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" title="This class represents a boundary point in the text.">value_type</a>;
+<a name="l00882"></a>00882
+<a name="l00892"></a><a class="code" href="group__boundary.html#gaba6993dd50ad8cf2db8921e5cf668a69">00892</a> <a class="code" href="group__boundary.html#gaba6993dd50ad8cf2db8921e5cf668a69">boundary_point_index</a>() : mask_(0xFFFFFFFFu)
+<a name="l00893"></a>00893 {
+<a name="l00894"></a>00894 }
+<a name="l00895"></a>00895
+<a name="l00900"></a><a class="code" href="group__boundary.html#gacc189288792012cfdb21c07fddbadc4f">00900</a> <a class="code" href="group__boundary.html#gaba6993dd50ad8cf2db8921e5cf668a69">boundary_point_index</a>(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type,
+<a name="l00901"></a>00901 <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> begin,
+<a name="l00902"></a>00902 <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> end,
+<a name="l00903"></a>00903 <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> mask,
+<a name="l00904"></a>00904 std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00905"></a>00905 :
+<a name="l00906"></a>00906 map_(type,begin,end,loc),
+<a name="l00907"></a>00907 mask_(mask)
+<a name="l00908"></a>00908 {
+<a name="l00909"></a>00909 }
+<a name="l00914"></a><a class="code" href="group__boundary.html#ga9b926379fa2fcc7f87dc067953049d69">00914</a> <a class="code" href="group__boundary.html#gaba6993dd50ad8cf2db8921e5cf668a69">boundary_point_index</a>(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type,
+<a name="l00915"></a>00915 <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> begin,
+<a name="l00916"></a>00916 <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> end,
+<a name="l00917"></a>00917 std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00918"></a>00918 :
+<a name="l00919"></a>00919 map_(type,begin,end,loc),
+<a name="l00920"></a>00920 mask_(0xFFFFFFFFu)
+<a name="l00921"></a>00921 {
+<a name="l00922"></a>00922 }
+<a name="l00923"></a>00923
+<a name="l00934"></a>00934 <a class="code" href="group__boundary.html#gaba6993dd50ad8cf2db8921e5cf668a69">boundary_point_index</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index&lt;base_iterator&gt;</a> <span class="keyword">const</span> &amp;other);
+<a name="l00945"></a>00945 <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index</a> <span class="keyword">const</span> &amp;<a class="code" href="group__boundary.html#ga83d57b993b00686b2cac711667c6a931">operator=</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index&lt;base_iterator&gt;</a> <span class="keyword">const</span> &amp;other);
+<a name="l00946"></a>00946
+<a name="l00953"></a><a class="code" href="group__boundary.html#ga6b4b5d5cf80b55302a88e7b36c812418">00953</a> <span class="keywordtype">void</span> <a class="code" href="group__boundary.html#ga6b4b5d5cf80b55302a88e7b36c812418">map</a>(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type,<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> begin,<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> end,std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00954"></a>00954 {
+<a name="l00955"></a>00955 map_ = mapping_type(type,begin,end,loc);
+<a name="l00956"></a>00956 }
+<a name="l00957"></a>00957
+<a name="l00967"></a><a class="code" href="group__boundary.html#ga56f42a32f0378b6e157671f9e17bd66f">00967</a> <a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a> <a class="code" href="group__boundary.html#ga56f42a32f0378b6e157671f9e17bd66f">begin</a>()<span class="keyword"> const</span>
+<a name="l00968"></a>00968 <span class="keyword"> </span>{
+<a name="l00969"></a>00969 <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a>(<span class="keyword">true</span>,&amp;map_,mask_);
+<a name="l00970"></a>00970 }
+<a name="l00971"></a>00971
+<a name="l00981"></a><a class="code" href="group__boundary.html#gaf3d66d578e32a63b3f0ffbb59740667b">00981</a> <a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a> <a class="code" href="group__boundary.html#gaf3d66d578e32a63b3f0ffbb59740667b">end</a>()<span class="keyword"> const</span>
+<a name="l00982"></a>00982 <span class="keyword"> </span>{
+<a name="l00983"></a>00983 <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a>(<span class="keyword">false</span>,&amp;map_,mask_);
+<a name="l00984"></a>00984 }
+<a name="l00985"></a>00985
+<a name="l00999"></a><a class="code" href="group__boundary.html#ga0bb71a287afca990e85b17246568492d">00999</a> <a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a> <a class="code" href="group__boundary.html#ga0bb71a287afca990e85b17246568492d">find</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> p)<span class="keyword"> const</span>
+<a name="l01000"></a>01000 <span class="keyword"> </span>{
+<a name="l01001"></a>01001 <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a>(p,&amp;map_,mask_);
+<a name="l01002"></a>01002 }
+<a name="l01003"></a>01003
+<a name="l01007"></a><a class="code" href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03">01007</a> <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> <a class="code" href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03">rule</a>()<span class="keyword"> const</span>
+<a name="l01008"></a>01008 <span class="keyword"> </span>{
+<a name="l01009"></a>01009 <span class="keywordflow">return</span> mask_;
+<a name="l01010"></a>01010 }
+<a name="l01014"></a><a class="code" href="group__boundary.html#ga56e63913f51109e05a24a7136472a975">01014</a> <span class="keywordtype">void</span> <a class="code" href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03">rule</a>(<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> v)
+<a name="l01015"></a>01015 {
+<a name="l01016"></a>01016 mask_ = v;
+<a name="l01017"></a>01017 }
+<a name="l01018"></a>01018
+<a name="l01019"></a>01019 <span class="keyword">private</span>:
+<a name="l01020"></a>01020
+<a name="l01021"></a>01021 <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index</a>&lt;<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html#ab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a>&gt;;
+<a name="l01022"></a>01022 <span class="keyword">typedef</span> details::mapping&lt;base_iterator&gt; mapping_type;
+<a name="l01023"></a>01023 mapping_type map_;
+<a name="l01024"></a>01024 <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> mask_;
+<a name="l01025"></a>01025 };
+<a name="l01026"></a>01026
+<a name="l01028"></a>01028 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;
+<a name="l01029"></a>01029 <a class="code" href="group__boundary.html#ga2c354f4cc03677b58c97038cd84dc465">segment_index&lt;BaseIterator&gt;::segment_index</a>(boundary_point_index&lt;BaseIterator&gt; <span class="keyword">const</span> &amp;other) :
+<a name="l01030"></a>01030 map_(other.map_),
+<a name="l01031"></a>01031 mask_(0xFFFFFFFFu),
+<a name="l01032"></a>01032 full_select_(false)
+<a name="l01033"></a>01033 {
+<a name="l01034"></a>01034 }
+<a name="l01035"></a>01035
+<a name="l01036"></a>01036 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;
+<a name="l01037"></a>01037 <a class="code" href="group__boundary.html#gaba6993dd50ad8cf2db8921e5cf668a69">boundary_point_index&lt;BaseIterator&gt;::boundary_point_index</a>(segment_index&lt;BaseIterator&gt; <span class="keyword">const</span> &amp;other) :
+<a name="l01038"></a>01038 map_(other.map_),
+<a name="l01039"></a>01039 mask_(0xFFFFFFFFu)
+<a name="l01040"></a>01040 {
+<a name="l01041"></a>01041 }
+<a name="l01042"></a>01042
+<a name="l01043"></a>01043 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;
+<a name="l01044"></a>01044 segment_index&lt;BaseIterator&gt; <span class="keyword">const</span> &amp;<a class="code" href="group__boundary.html#gae7941dc874ca05d2ef2a03f781c5b78a">segment_index&lt;BaseIterator&gt;::operator=</a>(boundary_point_index&lt;BaseIterator&gt; <span class="keyword">const</span> &amp;other)
+<a name="l01045"></a>01045 {
+<a name="l01046"></a>01046 map_ = other.map_;
+<a name="l01047"></a>01047 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l01048"></a>01048 }
+<a name="l01049"></a>01049
+<a name="l01050"></a>01050 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;
+<a name="l01051"></a>01051 boundary_point_index&lt;BaseIterator&gt; <span class="keyword">const</span> &amp;<a class="code" href="group__boundary.html#ga83d57b993b00686b2cac711667c6a931">boundary_point_index&lt;BaseIterator&gt;::operator=</a>(segment_index&lt;BaseIterator&gt; <span class="keyword">const</span> &amp;other)
+<a name="l01052"></a>01052 {
+<a name="l01053"></a>01053 map_ = other.map_;
+<a name="l01054"></a>01054 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l01055"></a>01055 }
+<a name="l01057"></a>01057
+<a name="l01058"></a><a class="code" href="group__boundary.html#gad4785439a3f03ee455c93830b8f1366c">01058</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index&lt;std::string::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">ssegment_index</a>;
+<a name="l01059"></a><a class="code" href="group__boundary.html#ga579cfdfccf9c682ac4dae5fb65d4a843">01059</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index&lt;std::wstring::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">wssegment_index</a>;
+<a name="l01060"></a>01060 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR16_T</span>
+<a name="l01061"></a><a class="code" href="group__boundary.html#ga6fff9ef7a0971ed3c686f3e8d5c56bf4">01061</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index&lt;std::u16string::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">u16ssegment_index</a>;
+<a name="l01062"></a>01062 <span class="preprocessor"> #endif</span>
+<a name="l01063"></a>01063 <span class="preprocessor"></span><span class="preprocessor"> #ifdef BOOST_HAS_CHAR32_T</span>
+<a name="l01064"></a><a class="code" href="group__boundary.html#ga3a7b82f5a7e29bd079dd48ca13b79f20">01064</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index&lt;std::u32string::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">u32ssegment_index</a>;
+<a name="l01065"></a>01065 <span class="preprocessor"> #endif</span>
+<a name="l01066"></a>01066 <span class="preprocessor"></span>
+<a name="l01067"></a><a class="code" href="group__boundary.html#ga82c153957bff0be844a5ce4490d4e7f8">01067</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index&lt;char const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">csegment_index</a>;
+<a name="l01068"></a><a class="code" href="group__boundary.html#ga29ce0d14d0466a28c205b5dc9d0d6a36">01068</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index&lt;wchar_t const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">wcsegment_index</a>;
+<a name="l01069"></a>01069 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR16_T</span>
+<a name="l01070"></a><a class="code" href="group__boundary.html#gaa20a99d93e3202680bb0660481e1d414">01070</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index&lt;char16_t const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">u16csegment_index</a>;
+<a name="l01071"></a>01071 <span class="preprocessor"> #endif</span>
+<a name="l01072"></a>01072 <span class="preprocessor"></span><span class="preprocessor"> #ifdef BOOST_HAS_CHAR32_T</span>
+<a name="l01073"></a><a class="code" href="group__boundary.html#gaacc781106af79ec27693fa8012d54cb9">01073</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">segment_index&lt;char32_t const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">u32csegment_index</a>;
+<a name="l01074"></a>01074 <span class="preprocessor"> #endif</span>
+<a name="l01075"></a>01075 <span class="preprocessor"></span>
+<a name="l01076"></a><a class="code" href="group__boundary.html#ga485e82cdd9debd15dc4fd6f57be10727">01076</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index&lt;std::string::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">sboundary_point_index</a>;
+<a name="l01077"></a><a class="code" href="group__boundary.html#gad539aad8c788c8e90cdf08aeed5df4a3">01077</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index&lt;std::wstring::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">wsboundary_point_index</a>;
+<a name="l01078"></a>01078 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR16_T</span>
+<a name="l01079"></a><a class="code" href="group__boundary.html#gaba43501d4ed1922c9446db3bf14a918f">01079</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index&lt;std::u16string::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">u16sboundary_point_index</a>;
+<a name="l01080"></a>01080 <span class="preprocessor"> #endif</span>
+<a name="l01081"></a>01081 <span class="preprocessor"></span><span class="preprocessor"> #ifdef BOOST_HAS_CHAR32_T</span>
+<a name="l01082"></a><a class="code" href="group__boundary.html#ga1379f8968dd611be0b59d04218a1aae8">01082</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index&lt;std::u32string::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">u32sboundary_point_index</a>;
+<a name="l01083"></a>01083 <span class="preprocessor"> #endif</span>
+<a name="l01084"></a>01084 <span class="preprocessor"></span>
+<a name="l01085"></a><a class="code" href="group__boundary.html#ga31f0617de9388783205020a8679b40af">01085</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index&lt;char const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">cboundary_point_index</a>;
+<a name="l01086"></a><a class="code" href="group__boundary.html#gabcb5bcc788909afeb8c68d857284cb59">01086</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index&lt;wchar_t const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">wcboundary_point_index</a>;
+<a name="l01087"></a>01087 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR16_T</span>
+<a name="l01088"></a><a class="code" href="group__boundary.html#ga1a89414f77d0b11b7fa8c3a5fa896266">01088</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index&lt;char16_t const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">u16cboundary_point_index</a>;
+<a name="l01089"></a>01089 <span class="preprocessor"> #endif</span>
+<a name="l01090"></a>01090 <span class="preprocessor"></span><span class="preprocessor"> #ifdef BOOST_HAS_CHAR32_T</span>
+<a name="l01091"></a><a class="code" href="group__boundary.html#ga1d16a23d328240464f9068cf58fb38d7">01091</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">boundary_point_index&lt;char32_t const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" title="This class holds an index of boundary points and allows iterating over them.">u32cboundary_point_index</a>;
+<a name="l01092"></a>01092 <span class="preprocessor"> #endif</span>
+<a name="l01093"></a>01093 <span class="preprocessor"></span>
+<a name="l01094"></a>01094
+<a name="l01095"></a>01095
+<a name="l01096"></a>01096 } <span class="comment">// boundary</span>
+<a name="l01097"></a>01097
+<a name="l01098"></a>01098 } <span class="comment">// locale</span>
+<a name="l01099"></a>01099 } <span class="comment">// boost</span>
+<a name="l01100"></a>01100
+<a name="l01107"></a>01107
+<a name="l01108"></a>01108 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l01109"></a>01109 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l01110"></a>01110 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l01111"></a>01111 <span class="preprocessor"></span>
+<a name="l01112"></a>01112 <span class="preprocessor">#endif</span>
+<a name="l01113"></a>01113 <span class="preprocessor"></span><span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/info_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/info_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/info.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/info.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_INFO_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_INFO_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span><span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00011"></a>00011 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00012"></a>00012 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#include &lt;locale&gt;</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00017"></a>00017
+<a name="l00018"></a>00018
+<a name="l00019"></a>00019 <span class="keyword">namespace </span>boost {
+<a name="l00020"></a>00020 <span class="keyword">namespace </span>locale {
+<a name="l00021"></a>00021
+<a name="l00027"></a><a class="code" href="classboost_1_1locale_1_1info.html">00027</a> <span class="keyword">class </span>BOOST_LOCALE_DECL <a class="code" href="classboost_1_1locale_1_1info.html" title="a facet that holds general information about locale">info</a> : <span class="keyword">public</span> std::locale::facet
+<a name="l00028"></a>00028 {
+<a name="l00029"></a>00029 <span class="keyword">public</span>:
+<a name="l00030"></a><a class="code" href="classboost_1_1locale_1_1info.html#a01c274323da1367b153952ee1f056572">00030</a> <span class="keyword">static</span> std::locale::id id;
+<a name="l00031"></a>00031
+<a name="l00035"></a><a class="code" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15">00035</a> <span class="keyword">enum</span> <a class="code" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15">string_propery</a> {
+<a name="l00036"></a><a class="code" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15a51e81de8c364b3734f4e2baf1abaddcf">00036</a> language_property,
+<a name="l00037"></a><a class="code" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15ab59b95580bc749f21c832a70d4b73c61">00037</a> country_property,
+<a name="l00038"></a><a class="code" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15a2b38cb5c60ed931f21fc9bec4984900c">00038</a> variant_property,
+<a name="l00039"></a><a class="code" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15a1aa0567014d09df594b4a616f20c9b26">00039</a> encoding_property,
+<a name="l00040"></a><a class="code" href="classboost_1_1locale_1_1info.html#ac79e3924b5473862ab15a3290b1c8d15ab68bcb824a19b6cfd95ad3c714369369">00040</a> name_property
+<a name="l00041"></a>00041 };
+<a name="l00042"></a>00042
+<a name="l00046"></a><a class="code" href="classboost_1_1locale_1_1info.html#a53d7aa756e1b74f360913a9c9d41bb6d">00046</a> <span class="keyword">enum</span> <a class="code" href="classboost_1_1locale_1_1info.html#a53d7aa756e1b74f360913a9c9d41bb6d">integer_property</a> {
+<a name="l00047"></a><a class="code" href="classboost_1_1locale_1_1info.html#a53d7aa756e1b74f360913a9c9d41bb6da4d27d781e7da56cb9b94bfd8cdcab5ea">00047</a> utf8_property
+<a name="l00048"></a>00048 };
+<a name="l00049"></a>00049
+<a name="l00050"></a>00050
+<a name="l00054"></a><a class="code" href="classboost_1_1locale_1_1info.html#a5545bf33988c859b3b864d4d65178134">00054</a> <a class="code" href="classboost_1_1locale_1_1info.html" title="a facet that holds general information about locale">info</a>(<span class="keywordtype">size_t</span> refs = 0) : std::locale::facet(refs)
+<a name="l00055"></a>00055 {
+<a name="l00056"></a>00056 }
+<a name="l00060"></a><a class="code" href="classboost_1_1locale_1_1info.html#a7c56b9df3aba82649afc66c06192c7df">00060</a> std::string language()<span class="keyword"> const </span>
+<a name="l00061"></a>00061 <span class="keyword"> </span>{
+<a name="l00062"></a>00062 <span class="keywordflow">return</span> get_string_property(language_property);
+<a name="l00063"></a>00063 }
+<a name="l00067"></a><a class="code" href="classboost_1_1locale_1_1info.html#a249c20e36da6827a8dc8b12a8342a7dc">00067</a> std::string country()<span class="keyword"> const</span>
+<a name="l00068"></a>00068 <span class="keyword"> </span>{
+<a name="l00069"></a>00069 <span class="keywordflow">return</span> get_string_property(country_property);
+<a name="l00070"></a>00070 }
+<a name="l00074"></a><a class="code" href="classboost_1_1locale_1_1info.html#a2e949e4362c8f0195e2a645fe875f1b4">00074</a> std::string variant()<span class="keyword"> const</span>
+<a name="l00075"></a>00075 <span class="keyword"> </span>{
+<a name="l00076"></a>00076 <span class="keywordflow">return</span> get_string_property(variant_property);
+<a name="l00077"></a>00077 }
+<a name="l00081"></a><a class="code" href="classboost_1_1locale_1_1info.html#a1979a5d7b90604c45e856a139c68f5ba">00081</a> std::string encoding()<span class="keyword"> const</span>
+<a name="l00082"></a>00082 <span class="keyword"> </span>{
+<a name="l00083"></a>00083 <span class="keywordflow">return</span> get_string_property(encoding_property);
+<a name="l00084"></a>00084 }
+<a name="l00085"></a>00085
+<a name="l00089"></a><a class="code" href="classboost_1_1locale_1_1info.html#af8181bf226f369548c030220932323b9">00089</a> std::string name()<span class="keyword"> const</span>
+<a name="l00090"></a>00090 <span class="keyword"> </span>{
+<a name="l00091"></a>00091 <span class="keywordflow">return</span> get_string_property(name_property);
+<a name="l00092"></a>00092 }
+<a name="l00093"></a>00093
+<a name="l00097"></a><a class="code" href="classboost_1_1locale_1_1info.html#aafbbb5c291f60ce6fc3bc056859ba181">00097</a> <span class="keywordtype">bool</span> utf8()<span class="keyword"> const</span>
+<a name="l00098"></a>00098 <span class="keyword"> </span>{
+<a name="l00099"></a>00099 <span class="keywordflow">return</span> get_integer_property(utf8_property) != 0;
+<a name="l00100"></a>00100 }
+<a name="l00101"></a>00101
+<a name="l00102"></a>00102 <span class="preprocessor">#if defined (__SUNPRO_CC) &amp;&amp; defined (_RWSTD_VER)</span>
+<a name="l00103"></a>00103 <span class="preprocessor"></span> std::locale::id&amp; __get_id (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> id; }
+<a name="l00104"></a>00104 <span class="preprocessor">#endif</span>
+<a name="l00105"></a>00105 <span class="preprocessor"></span> <span class="keyword">protected</span>:
+<a name="l00109"></a>00109 <span class="keyword">virtual</span> std::string get_string_property(string_propery v) <span class="keyword">const</span> = 0;
+<a name="l00113"></a>00113 <span class="keyword">virtual</span> <span class="keywordtype">int</span> get_integer_property(integer_property v) <span class="keyword">const</span> = 0;
+<a name="l00114"></a>00114 };
+<a name="l00115"></a>00115
+<a name="l00116"></a>00116 }
+<a name="l00117"></a>00117 }
+<a name="l00118"></a>00118
+<a name="l00119"></a>00119 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00120"></a>00120 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l00121"></a>00121 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00122"></a>00122 <span class="preprocessor"></span>
+<a name="l00123"></a>00123 <span class="preprocessor">#endif</span>
+<a name="l00124"></a>00124 <span class="preprocessor"></span>
+<a name="l00125"></a>00125 <span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/locale_gen.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/locale_gen.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Locale Generation</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="using_boost_locale.html">Using Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Locale Generation </h1> </div>
+</div>
+<div class="contents">
+<p>Each locale is defined by a specific locale identifier, which contains a mandatory part (Language) and several optional parts (Country, Variant, keywords and character encoding of <code>std::string</code>). Boost.Locale uses the POSIX naming convention for locales, i.e. a locale is defined as <code>language[_COUNTRY][.encoding][@variant]</code>, where lang is ISO-639 language name like "en" or "ru", COUNTRY is the ISO-3166 country identifier like "US" or "DE", encoding is the eight-bit character encoding like <code>UTF-8</code> or <code>ISO-8859-1</code>, and variant is additional options for specializing the locale, like <code>euro</code> or <code>calendar=hebrew</code>, see <a class="el" href="locale_gen.html#locale_gen_variant">Variant</a>.</p>
+<p>Note that each locale should include the encoding in order to handle <code>char</code> based strings correctly.</p>
+<h2><a class="anchor" id="locale_gen_basics"></a>
+Basics</h2>
+<p>The class <a class="el" href="classboost_1_1locale_1_1generator.html">generator</a> provides tools to generate the locales we need. The simplest way to use <code>generator</code> is to create a locale and set it as the global one:</p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor"> #include &lt;boost/locale.hpp&gt;</span>
+
+ <span class="keyword">using namespace </span>boost::locale;
+ <span class="keywordtype">int</span> main()
+ {
+ generator gen;
+ <span class="comment">// Create locale generator </span>
+ std::locale::global(gen(<span class="stringliteral">&quot;&quot;</span>));
+ <span class="comment">// &quot;&quot; - the system default locale, set</span>
+ <span class="comment">// it globally</span>
+ }
+</pre></div><p>Of course we can also specify the locale manually</p>
+<div class="fragment"><pre class="fragment"> std::locale loc = gen(<span class="stringliteral">&quot;en_US.UTF-8&quot;</span>);
+ <span class="comment">// Use English, United States locale</span>
+</pre></div><dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<ul>
+<li>Even if your application uses wide strings everywhere, you should specify the 8-bit encoding to use for 8-bit stream IO operations like <code>cout</code> or <code>fstream</code>. <br/>
+</li>
+<li>The default locale is defined by the environment variables <code>LC_CTYPE</code> , <code>LC_ALL</code> , and <code>LANG</code> in that order (i.e. <code>LC_CTYPE</code> first and <code>LANG</code> last). On Windows, the library also queries the <code>LOCALE_USER_DEFAULT</code> option in the Win32 API when these variables are not set.</li>
+</ul>
+<p><b>Tip:</b> Prefer using UTF-8 Unicode encoding over 8-bit encodings like the ISO-8859-X ones.</p>
+<p>By default the generated locales include all supported categories and character types. However, if your application uses only 8-bit encodings, only wide-character encodings, or only specific facets, you can limit the facet generation to specific categories and character types by calling the <a class="el" href="classboost_1_1locale_1_1generator.html#ae3c095f074329954eb90bb80488c7f76">categories</a> and <a class="el" href="classboost_1_1locale_1_1generator.html#ad5e01c555aa43b438f688dbc29725ab8">characters</a> member functions of the <a class="el" href="classboost_1_1locale_1_1generator.html">generator</a> class.</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"> generator gen;
+ gen.characters(wchar_t_facet);
+ gen.categories(collation_facet | formatting_facet);
+ std::locale::global(gen(<span class="stringliteral">&quot;de_DE.UTF-8&quot;</span>));
+</pre></div><h2><a class="anchor" id="locale_gen_variant"></a>
+Variant</h2>
+<p>The variant part of the locale (the part that comes after @ symbol) is localization <a class="el" href="using_localization_backends.html">back-end</a> dependent.</p>
+<h3><a class="anchor" id="locale_gen_variant_non_icu"></a>
+Non ICU Backends</h3>
+<p><a class="el" href="using_localization_backends.html#posix_backend">POSIX</a> and <a class="el" href="using_localization_backends.html#std_backend">std</a> back-ends use their own OS specific naming conventions and depend on the current OS configuration. For example typical Linux distribution provides <code>euro</code> for currency selection, <code>cyrillic</code> and <code>latin</code> for specification of language script.</p>
+<p><a class="el" href="using_localization_backends.html#winapi_backend">winapi</a> back-end does not support any variants.</p>
+<h3><a class="anchor" id="locale_gen_variant_icu"></a>
+ICU Backend</h3>
+<p>ICU provides wide range of locale variant options. For detailed instructions read this ICU manual pages.</p>
+<p>However in general it is represented as set of key=value pairs separated with a semicolon ";" For example: "@collation=phonebook;calendar=islamic-civil".</p>
+<p>Currently ICU supports following keys:</p>
+<ul>
+<li><code>calendar</code> - the calendar used for the current locale. For example: <code>gregorian</code>, <code>japanese</code>, <code>buddhist</code>, <code>islamic</code>, <code>hebrew</code>, <code>chinese</code>, <code>islamic-civil</code>.</li>
+<li><code>collation</code> - the collation order used for this locales, for example <code>phonebook</code>, <code>pinyin</code>, <code>traditional</code>, <code>stroke</code>, <code>direct</code>, <code>posix</code>.</li>
+<li><code>currency</code> - the currency used in this locale, the standard 3 letter code like USD or JPY.</li>
+<li><code>numbers</code> - the numbering system used, for example: <code>latn</code>, <code>arab</code>, <code>thai</code>.</li>
+</ul>
+<p>Please refer to CLDR and ICU documentation for exact list of keys and values:</p>
+<ul>
+<li>ICU User Guide/Locale/Keywords</li>
+<li>Unicode Locale Data Markup Language </li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/locale_information.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/locale_information.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Getting information about the current locale</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="using_boost_locale.html">Using Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Getting information about the current locale </h1> </div>
+</div>
+<div class="contents">
+<p>The <code>std::locale::name</code> function provides very limited information about a locale. Such a name is platform- and compiler-dependent, and is useless for Boost.Locale. There is no way to change it, so for all locales created by Boost.Locale, <code>name()</code> returns the same value as <code>name()</code> for <code>std::locale::classic()</code>.</p>
+<p>Thus an additional facet was created, giving more precise information: <a class="el" href="classboost_1_1locale_1_1info.html" title="a facet that holds general information about locale">boost::locale::info</a>. It has the following member functions:</p>
+<ul>
+<li><a class="el" href="classboost_1_1locale_1_1info.html#af8181bf226f369548c030220932323b9">std::string name()</a> -- the full name of the locale, for example <code>en_US.UTF-8</code> </li>
+<li><a class="el" href="classboost_1_1locale_1_1info.html#a7c56b9df3aba82649afc66c06192c7df">std::string language()</a> -- the ISO-639 language code of the current locale, for example "en".</li>
+<li><a class="el" href="classboost_1_1locale_1_1info.html#a249c20e36da6827a8dc8b12a8342a7dc">std::string country()</a> -- the ISO-3199 country code of the current locale, for example "US".</li>
+<li><a class="el" href="classboost_1_1locale_1_1info.html#a2e949e4362c8f0195e2a645fe875f1b4">std::string variant()</a> -- the variant of current locale, for example "euro".</li>
+<li><a class="el" href="classboost_1_1locale_1_1info.html#a1979a5d7b90604c45e856a139c68f5ba">std::string encoding()</a> -- the encoding used for <code>char</code> based strings, for example "UTF-8"</li>
+<li><a class="el" href="classboost_1_1locale_1_1info.html#aafbbb5c291f60ce6fc3bc056859ba181">bool utf8()</a> -- a fast way to check whether the encoding is UTF-8.</li>
+</ul>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"> cout &lt;&lt; <span class="stringliteral">&quot;The language code is &quot;</span> &lt;&lt; std::use_facet&lt;boost::locale::info&gt;(some_locale).language() &lt;&lt; endl;
+</pre></div> </div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/localization__backend_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/localization__backend_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/localization_backend.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/localization_backend.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_LOCALIZATION_BACKEND_HPP</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_LOCALIZATION_BACKEND_HPP</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span><span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/generator.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;locale&gt;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;memory&gt;</span>
+<a name="l00020"></a>00020
+<a name="l00021"></a>00021 <span class="keyword">namespace </span>boost {
+<a name="l00022"></a>00022 <span class="keyword">namespace </span>locale {
+<a name="l00023"></a>00023
+<a name="l00042"></a>00042
+<a name="l00043"></a><a class="code" href="classboost_1_1locale_1_1localization__backend.html">00043</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1localization__backend.html" title="this class represents a localization backend that can be used for localizing your application...">localization_backend</a> {
+<a name="l00044"></a>00044 <a class="code" href="classboost_1_1locale_1_1localization__backend.html" title="this class represents a localization backend that can be used for localizing your application...">localization_backend</a>(<a class="code" href="classboost_1_1locale_1_1localization__backend.html" title="this class represents a localization backend that can be used for localizing your application...">localization_backend</a> <span class="keyword">const</span> &amp;);
+<a name="l00045"></a>00045 <span class="keywordtype">void</span> operator=(<a class="code" href="classboost_1_1locale_1_1localization__backend.html" title="this class represents a localization backend that can be used for localizing your application...">localization_backend</a> <span class="keyword">const</span> &amp;);
+<a name="l00046"></a>00046 <span class="keyword">public</span>:
+<a name="l00047"></a>00047
+<a name="l00048"></a>00048 <a class="code" href="classboost_1_1locale_1_1localization__backend.html" title="this class represents a localization backend that can be used for localizing your application...">localization_backend</a>()
+<a name="l00049"></a>00049 {
+<a name="l00050"></a>00050 }
+<a name="l00051"></a>00051
+<a name="l00052"></a>00052 <span class="keyword">virtual</span> ~<a class="code" href="classboost_1_1locale_1_1localization__backend.html" title="this class represents a localization backend that can be used for localizing your application...">localization_backend</a>()
+<a name="l00053"></a>00053 {
+<a name="l00054"></a>00054 }
+<a name="l00055"></a>00055
+<a name="l00059"></a>00059 <span class="keyword">virtual</span> <a class="code" href="classboost_1_1locale_1_1localization__backend.html" title="this class represents a localization backend that can be used for localizing your application...">localization_backend</a> *<a class="code" href="classboost_1_1locale_1_1localization__backend.html#ab89828234ca84d4b43f3692bfbb08b25">clone</a>() <span class="keyword">const</span> = 0;
+<a name="l00060"></a>00060
+<a name="l00064"></a>00064 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1localization__backend.html#a3dc9028eb813001f6cdd8fca937837ef">set_option</a>(std::string <span class="keyword">const</span> &amp;name,std::string <span class="keyword">const</span> &amp;value) = 0;
+<a name="l00065"></a>00065
+<a name="l00069"></a>00069 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1localization__backend.html#a631af306f8652dcf7874b0bb38ab8891">clear_options</a>() = 0;
+<a name="l00070"></a>00070
+<a name="l00074"></a>00074 <span class="keyword">virtual</span> std::locale <a class="code" href="classboost_1_1locale_1_1localization__backend.html#a5992c75d469f775ce1d18a0912bfa8a1">install</a>(std::locale <span class="keyword">const</span> &amp;base,<a class="code" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1" title="a type used for more fine grained generation of facets">locale_category_type</a> category,<a class="code" href="namespaceboost_1_1locale.html#a8c993aaf15e683e97d062560ccf914d8" title="type that specifies the character type that locales can be generated for">character_facet_type</a> type = <a class="code" href="namespaceboost_1_1locale.html#a330a4c5134eb5110b33a0b4f986f34be" title="Unspecified character category for character independent facets.">nochar_facet</a>) = 0;
+<a name="l00075"></a>00075
+<a name="l00076"></a>00076 }; <span class="comment">// localization_backend </span>
+<a name="l00077"></a>00077
+<a name="l00078"></a>00078
+<a name="l00083"></a>00083
+<a name="l00084"></a><a class="code" href="classboost_1_1locale_1_1localization__backend__manager.html">00084</a> <span class="keyword">class </span>BOOST_LOCALE_DECL <a class="code" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a> {
+<a name="l00085"></a>00085 <span class="keyword">public</span>:
+<a name="l00089"></a>00089 <a class="code" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a>();
+<a name="l00093"></a>00093 <a class="code" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a>(<a class="code" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a> <span class="keyword">const</span> &amp;);
+<a name="l00097"></a>00097 <a class="code" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a> <span class="keyword">const</span> &amp;operator=(<a class="code" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a> <span class="keyword">const</span> &amp;);
+<a name="l00098"></a>00098
+<a name="l00102"></a>00102 ~<a class="code" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a>();
+<a name="l00103"></a>00103
+<a name="l00107"></a>00107 std::auto_ptr&lt;localization_backend&gt; <span class="keyword">get</span>() <span class="keyword">const</span>;
+<a name="l00108"></a>00108
+<a name="l00114"></a>00114 <span class="keywordtype">void</span> add_backend(std::string <span class="keyword">const</span> &amp;name,std::auto_ptr&lt;localization_backend&gt; backend);
+<a name="l00115"></a>00115
+<a name="l00119"></a>00119 <span class="keywordtype">void</span> remove_all_backends();
+<a name="l00120"></a>00120
+<a name="l00124"></a>00124 std::vector&lt;std::string&gt; get_all_backends() <span class="keyword">const</span>;
+<a name="l00125"></a>00125
+<a name="l00130"></a>00130 <span class="keywordtype">void</span> select(std::string <span class="keyword">const</span> &amp;backend_name,<a class="code" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1" title="a type used for more fine grained generation of facets">locale_category_type</a> category = <a class="code" href="namespaceboost_1_1locale.html#ab51b0b65a19b1db3adc14e9866097e2a" title="Generate all of them.">all_categories</a>);
+<a name="l00131"></a>00131
+<a name="l00137"></a>00137 <span class="keyword">static</span> <a class="code" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a> global(<a class="code" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a> <span class="keyword">const</span> &amp;);
+<a name="l00143"></a>00143 <span class="keyword">static</span> <a class="code" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">localization_backend_manager</a> global();
+<a name="l00144"></a>00144 <span class="keyword">private</span>:
+<a name="l00145"></a>00145 <span class="keyword">class </span>impl;
+<a name="l00146"></a>00146 std::auto_ptr&lt;impl&gt; pimpl_;
+<a name="l00147"></a>00147 };
+<a name="l00148"></a>00148
+<a name="l00149"></a>00149 } <span class="comment">// locale</span>
+<a name="l00150"></a>00150 } <span class="comment">// boost</span>
+<a name="l00151"></a>00151
+<a name="l00152"></a>00152
+<a name="l00153"></a>00153 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00154"></a>00154 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l00155"></a>00155 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00156"></a>00156 <span class="preprocessor"></span>
+<a name="l00157"></a>00157 <span class="preprocessor">#endif</span>
+<a name="l00158"></a>00158 <span class="preprocessor"></span><span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 </span>
+<a name="l00159"></a>00159
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/localized_text_formatting.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/localized_text_formatting.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,176 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Localized Text Formatting</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="using_boost_locale.html">Using Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Localized Text Formatting </h1> </div>
+</div>
+<div class="contents">
+<p>The <code>iostream</code> manipulators are very useful, but when we create a messages for the user, sometimes we need something like good old <code>printf</code> or <code>boost::format</code>.</p>
+<p>Unfortunately <code>boost::format</code> has several limitations in context of localization:</p>
+<ol type="1">
+<li>It renders all parameters using global locale rather than target <code>ostream</code> locale. For example: <br/>
+ <div class="fragment"><pre class="fragment"> std::locale::global(std::locale(<span class="stringliteral">&quot;en_US.UTF-8&quot;</span>));
+ output.imbue(std::locale(<span class="stringliteral">&quot;de_DE.UTF-8&quot;</span>))
+ output &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">boost::format</a>(<span class="stringliteral">&quot;%1%&quot;</span>) % 1234.345;
+</pre></div> <br/>
+ This would write "1,234.235" to output, instead of the "1.234,234" that is expected for "de_DE" locale</li>
+<li>It knows nothing about the new Boost.Locale manipulators.</li>
+<li>The <code>printf-like</code> syntax is very limited for formatting complex localized data, not allowing the formatting of dates, times, or currencies</li>
+</ol>
+<p>Thus a new class, boost::locale::format, was introduced. For example:</p>
+<div class="fragment"><pre class="fragment"> wcout &lt;&lt; <a class="code" href="group__format.html#ga610f3ae827801febc962019cf82a2227">wformat</a>(L<span class="stringliteral">&quot;Today {1,date} I would meet {2} at home&quot;</span>) % <a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">time</a>(0) % name &lt;&lt;endl;
+</pre></div><p>Each format specifier is enclosed within <code>{}</code> brackets, is separated with a comma "," and may have an additional option after an equals symbol '='. This option may be simple ASCII text or single-quoted localized text. If a single-quote should be inserted within the text, it may be represented with a pair of single-quote characters.</p>
+<p>Here is an example of a format string:</p>
+<div class="fragment"><pre class="fragment">
+ "Ms. {1} had arrived at {2,ftime='%I o''clock'} at home. The exact time is {2,time=full}"
+</pre></div><p>The syntax is described by following grammar:</p>
+<div class="fragment"><pre class="fragment">
+ format : '{' parameters '}'
+ parameters: parameter | parameter ',' parameters;
+ parameter : key ["=" value] ;
+ key : [0-9a-zA-Z&lt;&gt;]+ ;
+ value : ascii-string-excluding-"}"-and="," | local-string ;
+ local-string : quoted-text | quoted-text local-string;
+ quoted-text : '[^']*' ;
+</pre></div><p>You can include literal '{' and '}' by inserting double "{{" or "}}" to the text.</p>
+<div class="fragment"><pre class="fragment">cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;Unexpected `{{&#39; in line {1} in file {2}&quot;</span>)) % pos % file;
+</pre></div><p>Would display something like</p>
+<div class="fragment"><pre class="fragment">
+Unexpected `{' in line 5 in file source.cpp
+</pre></div><p>The following format key-value pairs are supported:</p>
+<ul>
+<li><code>[0-9]+</code> -- digits, the index of the formatted parameter -- required.</li>
+<li><code>num</code> or <code>number</code> -- format a number. Options are: <br/>
+<ul>
+<li><code>hex</code> -- display in hexadecimal format</li>
+<li><code>oct</code> -- display in octal format</li>
+<li><code>sci</code> or <code>scientific</code> -- display in scientific format</li>
+<li><code>fix</code> or <code>fixed</code> -- display in fixed format <br/>
+ For example, <code>number=sci</code> </li>
+</ul>
+</li>
+<li><code>cur</code> or <code>currency</code> -- format currency. Options are: <br/>
+<ul>
+<li><code>iso</code> -- display using ISO currency symbol.</li>
+<li><code>nat</code> or <code>national</code> -- display using national currency symbol. <br/>
+</li>
+</ul>
+</li>
+<li><code>per</code> or <code>percent</code> -- format a percentage value.</li>
+<li><code>date</code>, <code>time</code>, <code>datetime</code> or <code>dt</code> -- format a date, a time, or a date and time. Options are: <br/>
+<ul>
+<li><code>s</code> or <code>short</code> -- display in short format.</li>
+<li><code>m</code> or <code>medium</code> -- display in medium format.</li>
+<li><code>l</code> or <code>long</code> -- display in long format.</li>
+<li><code>f</code> or <code>full</code> -- display in full format.</li>
+</ul>
+</li>
+<li><code>ftime</code> with string (quoted) parameter -- display as with <code>strftime</code>. See <code>as::ftime</code> manipulator.</li>
+<li><code>spell</code> or <code>spellout</code> -- spell the number.</li>
+<li><code>ord</code> or <code>ordinal</code> -- format an ordinal number (1st, 2nd... etc)</li>
+<li><code>left</code> or <code>&lt;</code> -- align-left.</li>
+<li><code>right</code> or <code>&gt;</code> -- align-right.</li>
+<li><code>width</code> or <code>w</code> -- set field width (requires parameter).</li>
+<li><code>precision</code> or <code>p</code> -- set precision (requires parameter).</li>
+<li><code>locale</code> -- with parameter -- switch locales for the current operation. This command generates a locale with formatting facets, giving more fine grained control of formatting. For example: <br/>
+ <div class="fragment"><pre class="fragment"> cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<span class="stringliteral">&quot;This article was published at {1,date=l} (Gregorian) {1,locale=he_IL_at_calendar=hebrew,date=l} (Hebrew)&quot;</span>) % date;
+</pre></div></li>
+<li><code>timezone</code> or <code>tz</code> -- the name of the timezone to display the time in. For example:<br/>
+ <div class="fragment"><pre class="fragment"> cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<span class="stringliteral">&quot;Time is: Local {1,time}, ({1,time,tz=EET} Eastern European Time)&quot;</span>) % date;
+</pre></div></li>
+<li><code>local</code> - display the time in local time</li>
+<li><code>gmt</code> - display the time in UTC time scale <div class="fragment"><pre class="fragment"> cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<span class="stringliteral">&quot;Local time is: {1,time,local}, universal time is {1,time,gmt}&quot;</span>) % time;
+</pre></div></li>
+</ul>
+<p>The constructor for the <a class="el" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a> class can take an object of type <a class="el" href="group__message.html#ga556e3e7696302902b2242a7a94516dee">message</a>, simplifying integration with message translation code.</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"> cout&lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;Adding {1} to {2}, we get {3}&quot;</span>)) % a % b % (a+b) &lt;&lt; endl;
+</pre></div><p>A formatted string can be fetched directly by using the <a class="el" href="classboost_1_1locale_1_1basic__format.html#a6bc65d7993e3ab6ad51809ef8fb65400">str(std::locale const &amp;loc=std::locale())</a> member function. For example:</p>
+<div class="fragment"><pre class="fragment"> std::wstring de = (<a class="code" href="group__format.html#ga610f3ae827801febc962019cf82a2227">wformat</a>(<a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;Adding {1} to {2}, we get {3}&quot;</span>)) % a % b % (a+b)).str(de_locale);
+ std::wstring fr = (<a class="code" href="group__format.html#ga610f3ae827801febc962019cf82a2227">wformat</a>(<a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;Adding {1} to {2}, we get {3}&quot;</span>)) % a % b % (a+b)).str(fr_locale);
+</pre></div><dl class="note"><dt><b>Note:</b></dt><dd>There is one significant difference between <code>boost::format</code> and <code>boost::locale::format</code>: Boost.Locale's format converts its parameters only when written to an <code>ostream</code> or when the `str()` member function is called. It only saves references to the objects that can be written to a stream.</dd></dl>
+<p>This is generally not a problem when all operations are done in one statement, such as:</p>
+<div class="fragment"><pre class="fragment"> cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<span class="stringliteral">&quot;Adding {1} to {2}, we get {3}&quot;</span>) % a % b % (a+b);
+</pre></div><p>Because the temporary value of <code></code>(a+b) exists until the formatted data is actually written to the stream. But following code is wrong:</p>
+<div class="fragment"><pre class="fragment"> <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a> fmt(<span class="stringliteral">&quot;Adding {1} to {2}, we get {3}&quot;</span>);
+ fmt % a;
+ fmt % b;
+ fmt % (a+b);
+ cout &lt;&lt; fmt;
+</pre></div><p>Because the temporary value of <code></code>(a+b) no longer exists when <code>fmt</code> is written to the stream. A correct solution would be:</p>
+<div class="fragment"><pre class="fragment"> <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a> fmt(<span class="stringliteral">&quot;Adding {1} to {2}, we get {3}&quot;</span>);
+ fmt % a;
+ fmt % b;
+ <span class="keywordtype">int</span> a_plus_b = a+b;
+ fmt % a_plus_b;
+ cout &lt;&lt; fmt;
+</pre></div> </div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/main.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/main.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Boost.Locale</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li class="current">Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Boost.Locale </h1> </div>
+</div>
+<div class="contents">
+<h2><a class="anchor" id="main_intro"></a>
+What is Boost.Locale?</h2>
+<p>Boost.Locale is a library that provides high quality localization facilities in a C++ way.</p>
+<p>It gives powerful tools for development of cross platform localized software - the software that talks to user in its language.</p>
+<p>Provided Features:</p>
+<ul>
+<li>Correct case conversion, case folding and normalization.</li>
+<li>Collation (sorting), including support for 4 Unicode collation levels.</li>
+<li>Date, time, timezone and calendar manipulations, formatting and parsing, including transparent support for calendars other than Gregorian.</li>
+<li>Boundary analysis for characters, words, sentences and line-breaks.</li>
+<li>Number formatting, spelling and parsing.</li>
+<li>Monetary formatting and parsing.</li>
+<li>Powerful message formatting (string translation) including support for plural forms, using GNU catalogs.</li>
+<li>Character set conversion.</li>
+<li>Transparent support for 8-bit character sets like Latin1</li>
+<li>Support for <code>char</code> and <code>wchar_t</code> </li>
+<li>Experimental support for C++0x <code>char16_t</code> and <code>char32_t</code> strings and streams.</li>
+</ul>
+<p>Boost.Locale enhances and unifies the standard library's API the way it becomes useful and convenient for development of cross platform and "cross-culture" software.</p>
+<p>In order to achieve this goal Boost.Locale uses the-state-of-the-art Unicode and Localization library: ICU - International Components for Unicode.</p>
+<p>Boost.Locale creates the natural glue between the C++ locales framework, iostreams, and the powerful ICU library.</p>
+<p>Boost.Locale provides non-ICU based localization support as well. It is based on the operating system native API or on the standard C++ library support. Sacrificing some less important features, Boost.Locale becomes less powerful but lighter and easier to deploy and use library.</p>
+<h2><a class="anchor" id="main_tutorial"></a>
+Tutorials</h2>
+<ul>
+<li><a class="el" href="std_locales.html">Introduction to C++ Standard Library localization support</a></li>
+<li><a class="el" href="using_boost_locale.html">Using Boost.Locale</a><ul>
+<li><a class="el" href="locale_gen.html">Locale Generation</a></li>
+<li><a class="el" href="collation.html">Collation</a></li>
+<li><a class="el" href="conversions.html">Text Conversions</a></li>
+<li><a class="el" href="formatting_and_parsing.html">Numbers, Time and Currency formatting and parsing</a></li>
+<li><a class="el" href="messages_formatting.html">Messages Formatting (Translation)</a></li>
+<li><a class="el" href="charset_handling.html">Character Set Conversions</a></li>
+<li><a class="el" href="boundary_analysys.html">Boundary analysis</a></li>
+<li><a class="el" href="localized_text_formatting.html">Localized Text Formatting</a></li>
+<li><a class="el" href="dates_times_timezones.html">Working with dates, times, timezones and calendars.</a></li>
+<li><a class="el" href="locale_information.html">Getting information about the current locale</a></li>
+<li><a class="el" href="working_with_multiple_locales.html">Working with multiple locales</a></li>
+</ul>
+</li>
+<li><a class="el" href="using_localization_backends.html">Using Localization Backends</a></li>
+<li><a class="el" href="recommendations_and_myths.html">Recommendations and Myths</a></li>
+<li><a class="el" href="building_boost_locale.html">Building The library</a></li>
+<li><a class="el" href="appendix.html">Appendix</a><ul>
+<li><a class="el" href="rationale.html">Design Rationale</a></li>
+<li><a class="el" href="faq.html">Frequently Asked Questions</a></li>
+<li><a class="el" href="default_encoding_under_windows.html">Default Encoding under Microsoft Windows</a></li>
+<li><a class="el" href="running_examples_under_windows.html">Running Examples under Microsoft Windows</a></li>
+<li><a class="el" href="gettext_for_windows.html">Using Gettext Tools on Windows</a></li>
+<li><a class="el" href="glossary.html">Glossary</a></li>
+<li><a class="el" href="tested_compilers_and_paltforms.html">Tested Compilers and Platforms</a></li>
+<li><a class="el" href="status_of_cpp0x_characters_support.html">Status of C++0x char16_t/char32_t support</a></li>
+<li><a class="el" href="special_thanks.html">Special Thanks</a> </li>
+</ul>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/message_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/message_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,664 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/message.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/message.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_MESSAGE_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_MESSAGE_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#include &lt;locale&gt;</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;set&gt;</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include &lt;memory&gt;</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;boost/locale/formatting.hpp&gt;</span>
+<a name="l00022"></a>00022
+<a name="l00023"></a>00023
+<a name="l00024"></a>00024 <span class="keyword">namespace </span>boost {
+<a name="l00025"></a>00025 <span class="keyword">namespace </span>locale {
+<a name="l00033"></a>00033
+<a name="l00035"></a>00035
+<a name="l00036"></a>00036 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00037"></a>00037 <span class="keyword">struct </span>base_message_format: <span class="keyword">public</span> std::locale::facet
+<a name="l00038"></a>00038 {
+<a name="l00039"></a>00039 };
+<a name="l00040"></a>00040
+<a name="l00042"></a>00042
+<a name="l00046"></a>00046 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00047"></a><a class="code" href="classboost_1_1locale_1_1message__format.html">00047</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1message__format.html" title="This facet provides message formatting abilities.">message_format</a> : <span class="keyword">public</span> base_message_format&lt;CharType&gt;
+<a name="l00048"></a>00048 {
+<a name="l00049"></a>00049 <span class="keyword">public</span>:
+<a name="l00050"></a>00050
+<a name="l00054"></a><a class="code" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">00054</a> <span class="keyword">typedef</span> CharType char_type;
+<a name="l00058"></a><a class="code" href="group__message.html#gaaa932705310ce196fccc9d672b25518f">00058</a> <span class="keyword">typedef</span> std::basic_string&lt;CharType&gt; string_type;
+<a name="l00059"></a>00059
+<a name="l00063"></a><a class="code" href="group__message.html#gafa681d0df94a35f9d75c16dea099d03e">00063</a> <a class="code" href="group__message.html#gafa681d0df94a35f9d75c16dea099d03e">message_format</a>(<span class="keywordtype">size_t</span> refs = 0) :
+<a name="l00064"></a>00064 base_message_format&lt;CharType&gt;(refs)
+<a name="l00065"></a>00065 {
+<a name="l00066"></a>00066 }
+<a name="l00067"></a>00067
+<a name="l00078"></a>00078 <span class="keyword">virtual</span> <a class="code" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> <span class="keyword">const</span> *<span class="keyword">get</span>(<span class="keywordtype">int</span> domain_id,<a class="code" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> <span class="keyword">const</span> *context,<a class="code" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> <span class="keyword">const</span> *id) <span class="keyword">const</span> = 0;
+<a name="l00092"></a>00092 <span class="keyword">virtual</span> <a class="code" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> <span class="keyword">const</span> *<span class="keyword">get</span>(<span class="keywordtype">int</span> domain_id,<a class="code" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> <span class="keyword">const</span> *context,<a class="code" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> <span class="keyword">const</span> *single_id,<span class="keywordtype">int</span> n) <span class="keyword">const</span> = 0;
+<a name="l00093"></a>00093
+<a name="l00097"></a>00097 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="group__message.html#ga73e25178ba9ef91ebe1df0aade4d8ae6">domain</a>(std::string <span class="keyword">const</span> &amp;<a class="code" href="group__message.html#ga73e25178ba9ef91ebe1df0aade4d8ae6">domain</a>) <span class="keyword">const</span> = 0;
+<a name="l00098"></a>00098
+<a name="l00107"></a>00107 <span class="keyword">virtual</span> <a class="code" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> <span class="keyword">const</span> *<a class="code" href="group__message.html#ga3f2c9d7f9a363efa607738083a986251">convert</a>(<a class="code" href="classboost_1_1locale_1_1message__format.html#a83f473295edf14b9e1ae1476b81231bc">char_type</a> <span class="keyword">const</span> *msg,<a class="code" href="group__message.html#gaaa932705310ce196fccc9d672b25518f">string_type</a> &amp;buffer) <span class="keyword">const</span> = 0;
+<a name="l00108"></a>00108
+<a name="l00109"></a>00109 <span class="preprocessor">#if defined (__SUNPRO_CC) &amp;&amp; defined (_RWSTD_VER)</span>
+<a name="l00110"></a>00110 <span class="preprocessor"></span> std::locale::id&amp; __get_id (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> id; }
+<a name="l00111"></a>00111 <span class="preprocessor">#endif</span>
+<a name="l00112"></a>00112 <span class="preprocessor"></span> <span class="keyword">protected</span>:
+<a name="l00113"></a>00113 <span class="keyword">virtual</span> ~<a class="code" href="group__message.html#gafa681d0df94a35f9d75c16dea099d03e">message_format</a>()
+<a name="l00114"></a>00114 {
+<a name="l00115"></a>00115 }
+<a name="l00116"></a>00116
+<a name="l00117"></a>00117 };
+<a name="l00118"></a>00118
+<a name="l00120"></a>00120
+<a name="l00121"></a>00121 <span class="keyword">namespace </span>details {
+<a name="l00122"></a>00122 <span class="keyword">inline</span> <span class="keywordtype">bool</span> is_us_ascii_char(<span class="keywordtype">char</span> c)
+<a name="l00123"></a>00123 {
+<a name="l00124"></a>00124 <span class="comment">// works for null terminated strings regardless char &quot;signness&quot;</span>
+<a name="l00125"></a>00125 <span class="keywordflow">return</span> 0&lt;c &amp;&amp; c&lt;0x7F;
+<a name="l00126"></a>00126 }
+<a name="l00127"></a>00127 <span class="keyword">inline</span> <span class="keywordtype">bool</span> is_us_ascii_string(<span class="keywordtype">char</span> <span class="keyword">const</span> *msg)
+<a name="l00128"></a>00128 {
+<a name="l00129"></a>00129 <span class="keywordflow">while</span>(*msg) {
+<a name="l00130"></a>00130 <span class="keywordflow">if</span>(!is_us_ascii_char(*msg++))
+<a name="l00131"></a>00131 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00132"></a>00132 }
+<a name="l00133"></a>00133 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00134"></a>00134 }
+<a name="l00135"></a>00135
+<a name="l00136"></a>00136 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00137"></a>00137 <span class="keyword">struct </span>string_cast_traits {
+<a name="l00138"></a>00138 <span class="keyword">static</span> CharType <span class="keyword">const</span> *cast(CharType <span class="keyword">const</span> *msg,std::basic_string&lt;CharType&gt; &amp;<span class="comment">/*unused*/</span>)
+<a name="l00139"></a>00139 {
+<a name="l00140"></a>00140 <span class="keywordflow">return</span> msg;
+<a name="l00141"></a>00141 }
+<a name="l00142"></a>00142 };
+<a name="l00143"></a>00143
+<a name="l00144"></a>00144 <span class="keyword">template</span>&lt;&gt;
+<a name="l00145"></a>00145 <span class="keyword">struct </span>string_cast_traits&lt;char&gt; {
+<a name="l00146"></a>00146 <span class="keyword">static</span> <span class="keywordtype">char</span> <span class="keyword">const</span> *cast(<span class="keywordtype">char</span> <span class="keyword">const</span> *msg,std::string &amp;buffer)
+<a name="l00147"></a>00147 {
+<a name="l00148"></a>00148 <span class="keywordflow">if</span>(is_us_ascii_string(msg))
+<a name="l00149"></a>00149 <span class="keywordflow">return</span> msg;
+<a name="l00150"></a>00150 buffer.reserve(strlen(msg));
+<a name="l00151"></a>00151 <span class="keywordtype">char</span> c;
+<a name="l00152"></a>00152 <span class="keywordflow">while</span>((c=*msg++)!=0) {
+<a name="l00153"></a>00153 <span class="keywordflow">if</span>(is_us_ascii_char(c))
+<a name="l00154"></a>00154 buffer+=c;
+<a name="l00155"></a>00155 }
+<a name="l00156"></a>00156 <span class="keywordflow">return</span> buffer.c_str();
+<a name="l00157"></a>00157 }
+<a name="l00158"></a>00158 };
+<a name="l00159"></a>00159 } <span class="comment">// details</span>
+<a name="l00160"></a>00160
+<a name="l00162"></a>00162
+<a name="l00170"></a>00170 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00171"></a><a class="code" href="classboost_1_1locale_1_1basic__message.html">00171</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message</a> {
+<a name="l00172"></a>00172 <span class="keyword">public</span>:
+<a name="l00173"></a>00173
+<a name="l00174"></a><a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db">00174</a> <span class="keyword">typedef</span> CharType char_type;
+<a name="l00175"></a><a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3">00175</a> <span class="keyword">typedef</span> std::basic_string&lt;char_type&gt; string_type;
+<a name="l00176"></a><a class="code" href="group__message.html#gaa63527cb368d0bcd4cb0809138c927df">00176</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1message__format.html" title="This facet provides message formatting abilities.">message_format&lt;char_type&gt;</a> <a class="code" href="classboost_1_1locale_1_1message__format.html" title="This facet provides message formatting abilities.">facet_type</a>;
+<a name="l00177"></a>00177
+<a name="l00181"></a><a class="code" href="group__message.html#ga33bdf7fbb164a96a8685b5747afc2b45">00181</a> <a class="code" href="group__message.html#ga33bdf7fbb164a96a8685b5747afc2b45">basic_message</a>() :
+<a name="l00182"></a>00182 n_(0),
+<a name="l00183"></a>00183 c_id_(0),
+<a name="l00184"></a>00184 c_context_(0),
+<a name="l00185"></a>00185 c_plural_(0)
+<a name="l00186"></a>00186 {
+<a name="l00187"></a>00187 }
+<a name="l00188"></a>00188
+<a name="l00193"></a><a class="code" href="group__message.html#gae32d7f89d5f268e8d6bae662d8008bae">00193</a> <span class="keyword">explicit</span> <a class="code" href="group__message.html#ga33bdf7fbb164a96a8685b5747afc2b45">basic_message</a>(<a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *<span class="keywordtype">id</span>) :
+<a name="l00194"></a>00194 n_(0),
+<a name="l00195"></a>00195 c_id_(id),
+<a name="l00196"></a>00196 c_context_(0),
+<a name="l00197"></a>00197 c_plural_(0)
+<a name="l00198"></a>00198 {
+<a name="l00199"></a>00199 }
+<a name="l00200"></a>00200
+<a name="l00207"></a><a class="code" href="group__message.html#ga40bf56415a235f13ee666d51f645f280">00207</a> <span class="keyword">explicit</span> <a class="code" href="group__message.html#ga33bdf7fbb164a96a8685b5747afc2b45">basic_message</a>(<a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *single,<a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *plural,<span class="keywordtype">int</span> n) :
+<a name="l00208"></a>00208 n_(n),
+<a name="l00209"></a>00209 c_id_(single),
+<a name="l00210"></a>00210 c_context_(0),
+<a name="l00211"></a>00211 c_plural_(plural)
+<a name="l00212"></a>00212 {
+<a name="l00213"></a>00213 }
+<a name="l00214"></a>00214
+<a name="l00220"></a><a class="code" href="group__message.html#ga4d78f8f45467984d7244e2ddbb9e0f6e">00220</a> <span class="keyword">explicit</span> <a class="code" href="group__message.html#ga33bdf7fbb164a96a8685b5747afc2b45">basic_message</a>(<a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *context,<a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *<span class="keywordtype">id</span>) :
+<a name="l00221"></a>00221 n_(0),
+<a name="l00222"></a>00222 c_id_(id),
+<a name="l00223"></a>00223 c_context_(context),
+<a name="l00224"></a>00224 c_plural_(0)
+<a name="l00225"></a>00225 {
+<a name="l00226"></a>00226 }
+<a name="l00227"></a>00227
+<a name="l00234"></a><a class="code" href="group__message.html#gabf9afe77f0254397389289c386bf8a73">00234</a> <span class="keyword">explicit</span> <a class="code" href="group__message.html#ga33bdf7fbb164a96a8685b5747afc2b45">basic_message</a>(<a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *context,<a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *single,<a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *plural,<span class="keywordtype">int</span> n) :
+<a name="l00235"></a>00235 n_(n),
+<a name="l00236"></a>00236 c_id_(single),
+<a name="l00237"></a>00237 c_context_(context),
+<a name="l00238"></a>00238 c_plural_(plural)
+<a name="l00239"></a>00239 {
+<a name="l00240"></a>00240 }
+<a name="l00241"></a>00241
+<a name="l00242"></a>00242
+<a name="l00246"></a><a class="code" href="group__message.html#gabbb4365d621a33442ae34ac7c17a9d74">00246</a> <span class="keyword">explicit</span> <a class="code" href="group__message.html#ga33bdf7fbb164a96a8685b5747afc2b45">basic_message</a>(<a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> <span class="keyword">const</span> &amp;<span class="keywordtype">id</span>) :
+<a name="l00247"></a>00247 n_(0),
+<a name="l00248"></a>00248 c_id_(0),
+<a name="l00249"></a>00249 c_context_(0),
+<a name="l00250"></a>00250 c_plural_(0),
+<a name="l00251"></a>00251 id_(id)
+<a name="l00252"></a>00252 {
+<a name="l00253"></a>00253 }
+<a name="l00254"></a>00254
+<a name="l00260"></a><a class="code" href="group__message.html#ga380f3a258b3b28929bbf01f4e622e71a">00260</a> <span class="keyword">explicit</span> <a class="code" href="group__message.html#ga33bdf7fbb164a96a8685b5747afc2b45">basic_message</a>(<a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> <span class="keyword">const</span> &amp;single,<a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> <span class="keyword">const</span> &amp;plural,<span class="keywordtype">int</span> <a class="code" href="group__manipulators.html#gaee05db73f5525d9a010cdc3aa02f634f">number</a>) :
+<a name="l00261"></a>00261 n_(number),
+<a name="l00262"></a>00262 c_id_(0),
+<a name="l00263"></a>00263 c_context_(0),
+<a name="l00264"></a>00264 c_plural_(0),
+<a name="l00265"></a>00265 id_(single),
+<a name="l00266"></a>00266 plural_(plural)
+<a name="l00267"></a>00267 {
+<a name="l00268"></a>00268 }
+<a name="l00269"></a>00269
+<a name="l00273"></a><a class="code" href="group__message.html#ga8c2fab962e10a46ea85f0188d08e499d">00273</a> <span class="keyword">explicit</span> <a class="code" href="group__message.html#ga33bdf7fbb164a96a8685b5747afc2b45">basic_message</a>(<a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> <span class="keyword">const</span> &amp;context,<a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> <span class="keyword">const</span> &amp;<span class="keywordtype">id</span>) :
+<a name="l00274"></a>00274 n_(0),
+<a name="l00275"></a>00275 c_id_(0),
+<a name="l00276"></a>00276 c_context_(0),
+<a name="l00277"></a>00277 c_plural_(0),
+<a name="l00278"></a>00278 id_(id),
+<a name="l00279"></a>00279 context_(context)
+<a name="l00280"></a>00280 {
+<a name="l00281"></a>00281 }
+<a name="l00282"></a>00282
+<a name="l00288"></a><a class="code" href="group__message.html#gaf8ba10b7b1d45e6c78b84d77e8175d5d">00288</a> <span class="keyword">explicit</span> <a class="code" href="group__message.html#ga33bdf7fbb164a96a8685b5747afc2b45">basic_message</a>(<a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> <span class="keyword">const</span> &amp;context,<a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> <span class="keyword">const</span> &amp;single,<a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> <span class="keyword">const</span> &amp;plural,<span class="keywordtype">int</span> <a class="code" href="group__manipulators.html#gaee05db73f5525d9a010cdc3aa02f634f">number</a>) :
+<a name="l00289"></a>00289 n_(number),
+<a name="l00290"></a>00290 c_id_(0),
+<a name="l00291"></a>00291 c_context_(0),
+<a name="l00292"></a>00292 c_plural_(0),
+<a name="l00293"></a>00293 id_(single),
+<a name="l00294"></a>00294 context_(context),
+<a name="l00295"></a>00295 plural_(plural)
+<a name="l00296"></a>00296 {
+<a name="l00297"></a>00297 }
+<a name="l00298"></a>00298
+<a name="l00302"></a><a class="code" href="group__message.html#gae6ed9dded4ab78ff28e994b48c766c84">00302</a> <a class="code" href="group__message.html#ga33bdf7fbb164a96a8685b5747afc2b45">basic_message</a>(<a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message</a> <span class="keyword">const</span> &amp;other) :
+<a name="l00303"></a>00303 n_(other.n_),
+<a name="l00304"></a>00304 c_id_(other.c_id_),
+<a name="l00305"></a>00305 c_context_(other.c_context_),
+<a name="l00306"></a>00306 c_plural_(other.c_plural_),
+<a name="l00307"></a>00307 id_(other.id_),
+<a name="l00308"></a>00308 context_(other.context_),
+<a name="l00309"></a>00309 plural_(other.plural_)
+<a name="l00310"></a>00310 {
+<a name="l00311"></a>00311 }
+<a name="l00312"></a>00312
+<a name="l00316"></a><a class="code" href="group__message.html#gae0e786e45ef32cf73efd8495cae45aed">00316</a> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message</a> <span class="keyword">const</span> &amp;<a class="code" href="group__message.html#gae0e786e45ef32cf73efd8495cae45aed">operator=</a>(<a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message</a> <span class="keyword">const</span> &amp;other)
+<a name="l00317"></a>00317 {
+<a name="l00318"></a>00318 <span class="keywordflow">if</span>(<span class="keyword">this</span>==&amp;other) {
+<a name="l00319"></a>00319 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00320"></a>00320 }
+<a name="l00321"></a>00321 <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message</a> tmp(other);
+<a name="l00322"></a>00322 <a class="code" href="group__message.html#gac204b563c7c9bd86e5555f129350f0e3">swap</a>(tmp);
+<a name="l00323"></a>00323 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00324"></a>00324 }
+<a name="l00325"></a>00325
+<a name="l00329"></a><a class="code" href="group__message.html#gac204b563c7c9bd86e5555f129350f0e3">00329</a> <span class="keywordtype">void</span> <a class="code" href="group__message.html#gac204b563c7c9bd86e5555f129350f0e3">swap</a>(<a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message</a> &amp;other)
+<a name="l00330"></a>00330 {
+<a name="l00331"></a>00331 <a class="code" href="group__message.html#gac204b563c7c9bd86e5555f129350f0e3">std::swap</a>(n_,other.n_);
+<a name="l00332"></a>00332 <a class="code" href="group__message.html#gac204b563c7c9bd86e5555f129350f0e3">std::swap</a>(c_id_,other.c_id_);
+<a name="l00333"></a>00333 <a class="code" href="group__message.html#gac204b563c7c9bd86e5555f129350f0e3">std::swap</a>(c_context_,other.c_context_);
+<a name="l00334"></a>00334 <a class="code" href="group__message.html#gac204b563c7c9bd86e5555f129350f0e3">std::swap</a>(c_plural_,other.c_plural_);
+<a name="l00335"></a>00335
+<a name="l00336"></a>00336 id_.swap(other.id_);
+<a name="l00337"></a>00337 context_.swap(other.context_);
+<a name="l00338"></a>00338 plural_.swap(other.plural_);
+<a name="l00339"></a>00339 }
+<a name="l00340"></a>00340
+<a name="l00344"></a>00344
+<a name="l00345"></a><a class="code" href="group__message.html#ga8da81038939b85ca248cba50f1deacf1">00345</a> <a class="code" href="group__message.html#ga8da81038939b85ca248cba50f1deacf1">operator string_type </a>()<span class="keyword"> const</span>
+<a name="l00346"></a>00346 <span class="keyword"> </span>{
+<a name="l00347"></a>00347 <span class="keywordflow">return</span> <a class="code" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">str</a>();
+<a name="l00348"></a>00348 }
+<a name="l00349"></a>00349
+<a name="l00353"></a><a class="code" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">00353</a> <a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> <a class="code" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">str</a>()<span class="keyword"> const</span>
+<a name="l00354"></a>00354 <span class="keyword"> </span>{
+<a name="l00355"></a>00355 std::locale loc;
+<a name="l00356"></a>00356 <span class="keywordflow">return</span> <a class="code" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">str</a>(loc,0);
+<a name="l00357"></a>00357 }
+<a name="l00358"></a>00358
+<a name="l00362"></a><a class="code" href="group__message.html#ga26c6489f8269096f835abfb268498fdd">00362</a> <a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> <a class="code" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">str</a>(std::locale <span class="keyword">const</span> &amp;locale)<span class="keyword"> const</span>
+<a name="l00363"></a>00363 <span class="keyword"> </span>{
+<a name="l00364"></a>00364 <span class="keywordflow">return</span> <a class="code" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">str</a>(locale,0);
+<a name="l00365"></a>00365 }
+<a name="l00366"></a>00366
+<a name="l00370"></a><a class="code" href="group__message.html#gaa907a1d3f43fe59cea938e1606f004ee">00370</a> <a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> <a class="code" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">str</a>(std::locale <span class="keyword">const</span> &amp;locale,std::string <span class="keyword">const</span> &amp;domain_id)<span class="keyword"> const</span>
+<a name="l00371"></a>00371 <span class="keyword"> </span>{
+<a name="l00372"></a>00372 <span class="keywordtype">int</span> <span class="keywordtype">id</span>=0;
+<a name="l00373"></a>00373 <span class="keywordflow">if</span>(std::has_facet&lt;facet_type&gt;(locale))
+<a name="l00374"></a>00374 <span class="keywordtype">id</span>=std::use_facet&lt;facet_type&gt;(locale).<a class="code" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">domain</a>(domain_id);
+<a name="l00375"></a>00375 <span class="keywordflow">return</span> <a class="code" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">str</a>(locale,<span class="keywordtype">id</span>);
+<a name="l00376"></a>00376 }
+<a name="l00377"></a>00377
+<a name="l00381"></a><a class="code" href="group__message.html#ga2d2ca0fe119e4ce4766fd3d42b549314">00381</a> <a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> <a class="code" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">str</a>(std::string <span class="keyword">const</span> &amp;domain_id)<span class="keyword"> const</span>
+<a name="l00382"></a>00382 <span class="keyword"> </span>{
+<a name="l00383"></a>00383 <span class="keywordtype">int</span> <span class="keywordtype">id</span>=0;
+<a name="l00384"></a>00384 std::locale loc;
+<a name="l00385"></a>00385 <span class="keywordflow">if</span>(std::has_facet&lt;facet_type&gt;(loc))
+<a name="l00386"></a>00386 <span class="keywordtype">id</span>=std::use_facet&lt;facet_type&gt;(loc).<a class="code" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">domain</a>(domain_id);
+<a name="l00387"></a>00387 <span class="keywordflow">return</span> <a class="code" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">str</a>(loc,<span class="keywordtype">id</span>);
+<a name="l00388"></a>00388 }
+<a name="l00389"></a>00389
+<a name="l00390"></a>00390
+<a name="l00394"></a><a class="code" href="group__message.html#gaa51c0f65363d8d1cee83bb07fe45ced5">00394</a> <a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> <a class="code" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">str</a>(std::locale <span class="keyword">const</span> &amp;loc,<span class="keywordtype">int</span> <span class="keywordtype">id</span>)<span class="keyword"> const</span>
+<a name="l00395"></a>00395 <span class="keyword"> </span>{
+<a name="l00396"></a>00396 <a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> buffer;
+<a name="l00397"></a>00397 <a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *ptr = <a class="code" href="group__message.html#ga4dd81f4d40c4e8871bb1bf02bbc8e968">write</a>(loc,<span class="keywordtype">id</span>,buffer);
+<a name="l00398"></a>00398 <span class="keywordflow">if</span>(ptr == buffer.c_str())
+<a name="l00399"></a>00399 <span class="keywordflow">return</span> buffer;
+<a name="l00400"></a>00400 <span class="keywordflow">else</span>
+<a name="l00401"></a>00401 buffer = ptr;
+<a name="l00402"></a>00402 <span class="keywordflow">return</span> buffer;
+<a name="l00403"></a>00403 }
+<a name="l00404"></a>00404
+<a name="l00405"></a>00405
+<a name="l00410"></a><a class="code" href="group__message.html#ga4dd81f4d40c4e8871bb1bf02bbc8e968">00410</a> <span class="keywordtype">void</span> <a class="code" href="group__message.html#ga4dd81f4d40c4e8871bb1bf02bbc8e968">write</a>(std::basic_ostream&lt;char_type&gt; &amp;out)<span class="keyword"> const</span>
+<a name="l00411"></a>00411 <span class="keyword"> </span>{
+<a name="l00412"></a>00412 std::locale <span class="keyword">const</span> &amp;loc = out.getloc();
+<a name="l00413"></a>00413 <span class="keywordtype">int</span> <span class="keywordtype">id</span> = <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(out).<a class="code" href="classboost_1_1locale_1_1ios__info.html#a08b1bb49e5806900bfa1901e869497a6">domain_id</a>();
+<a name="l00414"></a>00414 <a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> buffer;
+<a name="l00415"></a>00415 out &lt;&lt; <a class="code" href="group__message.html#ga4dd81f4d40c4e8871bb1bf02bbc8e968">write</a>(loc,<span class="keywordtype">id</span>,buffer);
+<a name="l00416"></a>00416 }
+<a name="l00417"></a>00417
+<a name="l00418"></a>00418 <span class="keyword">private</span>:
+<a name="l00419"></a>00419 <a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *plural()<span class="keyword"> const</span>
+<a name="l00420"></a>00420 <span class="keyword"> </span>{
+<a name="l00421"></a>00421 <span class="keywordflow">if</span>(c_plural_)
+<a name="l00422"></a>00422 <span class="keywordflow">return</span> c_plural_;
+<a name="l00423"></a>00423 <span class="keywordflow">if</span>(plural_.empty())
+<a name="l00424"></a>00424 <span class="keywordflow">return</span> 0;
+<a name="l00425"></a>00425 <span class="keywordflow">return</span> plural_.c_str();
+<a name="l00426"></a>00426 }
+<a name="l00427"></a>00427 <a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *context()<span class="keyword"> const</span>
+<a name="l00428"></a>00428 <span class="keyword"> </span>{
+<a name="l00429"></a>00429 <span class="keywordflow">if</span>(c_context_)
+<a name="l00430"></a>00430 <span class="keywordflow">return</span> c_context_;
+<a name="l00431"></a>00431 <span class="keywordflow">if</span>(context_.empty())
+<a name="l00432"></a>00432 <span class="keywordflow">return</span> 0;
+<a name="l00433"></a>00433 <span class="keywordflow">return</span> context_.c_str();
+<a name="l00434"></a>00434 }
+<a name="l00435"></a>00435
+<a name="l00436"></a>00436 <a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *id()<span class="keyword"> const</span>
+<a name="l00437"></a>00437 <span class="keyword"> </span>{
+<a name="l00438"></a>00438 <span class="keywordflow">return</span> c_id_ ? c_id_ : id_.c_str();
+<a name="l00439"></a>00439 }
+<a name="l00440"></a>00440
+<a name="l00441"></a>00441 <a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *<a class="code" href="group__message.html#ga4dd81f4d40c4e8871bb1bf02bbc8e968">write</a>(std::locale <span class="keyword">const</span> &amp;loc,<span class="keywordtype">int</span> domain_id,<a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> &amp;buffer)<span class="keyword"> const</span>
+<a name="l00442"></a>00442 <span class="keyword"> </span>{
+<a name="l00443"></a>00443 <a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *translated = 0;
+<a name="l00444"></a>00444 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> empty_string[1] = {0};
+<a name="l00445"></a>00445
+<a name="l00446"></a>00446 <a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *<span class="keywordtype">id</span> = this-&gt;id();
+<a name="l00447"></a>00447 <a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *context = this-&gt;context();
+<a name="l00448"></a>00448 <a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *plural = this-&gt;plural();
+<a name="l00449"></a>00449
+<a name="l00450"></a>00450 <span class="keywordflow">if</span>(*<span class="keywordtype">id</span> == 0)
+<a name="l00451"></a>00451 <span class="keywordflow">return</span> empty_string;
+<a name="l00452"></a>00452
+<a name="l00453"></a>00453 <a class="code" href="group__message.html#gaa63527cb368d0bcd4cb0809138c927df" title="The type of the facet the messages are fetched with.">facet_type</a> <span class="keyword">const</span> *facet = 0;
+<a name="l00454"></a>00454 <span class="keywordflow">if</span>(std::has_facet&lt;facet_type&gt;(loc))
+<a name="l00455"></a>00455 facet = &amp;std::use_facet&lt;facet_type&gt;(loc);
+<a name="l00456"></a>00456
+<a name="l00457"></a>00457 <span class="keywordflow">if</span>(facet) {
+<a name="l00458"></a>00458 <span class="keywordflow">if</span>(!plural) {
+<a name="l00459"></a>00459 translated = facet-&gt;get(domain_id,context,<span class="keywordtype">id</span>);
+<a name="l00460"></a>00460 }
+<a name="l00461"></a>00461 <span class="keywordflow">else</span> {
+<a name="l00462"></a>00462 translated = facet-&gt;get(domain_id,context,<span class="keywordtype">id</span>,n_);
+<a name="l00463"></a>00463 }
+<a name="l00464"></a>00464 }
+<a name="l00465"></a>00465
+<a name="l00466"></a>00466 <span class="keywordflow">if</span>(!translated) {
+<a name="l00467"></a>00467 <a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *msg = plural ? ( n_ == 1 ? <span class="keywordtype">id</span> : plural) : <span class="keywordtype">id</span>;
+<a name="l00468"></a>00468
+<a name="l00469"></a>00469 <span class="keywordflow">if</span>(facet) {
+<a name="l00470"></a>00470 translated = facet-&gt;convert(msg,buffer);
+<a name="l00471"></a>00471 }
+<a name="l00472"></a>00472 <span class="keywordflow">else</span> {
+<a name="l00473"></a>00473 translated = details::string_cast_traits&lt;char_type&gt;::cast(msg,buffer);
+<a name="l00474"></a>00474 }
+<a name="l00475"></a>00475 }
+<a name="l00476"></a>00476 <span class="keywordflow">return</span> translated;
+<a name="l00477"></a>00477 }
+<a name="l00478"></a>00478
+<a name="l00480"></a>00480
+<a name="l00481"></a>00481 <span class="keywordtype">int</span> n_;
+<a name="l00482"></a>00482 <a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *c_id_;
+<a name="l00483"></a>00483 <a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *c_context_;
+<a name="l00484"></a>00484 <a class="code" href="classboost_1_1locale_1_1basic__message.html#aa5d8dcf9d7aa01abbe73c841299345db" title="The character this message object is used with.">char_type</a> <span class="keyword">const</span> *c_plural_;
+<a name="l00485"></a>00485 <a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> id_;
+<a name="l00486"></a>00486 <a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> context_;
+<a name="l00487"></a>00487 <a class="code" href="group__message.html#ga529423e08fc9a8ca9ceef5c56181c6d3" title="The string type this object can be used with.">string_type</a> plural_;
+<a name="l00488"></a>00488 };
+<a name="l00489"></a>00489
+<a name="l00490"></a>00490
+<a name="l00494"></a><a class="code" href="group__message.html#ga556e3e7696302902b2242a7a94516dee">00494</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;char&gt;</a> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">message</a>;
+<a name="l00498"></a><a class="code" href="group__message.html#gafea131aa123d666905076f34b77326a9">00498</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;wchar_t&gt;</a> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">wmessage</a>;
+<a name="l00499"></a>00499 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR16_T</span>
+<a name="l00500"></a>00500 <span class="preprocessor"></span>
+<a name="l00501"></a>00501
+<a name="l00502"></a>00502
+<a name="l00503"></a><a class="code" href="group__message.html#ga43ddf342eec2ab9145d04727f8161e1c">00503</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;char16_t&gt;</a> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">u16message</a>;
+<a name="l00504"></a>00504 <span class="preprocessor"> #endif</span>
+<a name="l00505"></a>00505 <span class="preprocessor"></span><span class="preprocessor"> #ifdef BOOST_HAS_CHAR32_T</span>
+<a name="l00506"></a>00506 <span class="preprocessor"></span>
+<a name="l00507"></a>00507
+<a name="l00508"></a>00508
+<a name="l00509"></a><a class="code" href="group__message.html#ga6c0b40121a07c13de9e712845b43468f">00509</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;char32_t&gt;</a> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">u32message</a>;
+<a name="l00510"></a>00510 <span class="preprocessor"> #endif</span>
+<a name="l00511"></a>00511 <span class="preprocessor"></span>
+<a name="l00515"></a>00515 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00516"></a><a class="code" href="group__message.html#ga65c188250db86a10f038b77c377f6ec5">00516</a> std::basic_ostream&lt;CharType&gt; &amp;operator&lt;&lt;(std::basic_ostream&lt;CharType&gt; &amp;out,<a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a> <span class="keyword">const</span> &amp;msg)
+<a name="l00517"></a>00517 {
+<a name="l00518"></a>00518 msg.write(out);
+<a name="l00519"></a>00519 <span class="keywordflow">return</span> out;
+<a name="l00520"></a>00520 }
+<a name="l00521"></a>00521
+<a name="l00525"></a>00525
+<a name="l00529"></a>00529 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00530"></a><a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43">00530</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a> <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(CharType <span class="keyword">const</span> *msg)
+<a name="l00531"></a>00531 {
+<a name="l00532"></a>00532 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(msg);
+<a name="l00533"></a>00533 }
+<a name="l00537"></a>00537 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00538"></a><a class="code" href="group__message.html#gac1392ab84aa084a652fca57ad11ab754">00538</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a> <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>( CharType <span class="keyword">const</span> *context,
+<a name="l00539"></a>00539 CharType <span class="keyword">const</span> *msg)
+<a name="l00540"></a>00540 {
+<a name="l00541"></a>00541 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(context,msg);
+<a name="l00542"></a>00542 }
+<a name="l00546"></a>00546 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00547"></a><a class="code" href="group__message.html#gaef8d3a6063f6b2a79b1cebeda9bafd52">00547</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a> <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>( CharType <span class="keyword">const</span> *single,
+<a name="l00548"></a>00548 CharType <span class="keyword">const</span> *plural,
+<a name="l00549"></a>00549 <span class="keywordtype">int</span> n)
+<a name="l00550"></a>00550 {
+<a name="l00551"></a>00551 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(single,plural,n);
+<a name="l00552"></a>00552 }
+<a name="l00556"></a>00556 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00557"></a><a class="code" href="group__message.html#gafae5e056f599ae051e81b84e14f61255">00557</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a> <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>( CharType <span class="keyword">const</span> *context,
+<a name="l00558"></a>00558 CharType <span class="keyword">const</span> *single,
+<a name="l00559"></a>00559 CharType <span class="keyword">const</span> *plural,
+<a name="l00560"></a>00560 <span class="keywordtype">int</span> n)
+<a name="l00561"></a>00561 {
+<a name="l00562"></a>00562 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(context,single,plural,n);
+<a name="l00563"></a>00563 }
+<a name="l00564"></a>00564
+<a name="l00568"></a>00568 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00569"></a><a class="code" href="group__message.html#gabe61325e81b62bab9351d514c2f3218c">00569</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a> <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;msg)
+<a name="l00570"></a>00570 {
+<a name="l00571"></a>00571 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(msg);
+<a name="l00572"></a>00572 }
+<a name="l00573"></a>00573
+<a name="l00577"></a>00577 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00578"></a><a class="code" href="group__message.html#gaf1e2c81bd1be15d2075bbba353251cd4">00578</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a> <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>( std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;context,
+<a name="l00579"></a>00579 std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;msg)
+<a name="l00580"></a>00580 {
+<a name="l00581"></a>00581 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(context,msg);
+<a name="l00582"></a>00582 }
+<a name="l00586"></a>00586 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00587"></a><a class="code" href="group__message.html#ga534be0a86c6ed58adb94127decc704cd">00587</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a> <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>( std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;context,
+<a name="l00588"></a>00588 std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;single,
+<a name="l00589"></a>00589 std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;plural,
+<a name="l00590"></a>00590 <span class="keywordtype">int</span> n)
+<a name="l00591"></a>00591 {
+<a name="l00592"></a>00592 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(context,single,plural,n);
+<a name="l00593"></a>00593 }
+<a name="l00594"></a>00594
+<a name="l00598"></a>00598
+<a name="l00599"></a>00599 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00600"></a><a class="code" href="group__message.html#ga39d53e2aa86045ffb19ac7533466db26">00600</a> <span class="keyword">inline</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a> <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>( std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;single,
+<a name="l00601"></a>00601 std::basic_string&lt;CharType&gt; <span class="keyword">const</span> &amp;plural,
+<a name="l00602"></a>00602 <span class="keywordtype">int</span> n)
+<a name="l00603"></a>00603 {
+<a name="l00604"></a>00604 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(single,plural,n);
+<a name="l00605"></a>00605 }
+<a name="l00606"></a>00606
+<a name="l00608"></a>00608
+<a name="l00612"></a>00612
+<a name="l00616"></a>00616 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00617"></a><a class="code" href="group__message.html#gadd3006a6d5d1c804490152ee6300d47f">00617</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__message.html#gadd3006a6d5d1c804490152ee6300d47f">gettext</a>(CharType <span class="keyword">const</span> *<span class="keywordtype">id</span>,
+<a name="l00618"></a>00618 std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00619"></a>00619 {
+<a name="l00620"></a>00620 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(id).str(loc);
+<a name="l00621"></a>00621 }
+<a name="l00625"></a>00625 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00626"></a><a class="code" href="group__message.html#ga80a13c0c61d4d0b530ef7df873dc31bb">00626</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__message.html#ga80a13c0c61d4d0b530ef7df873dc31bb">ngettext</a>( CharType <span class="keyword">const</span> *s,
+<a name="l00627"></a>00627 CharType <span class="keyword">const</span> *p,
+<a name="l00628"></a>00628 <span class="keywordtype">int</span> n,
+<a name="l00629"></a>00629 std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00630"></a>00630 {
+<a name="l00631"></a>00631 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(s,p,n).str(loc);
+<a name="l00632"></a>00632 }
+<a name="l00636"></a>00636 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00637"></a><a class="code" href="group__message.html#ga4679dd42049207a9632002cd13d29260">00637</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__message.html#ga4679dd42049207a9632002cd13d29260">dgettext</a>( <span class="keywordtype">char</span> <span class="keyword">const</span> *<a class="code" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">domain</a>,
+<a name="l00638"></a>00638 CharType <span class="keyword">const</span> *<span class="keywordtype">id</span>,
+<a name="l00639"></a>00639 std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00640"></a>00640 {
+<a name="l00641"></a>00641 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(id).str(loc,domain);
+<a name="l00642"></a>00642 }
+<a name="l00643"></a>00643
+<a name="l00647"></a>00647 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00648"></a><a class="code" href="group__message.html#ga8969a29e9eb19ce41178920892da5c27">00648</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__message.html#ga8969a29e9eb19ce41178920892da5c27">dngettext</a>( <span class="keywordtype">char</span> <span class="keyword">const</span> *domain,
+<a name="l00649"></a>00649 CharType <span class="keyword">const</span> *s,
+<a name="l00650"></a>00650 CharType <span class="keyword">const</span> *p,
+<a name="l00651"></a>00651 <span class="keywordtype">int</span> n,
+<a name="l00652"></a>00652 std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00653"></a>00653 {
+<a name="l00654"></a>00654 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(s,p,n).str(loc,domain);
+<a name="l00655"></a>00655 }
+<a name="l00659"></a>00659 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00660"></a><a class="code" href="group__message.html#ga2a39910bdf57e4d151607ee1a115b853">00660</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__message.html#ga2a39910bdf57e4d151607ee1a115b853">pgettext</a>( CharType <span class="keyword">const</span> *context,
+<a name="l00661"></a>00661 CharType <span class="keyword">const</span> *<span class="keywordtype">id</span>,
+<a name="l00662"></a>00662 std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00663"></a>00663 {
+<a name="l00664"></a>00664 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(context,id).str(loc);
+<a name="l00665"></a>00665 }
+<a name="l00669"></a>00669 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00670"></a><a class="code" href="group__message.html#ga65fb8244993e7e3870e4e89540803323">00670</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__message.html#ga65fb8244993e7e3870e4e89540803323">npgettext</a>( CharType <span class="keyword">const</span> *context,
+<a name="l00671"></a>00671 CharType <span class="keyword">const</span> *s,
+<a name="l00672"></a>00672 CharType <span class="keyword">const</span> *p,
+<a name="l00673"></a>00673 <span class="keywordtype">int</span> n,
+<a name="l00674"></a>00674 std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00675"></a>00675 {
+<a name="l00676"></a>00676 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(context,s,p,n).str(loc);
+<a name="l00677"></a>00677 }
+<a name="l00681"></a>00681 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00682"></a><a class="code" href="group__message.html#ga352dfa66c04ff924f1999ca47ff11aba">00682</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__message.html#ga352dfa66c04ff924f1999ca47ff11aba">dpgettext</a>( <span class="keywordtype">char</span> <span class="keyword">const</span> *domain,
+<a name="l00683"></a>00683 CharType <span class="keyword">const</span> *context,
+<a name="l00684"></a>00684 CharType <span class="keyword">const</span> *<span class="keywordtype">id</span>,
+<a name="l00685"></a>00685 std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00686"></a>00686 {
+<a name="l00687"></a>00687 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(context,id).str(loc,domain);
+<a name="l00688"></a>00688 }
+<a name="l00692"></a>00692 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00693"></a><a class="code" href="group__message.html#ga49b1d83256ead90a9f86940e3d977dee">00693</a> std::basic_string&lt;CharType&gt; <a class="code" href="group__message.html#ga49b1d83256ead90a9f86940e3d977dee">dnpgettext</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *domain,
+<a name="l00694"></a>00694 CharType <span class="keyword">const</span> *context,
+<a name="l00695"></a>00695 CharType <span class="keyword">const</span> *s,
+<a name="l00696"></a>00696 CharType <span class="keyword">const</span> *p,
+<a name="l00697"></a>00697 <span class="keywordtype">int</span> n,
+<a name="l00698"></a>00698 std::locale <span class="keyword">const</span> &amp;loc=std::locale())
+<a name="l00699"></a>00699 {
+<a name="l00700"></a>00700 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1basic__message.html" title="This class represents a message that can be converted to a specific locale message.">basic_message&lt;CharType&gt;</a>(context,s,p,n).str(loc,domain);
+<a name="l00701"></a>00701 }
+<a name="l00702"></a>00702
+<a name="l00706"></a>00706
+<a name="l00707"></a>00707 <span class="keyword">template</span>&lt;&gt;
+<a name="l00708"></a>00708 <span class="keyword">struct </span>BOOST_LOCALE_DECL base_message_format&lt;char&gt; : <span class="keyword">public</span> std::locale::facet
+<a name="l00709"></a>00709 {
+<a name="l00710"></a>00710 base_message_format(<span class="keywordtype">size_t</span> refs = 0) : std::locale::facet(refs)
+<a name="l00711"></a>00711 {
+<a name="l00712"></a>00712 }
+<a name="l00713"></a>00713 <span class="keyword">static</span> std::locale::id id;
+<a name="l00714"></a>00714 };
+<a name="l00715"></a>00715
+<a name="l00716"></a>00716 <span class="keyword">template</span>&lt;&gt;
+<a name="l00717"></a>00717 <span class="keyword">struct </span>BOOST_LOCALE_DECL base_message_format&lt;wchar_t&gt; : <span class="keyword">public</span> std::locale::facet
+<a name="l00718"></a>00718 {
+<a name="l00719"></a>00719 base_message_format(<span class="keywordtype">size_t</span> refs = 0) : std::locale::facet(refs)
+<a name="l00720"></a>00720 {
+<a name="l00721"></a>00721 }
+<a name="l00722"></a>00722 <span class="keyword">static</span> std::locale::id id;
+<a name="l00723"></a>00723 };
+<a name="l00724"></a>00724
+<a name="l00725"></a>00725 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR16_T</span>
+<a name="l00726"></a>00726 <span class="preprocessor"></span>
+<a name="l00727"></a>00727 <span class="keyword">template</span>&lt;&gt;
+<a name="l00728"></a>00728 <span class="keyword">struct </span>BOOST_LOCALE_DECL base_message_format&lt;char16_t&gt; : <span class="keyword">public</span> std::locale::facet
+<a name="l00729"></a>00729 {
+<a name="l00730"></a>00730 base_message_format(<span class="keywordtype">size_t</span> refs = 0) : std::locale::facet(refs)
+<a name="l00731"></a>00731 {
+<a name="l00732"></a>00732 }
+<a name="l00733"></a>00733 <span class="keyword">static</span> std::locale::id id;
+<a name="l00734"></a>00734 };
+<a name="l00735"></a>00735
+<a name="l00736"></a>00736 <span class="preprocessor"> #endif</span>
+<a name="l00737"></a>00737 <span class="preprocessor"></span>
+<a name="l00738"></a>00738 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR32_T</span>
+<a name="l00739"></a>00739 <span class="preprocessor"></span>
+<a name="l00740"></a>00740 <span class="keyword">template</span>&lt;&gt;
+<a name="l00741"></a>00741 <span class="keyword">struct </span>BOOST_LOCALE_DECL base_message_format&lt;char32_t&gt; : <span class="keyword">public</span> std::locale::facet
+<a name="l00742"></a>00742 {
+<a name="l00743"></a>00743 base_message_format(<span class="keywordtype">size_t</span> refs = 0) : std::locale::facet(refs)
+<a name="l00744"></a>00744 {
+<a name="l00745"></a>00745 }
+<a name="l00746"></a>00746 <span class="keyword">static</span> std::locale::id id;
+<a name="l00747"></a>00747 };
+<a name="l00748"></a>00748
+<a name="l00749"></a>00749 <span class="preprocessor"> #endif</span>
+<a name="l00750"></a>00750 <span class="preprocessor"></span>
+<a name="l00752"></a>00752
+<a name="l00756"></a>00756
+<a name="l00757"></a>00757 <span class="keyword">namespace </span>as {
+<a name="l00759"></a>00759 <span class="keyword">namespace </span>details {
+<a name="l00760"></a>00760 <span class="keyword">struct </span>set_domain {
+<a name="l00761"></a>00761 std::string domain_id;
+<a name="l00762"></a>00762 };
+<a name="l00763"></a>00763 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;
+<a name="l00764"></a>00764 std::basic_ostream&lt;CharType&gt; &amp;operator&lt;&lt;(std::basic_ostream&lt;CharType&gt; &amp;out, set_domain <span class="keyword">const</span> &amp;dom)
+<a name="l00765"></a>00765 {
+<a name="l00766"></a>00766 <span class="keywordtype">int</span> <span class="keywordtype">id</span> = std::use_facet&lt;message_format&lt;CharType&gt; &gt;(out.getloc()).<a class="code" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">domain</a>(dom.domain_id);
+<a name="l00767"></a>00767 <a class="code" href="classboost_1_1locale_1_1ios__info.html#a02f6979dffc2df97c3612d72b7c7241b">ios_info::get</a>(out).domain_id(<span class="keywordtype">id</span>);
+<a name="l00768"></a>00768 <span class="keywordflow">return</span> out;
+<a name="l00769"></a>00769 }
+<a name="l00770"></a>00770 } <span class="comment">// details</span>
+<a name="l00772"></a>00772 <span class="comment"></span>
+<a name="l00777"></a>00777
+<a name="l00783"></a>00783 <span class="keyword">inline</span>
+<a name="l00784"></a>00784 <span class="preprocessor"> #ifdef BOOST_LOCALE_DOXYGEN</span>
+<a name="l00785"></a>00785 <span class="preprocessor"></span> unspecified_type
+<a name="l00786"></a>00786 <span class="preprocessor"> #else</span>
+<a name="l00787"></a>00787 <span class="preprocessor"></span> details::set_domain
+<a name="l00788"></a>00788 <span class="preprocessor"> #endif</span>
+<a name="l00789"></a><a class="code" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">00789</a> <span class="preprocessor"></span> <a class="code" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">domain</a>(std::string <span class="keyword">const</span> &amp;<span class="keywordtype">id</span>)
+<a name="l00790"></a>00790 {
+<a name="l00791"></a>00791 details::set_domain tmp = { <span class="keywordtype">id</span> };
+<a name="l00792"></a>00792 <span class="keywordflow">return</span> tmp;
+<a name="l00793"></a>00793 }
+<a name="l00795"></a>00795 } <span class="comment">// as</span>
+<a name="l00796"></a>00796 } <span class="comment">// locale </span>
+<a name="l00797"></a>00797 } <span class="comment">// boost</span>
+<a name="l00798"></a>00798
+<a name="l00799"></a>00799 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00800"></a>00800 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l00801"></a>00801 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00802"></a>00802 <span class="preprocessor"></span>
+<a name="l00803"></a>00803
+<a name="l00804"></a>00804 <span class="preprocessor">#endif</span>
+<a name="l00805"></a>00805 <span class="preprocessor"></span>
+<a name="l00806"></a>00806 <span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+<a name="l00807"></a>00807
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/messages_formatting.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/messages_formatting.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,431 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Messages Formatting (Translation)</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="using_boost_locale.html">Using Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Messages Formatting (Translation) </h1> </div>
+</div>
+<div class="contents">
+<ul>
+<li><a class="el" href="messages_formatting.html#messages_formatting_into">Introduction</a></li>
+<li><a class="el" href="messages_formatting.html#msg_loading_dictionaries">Loading dictionaries</a></li>
+<li><a class="el" href="messages_formatting.html#message_translation">Message Translation</a><ul>
+<li><a class="el" href="messages_formatting.html#indirect_message_translation">Indirect Message Translation</a></li>
+<li><a class="el" href="messages_formatting.html#plural_forms">Plural Forms</a></li>
+<li><a class="el" href="messages_formatting.html#multiple_gettext_domain">Working with multiple messages domains</a></li>
+<li><a class="el" href="messages_formatting.html#direct_message_translation">Direct translation (Convenience Interface)</a></li>
+</ul>
+</li>
+<li><a class="el" href="messages_formatting.html#extracting_messages_from_code">Extracting messages from the source code</a></li>
+<li><a class="el" href="messages_formatting.html#custom_file_system_support">Custom Filesystem Support</a></li>
+<li><a class="el" href="messages_formatting.html#msg_non_ascii_keys">Non US-ASCII Keys</a></li>
+<li><a class="el" href="messages_formatting.html#msg_qna">Questions and Answers</a></li>
+</ul>
+<h2><a class="anchor" id="messages_formatting_into"></a>
+Introduction</h2>
+<p>Messages formatting is probably the most important part of the localization - making your application speak in the user's language.</p>
+<p>Boost.Locale uses the GNU Gettext localization model. We recommend you read the general documentation of GNU Gettext, as it is outside the scope of this document.</p>
+<p>The model is following:</p>
+<ul>
+<li>First, our application <code>foo</code> is prepared for localization by calling the <a class="el" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43">translate</a> function for each message used in user interface. <br/>
+ For example: <div class="fragment"><pre class="fragment"> cout &lt;&lt; <span class="stringliteral">&quot;Hello World&quot;</span> &lt;&lt; endl;
+</pre></div> Is changed to <br/>
+ <div class="fragment"><pre class="fragment"> cout &lt;&lt; <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;Hello World&quot;</span>) &lt;&lt; endl;
+</pre></div></li>
+<li>Then all messages are extracted from the source code and a special <code>foo.po</code> file is generated that contains all of the original English strings. <br/>
+ <div class="fragment"><pre class="fragment">
+ ...
+ msgid "Hello World"
+ msgstr ""
+ ...
+ </pre></div></li>
+<li>The <code>foo.po</code> file is translated for the supported locales. For example, <code>de.po</code>, <code>ar.po</code>, <code>en_CA.po</code> , and <code>he.po</code>. <br/>
+ <div class="fragment"><pre class="fragment">
+ ...
+ msgid "Hello World"
+ msgstr "שלום עולם"
+ </pre></div> And then compiled to the binary <code>mo</code> format and stored in the following file structure: <br/>
+ <div class="fragment"><pre class="fragment">
+ de
+ de/LC_MESSAGES
+ de/LC_MESSAGES/foo.mo
+ en_CA/
+ en_CA/LC_MESSAGES
+ en_CA/LC_MESSAGES/foo.mo
+ ...
+ </pre></div> <br/>
+ When the application starts, it loads the required dictionaries. Then when the <code>translate</code> function is called and the message is written to an output stream, a dictionary lookup is performed and the localized message is written out instead.</li>
+</ul>
+<h2><a class="anchor" id="msg_loading_dictionaries"></a>
+Loading dictionaries</h2>
+<p>All the dictionaries are loaded by the <a class="el" href="classboost_1_1locale_1_1generator.html">generator</a> class. Using localized strings in the application, requires specification of the following parameters:</p>
+<ol type="1">
+<li>The search path of the dictionaries</li>
+<li>The application domain (or name)</li>
+</ol>
+<p>This is done by calling the following member functions of the <a class="el" href="classboost_1_1locale_1_1generator.html">generator</a> class:</p>
+<ul>
+<li><a class="el" href="classboost_1_1locale_1_1generator.html#a12823bbdb209690bfb77caa6404fd91b">add_messages_path</a> - add the root path to the dictionaries. <br/>
+ For example: if the dictionary is located at <code>/usr/share/locale/ar/LC_MESSAGES/foo</code>.mo, then path should be <code>/usr/share/locale</code>. <br/>
+</li>
+<li><a class="el" href="classboost_1_1locale_1_1generator.html#a15020562d16dbbe276325b0162d54565">add_messages_domain</a> - add the domain (name) of the application. In the above case it would be "foo".</li>
+</ul>
+<dl class="note"><dt><b>Note:</b></dt><dd>At least one domain and one path should be specified in order to load dictionaries.</dd></dl>
+<p>This is an example of our first fully localized program:</p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">#include &lt;boost/locale.hpp&gt;</span>
+<span class="preprocessor">#include &lt;iostream&gt;</span>
+
+<span class="keyword">using namespace </span>std;
+<span class="keyword">using namespace </span>boost::locale;
+
+<span class="keywordtype">int</span> main()
+{
+ generator gen;
+
+ <span class="comment">// Specify location of dictionaries</span>
+ gen.add_messages_path(<span class="stringliteral">&quot;.&quot;</span>);
+ gen.add_messages_domain(<span class="stringliteral">&quot;hello&quot;</span>);
+
+ <span class="comment">// Generate locales and imbue them to iostream</span>
+ locale::global(gen(<span class="stringliteral">&quot;&quot;</span>));
+ cout.imbue(locale());
+
+ <span class="comment">// Display a message using current system locale</span>
+ cout &lt;&lt; <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;Hello World&quot;</span>) &lt;&lt; endl;
+}
+</pre></div><h2><a class="anchor" id="message_translation"></a>
+Message Translation</h2>
+<p>There are two ways to translate messages:</p>
+<ul>
+<li>using <a class="el" href="group__message.html#boost_locale_translate_family">boost::locale::translate()</a> family of functions: <br/>
+ These functions create a special proxy object <a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a> that can be converted to string according to given locale or written to <code>std::ostream</code> formatting the message in the <code>std::ostream's</code> locale. <br/>
+ It is very convenient for working with <code>std::ostream</code> object and for postponing message translation</li>
+<li>Using <a class="el" href="group__message.html#boost_locale_gettext_family">boost::locale::gettext()</a> family of functions: <br/>
+ These are functions that are used for direct message translation: they receive as a parameter an original message or a key and convert it to the <code>std::basic_string</code> in given locale. <br/>
+ These functions have similar names to thous used in the GNU Gettext library.</li>
+</ul>
+<h3><a class="anchor" id="indirect_message_translation"></a>
+Indirect Message Translation</h3>
+<p>The basic function that allows us to translate a message is <a class="el" href="group__message.html#boost_locale_translate_family">boost::locale::translate()</a> family of functions.</p>
+<p>These functions use a character type <code>CharType</code> as template parameter and receive either <code>CharType const *</code> or <code>std::basic_string&lt;CharType&gt;</code> as input.</p>
+<p>These functions receive an original message and return a special proxy object - <a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message&lt;CharType&gt;</a>. This object holds all the required information for the message formatting.</p>
+<p>When this object is written to an output <code>ostream</code>, it performs a dictionary lookup of the message according to the locale imbued in <code>iostream</code>.</p>
+<p>If the message is found in the dictionary it is written to the output stream, otherwise the original string is written to the stream.</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"><span class="comment">// Translate a simple message &quot;Hello World!&quot;</span>
+std::cout &lt;&lt; <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">boost::locale::translate</a>(<span class="stringliteral">&quot;Hello World!&quot;</span>) &lt;&lt; std::endl;
+</pre></div><p>This allows the program to postpone translation of the message until the translation is actually needed, even to different locale targets.</p>
+<div class="fragment"><pre class="fragment"><span class="comment">// Several output stream that we write a message to</span>
+<span class="comment">// English, Japanese, Hebrew etc.</span>
+<span class="comment">// Each one them has installed std::locale object that represents</span>
+<span class="comment">// their specific locale</span>
+std::ofstream en,ja,he,de,ar;
+
+<span class="comment">// Send single message to multiple streams</span>
+<span class="keywordtype">void</span> send_to_all(<a class="code" href="group__message.html#ga556e3e7696302902b2242a7a94516dee">message</a> <span class="keyword">const</span> &amp;msg)
+{
+ <span class="comment">// in each of the cases below</span>
+ <span class="comment">// the message is translated to different</span>
+ <span class="comment">// language</span>
+ en &lt;&lt; msg;
+ ja &lt;&lt; msg;
+ he &lt;&lt; msg;
+ de &lt;&lt; msg;
+ ar &lt;&lt; msg;
+}
+
+<span class="keywordtype">int</span> main()
+{
+ ...
+ send_to_all(<a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;Hello World&quot;</span>));
+}
+</pre></div><dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<ul>
+<li><a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a> can be implicitly converted to an apopriate std::basic_string using the global locale: <br/>
+ <div class="fragment"><pre class="fragment"> std::wstring msg = <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(L<span class="stringliteral">&quot;Do you want to open the file?&quot;</span>);
+</pre></div></li>
+<li><a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a> can be explicitly converted to a string using the <a class="el" href="group__message.html#ga11c5f400e03e0b16b9a60bd3fae3f168">str()</a> member function for a specific locale. <br/>
+ <div class="fragment"><pre class="fragment"> std::locale ru_RU = ... ;
+ std::string msg = <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;Do you want to open the file?&quot;</span>).str(ru_RU);
+</pre></div></li>
+</ul>
+<h3><a class="anchor" id="plural_forms"></a>
+Plural Forms</h3>
+<p>GNU Gettext catalogs have simple, robust and yet powerful plural forms support. We recommend to read the original GNU documentation here.</p>
+<p>Let's try to solve a simple problem, displaying a message to the user:</p>
+<div class="fragment"><pre class="fragment"> <span class="keywordflow">if</span>(files == 1)
+ cout &lt;&lt; <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;You have 1 file in the directory&quot;</span>) &lt;&lt; endl;
+ <span class="keywordflow">else</span>
+ cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;You have {1} files in the directory&quot;</span>)) % files &lt;&lt; endl;
+</pre></div><p>This very simple task becomes quite complicated when we deal with languages other than English. Many languages have more than two plural forms. For example, in Hebrew there are special forms for single, double, plural, and plural above 10. They can't be distinguished by the simple rule "is n 1 or not"</p>
+<p>The correct solution is to give a translator an ability to choose a plural form on its own. Thus the translate function can receive two additional parameters English plural form a number: <code>translate(single,plural,count)</code></p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment">cout &lt;&lt; <a class="code" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a>(<a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>( <span class="stringliteral">&quot;You have {1} file in the directory&quot;</span>,
+ <span class="stringliteral">&quot;You have {1} files in the directory&quot;</span>,
+ files)) % files &lt;&lt; endl;
+</pre></div><p>A special entry in the dictionary specifies the rule to choose the correct plural form in the target language. For example, the Slavic language family has 3 plural forms, that can be chosen using following equation:</p>
+<div class="fragment"><pre class="fragment"> plural=n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2;
+</pre></div><p>Such equation is stored in the message catalog itself and it is evaluated during translation to supply the correct form.</p>
+<p>So the code above would display 3 different forms in Russian locale for values of 1, 3 and 5:</p>
+<div class="fragment"><pre class="fragment">
+У вас есть 1 файл в каталоге
+У вас есть 3 файла в каталоге
+У вас есть 5 файлов в каталоге
+</pre></div><p>And for Japanese that does not have plural forms at all it would display the same message for any numeric value.</p>
+<p>For more detailed information please refer to GNU Gettext: 11.2.6 Additional functions for plural forms</p>
+<h3><a class="anchor" id="adding_context_information"></a>
+Adding Context Information</h3>
+<p>In many cases it is not sufficient to provide only the original English string to get the correct translation. You sometimes need to provide some context information. In German, for example, a button labeled "open" is translated to "öffnen" in the context of "opening a file", or to "aufbauen" in the context of opening an internet connection.</p>
+<p>In these cases you must add some context information to the original string, by adding a comment.</p>
+<div class="fragment"><pre class="fragment">button-&gt;setLabel(<a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;File&quot;</span>,<span class="stringliteral">&quot;open&quot;</span>));
+</pre></div><p>The context information is provided as the first parameter to the <a class="el" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43">translate</a> function in both singular and plural forms. The translator would see this context information and would be able to translate the "open" string correctly.</p>
+<p>For example, this is how the <code>po</code> file would look:</p>
+<div class="fragment"><pre class="fragment">msgctxt <span class="stringliteral">&quot;File&quot;</span>
+msgid <span class="stringliteral">&quot;open&quot;</span>
+msgstr <span class="stringliteral">&quot;öffnen&quot;</span>
+
+msgctxt <span class="stringliteral">&quot;Internet Connection&quot;</span>
+msgid <span class="stringliteral">&quot;open&quot;</span>
+msgstr <span class="stringliteral">&quot;aufbauen&quot;</span>
+</pre></div><dl class="note"><dt><b>Note:</b></dt><dd>Context information requires more recent versions of the gettext tools (&gt;=0.15) for extracting strings and formatting message catalogs.</dd></dl>
+<h3><a class="anchor" id="multiple_gettext_domain"></a>
+Working with multiple messages domains</h3>
+<p>In some cases it is useful to work with multiple message domains.</p>
+<p>For example, if an application consists of several independent modules, it may have several domains - a separate domain for each module.</p>
+<p>For example, developing a FooBar office suite we might have:</p>
+<ul>
+<li>a FooBar Word Processor, using the "foobarwriter" domain</li>
+<li>a FooBar Spreadsheet, using the "foobarspreadsheet" domain</li>
+<li>a FooBar Spell Checker, using the "foobarspell" domain</li>
+<li>a FooBar File handler, using the "foobarodt" domain</li>
+</ul>
+<p>There are three ways to use non-default domains:</p>
+<ul>
+<li>When working with <code>iostream</code>, you can use the parameterized manipulator <a class="el" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">as::domain(std::string const &amp;)</a>, which allows switching domains in a stream: <br/>
+ <div class="fragment"><pre class="fragment"> cout &lt;&lt; <a class="code" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">as::domain</a>(<span class="stringliteral">&quot;foo&quot;</span>) &lt;&lt; <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;Hello&quot;</span>) &lt;&lt; <a class="code" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">as::domain</a>(<span class="stringliteral">&quot;bar&quot;</span>) &lt;&lt; <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;Hello&quot;</span>);
+ <span class="comment">// First translation is taken from dictionary foo and the other from dictionary bar</span>
+</pre></div></li>
+<li>You can specify the domain explicitly when converting a <code>message</code> object to a string: <div class="fragment"><pre class="fragment"> std::wstring foo_msg = <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(L<span class="stringliteral">&quot;Hello World&quot;</span>).str(<span class="stringliteral">&quot;foo&quot;</span>);
+ std::wstring bar_msg = <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(L<span class="stringliteral">&quot;Hello World&quot;</span>).str(<span class="stringliteral">&quot;bar&quot;</span>);
+</pre></div></li>
+<li>You can specify the domain directly using a <a class="el" href="messages_formatting.html#direct_message_translation">convenience</a> interface: <div class="fragment"><pre class="fragment"> MessageBox(<a class="code" href="group__message.html#ga4679dd42049207a9632002cd13d29260">dgettext</a>(<span class="stringliteral">&quot;gui&quot;</span>,<span class="stringliteral">&quot;Error Occurred&quot;</span>));
+</pre></div></li>
+</ul>
+<h3><a class="anchor" id="direct_message_translation"></a>
+Direct translation (Convenience Interface)</h3>
+<p>Many applications do not write messages directly to an output stream or use only one locale in the process, so calling <code>translate("Hello World").str()</code> for a single message would be annoying. Thus Boost.Locale provides GNU Gettext-like localization functions for direct translation of the messages. However, unlike the GNU Gettext functions, the Boost.Locale translation functions provide an additional optional parameter (locale), and support wide, u16 and u32 strings.</p>
+<p>The GNU Gettext like functions prototypes can be found <a class="el" href="group__message.html#boost_locale_gettext_family">in this section</a>.</p>
+<p>All of these functions can have different prefixes for different forms:</p>
+<ul>
+<li><code>d</code> - translation in specific domain</li>
+<li><code>n</code> - plural form translation</li>
+<li><code>p</code> - translation in specific context</li>
+</ul>
+<div class="fragment"><pre class="fragment"> MessageBoxW(0,<a class="code" href="group__message.html#ga2a39910bdf57e4d151607ee1a115b853">pgettext</a>(L<span class="stringliteral">&quot;File Dialog&quot;</span>,L<span class="stringliteral">&quot;Open?&quot;</span>).c_str(),<a class="code" href="group__message.html#gadd3006a6d5d1c804490152ee6300d47f">gettext</a>(L<span class="stringliteral">&quot;Question&quot;</span>).c_str(),MB_YESNO);
+</pre></div><h2><a class="anchor" id="extracting_messages_from_code"></a>
+Extracting messages from the source code</h2>
+<p>There are many tools to extract messages from the source code into the <code></code>.po file format. The most popular and "native" tool is <code>xgettext</code> which is installed by default on most Unix systems and freely downloadable for Windows (see <a class="el" href="gettext_for_windows.html">Using Gettext Tools on Windows</a>).</p>
+<p>For example, we have a source file called <code>dir.cpp</code> that prints:</p>
+<div class="fragment"><pre class="fragment"> cout &lt;&lt; <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;Listing of catalog {1}:&quot;</span>) % file_name &lt;&lt; endl;
+ cout &lt;&lt; <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;Catalog {1} contains 1 file&quot;</span>,<span class="stringliteral">&quot;Catalog {1} contains {2,num} files&quot;</span>,files_no)
+ % file_name % files_no &lt;&lt; endl;
+</pre></div><p>Now we run:</p>
+<div class="fragment"><pre class="fragment">
+xgettext --keyword=translate:1,1t --keyword=translate:1,2,3t dir.cpp
+</pre></div><p>And a file called <code>messages.po</code> created that looks like this (approximately):</p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">#: dir.cpp:1</span>
+<span class="preprocessor"></span>msgid <span class="stringliteral">&quot;Listing of catalog {1}:&quot;</span>
+msgstr <span class="stringliteral">&quot;&quot;</span>
+
+<span class="preprocessor">#: dir.cpp:2</span>
+<span class="preprocessor"></span>msgid <span class="stringliteral">&quot;Catalog {1} contains 1 file&quot;</span>
+msgid_plural <span class="stringliteral">&quot;Catalog {1} contains {2,num} files&quot;</span>
+msgstr[0] <span class="stringliteral">&quot;&quot;</span>
+msgstr[1] <span class="stringliteral">&quot;&quot;</span>
+</pre></div><p>This file can be given to translators to adapt it to specific languages.</p>
+<p>We used the <code>--keyword</code> parameter of <code>xgettext</code> to make it suitable for extracting messages from source code localized with Boost.Locale, searching for <code><a class="el" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate()</a></code> function calls instead of the default <code><a class="el" href="group__message.html#gadd3006a6d5d1c804490152ee6300d47f">gettext()</a></code> and <code><a class="el" href="group__message.html#ga80a13c0c61d4d0b530ef7df873dc31bb">ngettext()</a></code> ones. The first parameter <code>--keyword=translate:1,1t</code> provides the template for basic messages: a <code>translate</code> function that is called with 1 argument (1t) and the first message is taken as the key. The second one <code>--keyword=translate:1,2,3t</code> is used for plural forms. It tells <code>xgettext</code> to use a <code><a class="el" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a me
ssage, msg is not copied.">translate()</a></code> function call with 3 parameters (3t) and take the 1st and 2nd parameter as keys. An additional marker <code>Nc</code> can be used to mark context information.</p>
+<p>The full set of xgettext parameters suitable for Boost.Locale is:</p>
+<div class="fragment"><pre class="fragment">xgettext --keyword=<a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>:1,1t --keyword=<a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>:1c,2,2t \
+ --keyword=<a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>:1,2,3t --keyword=<a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>:1c,2,3,4t \
+ --keyword=<a class="code" href="group__message.html#gadd3006a6d5d1c804490152ee6300d47f">gettext</a>:1 --keyword=<a class="code" href="group__message.html#ga2a39910bdf57e4d151607ee1a115b853">pgettext</a>:1c,2 \
+ --keyword=<a class="code" href="group__message.html#ga80a13c0c61d4d0b530ef7df873dc31bb">ngettext</a>:1,2 --keyword=<a class="code" href="group__message.html#ga65fb8244993e7e3870e4e89540803323">npgettext</a>:1c,2,3 \
+ source_file_1.cpp ... source_file_N.cpp
+</pre></div><p>Of course, if you do not use "gettext" like translation you may ignore some of these parameters.</p>
+<h3><a class="anchor" id="custom_file_system_support"></a>
+Custom Filesystem Support</h3>
+<p>When the access to actual file system is limited like in ActiveX controls or when the developer wants to ship all-in-one executable file, it is useful to be able to load <code>gettext</code> catalogs from a custom location - a custom file system.</p>
+<p>Boost.Locale provides an option to install <a class="el" href="classboost_1_1locale_1_1message__format.html" title="This facet provides message formatting abilities.">boost::locale::message_format</a> facet with customized options provided in <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html" title="This structure holds all information required for creating gnu-gettext message catalogs,.">boost::locale::gnu_gettext::messages_info</a> structure.</p>
+<p>This structure contains <code>boost::function</code> based <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4dfe37c5a392e5106e65b396a5288b76">callback</a> that allows user to provide custom functionality to load message catalog files.</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"><span class="comment">// Configure all options for message catalog</span>
+<span class="keyword">namespace </span>blg = boost::locale::gnu_gettext;
+blg::messages_info info;
+info.language = <span class="stringliteral">&quot;he&quot;</span>;
+info.country = <span class="stringliteral">&quot;IL&quot;</span>;
+info.encoding=<span class="stringliteral">&quot;UTF-8&quot;</span>;
+info.paths.push_back(<span class="stringliteral">&quot;&quot;</span>); <span class="comment">// You need some even empty path</span>
+info.domains.push_back(<a class="code" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">blg::messages_info::domain</a>(<span class="stringliteral">&quot;my_app&quot;</span>));
+info.callback = some_file_loader; <span class="comment">// Provide a callback</span>
+
+<span class="comment">// Create a basic locale without messages support</span>
+<a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">boost::locale::generator</a> gen;
+std::locale base_locale = gen(<span class="stringliteral">&quot;he_IL.UTF-8&quot;</span>);
+
+<span class="comment">// Install messages catalogs for &quot;char&quot; support to the final locale</span>
+<span class="comment">// we are going to use</span>
+std::locale real_locale(base_locale,blg::create_messages_facet&lt;char&gt;(info));
+</pre></div><p>In order to setup <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a1afc3be03d4848042e3208d4ca5aec85">language</a>, <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ae939e0c5dbabba7fb4cc2872f4e7dac2">country</a> and other members you may use <a class="el" href="classboost_1_1locale_1_1info.html">boost::locale::info</a> facet for convenience,</p>
+<div class="fragment"><pre class="fragment"><span class="comment">// Configure all options for message catalog</span>
+<span class="keyword">namespace </span>blg = boost::locale::gnu_gettext;
+blg::messages_info info;
+
+info.paths.push_back(<span class="stringliteral">&quot;&quot;</span>); <span class="comment">// You need some even empty path</span>
+info.domains.push_back(<a class="code" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">blg::messages_info::domain</a>(<span class="stringliteral">&quot;my_app&quot;</span>));
+info.callback = some_file_loader; <span class="comment">// Provide a callback</span>
+
+<span class="comment">// Create an object with default locale</span>
+std::locale base_locale = gen(<span class="stringliteral">&quot;&quot;</span>);
+
+<span class="comment">// Use boost::locale::info to configure all parameters</span>
+
+<a class="code" href="classboost_1_1locale_1_1info.html" title="a facet that holds general information about locale">boost::locale::info</a> <span class="keyword">const</span> &amp;properties = std::use_facet&lt;boost::locale::info&gt;(base_locale);
+info.language = properties.<a class="code" href="classboost_1_1locale_1_1info.html#a7c56b9df3aba82649afc66c06192c7df">language</a>();
+info.country = properties.<a class="code" href="classboost_1_1locale_1_1info.html#a249c20e36da6827a8dc8b12a8342a7dc">country</a>();
+info.encoding = properties.<a class="code" href="classboost_1_1locale_1_1info.html#a1979a5d7b90604c45e856a139c68f5ba">encoding</a>();
+info.variant = properties.<a class="code" href="classboost_1_1locale_1_1info.html#a2e949e4362c8f0195e2a645fe875f1b4">variant</a>();
+
+<span class="comment">// Install messages catalogs to the final locale</span>
+std::locale real_locale(base_locale,blg::create_messages_facet&lt;char&gt;(info));
+</pre></div><h2><a class="anchor" id="msg_non_ascii_keys"></a>
+Non US-ASCII Keys</h2>
+<p>Boost.Locale assumes that you use English for original text messages. And the best practice is to use US-ASCII characters for original keys.</p>
+<p>However in some cases it us useful in insert some Unicode characters in text like for example Copyright "©" character.</p>
+<p>As long as your narrow character string encoding is UTF-8 nothing further should be done.</p>
+<p>Boost.Locale assumes that your sources are encoded in UTF-8 and the input narrow string use UTF-8 - which is the default for most compilers around (with notable exception of Microsoft Visual C++).</p>
+<p>However if your narrow strings encoding in the source file is not UTF-8 but some other encoding like windows-1252, the string would be misinterpreted.</p>
+<p>You can specify the character set of the original strings when you specify the domain name for the application.</p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor">#include &lt;boost/locale.hpp&gt;</span>
+<span class="preprocessor">#include &lt;iostream&gt;</span>
+
+<span class="keyword">using namespace </span>std;
+<span class="keyword">using namespace </span>boost::locale;
+
+<span class="keywordtype">int</span> main()
+{
+ generator gen;
+
+ <span class="comment">// Specify location of dictionaries</span>
+ gen.<a class="code" href="classboost_1_1locale_1_1generator.html#a12823bbdb209690bfb77caa6404fd91b">add_messages_path</a>(<span class="stringliteral">&quot;.&quot;</span>);
+ <span class="comment">// Specify the encoding of the source string</span>
+ gen.add_messages_domain(<span class="stringliteral">&quot;copyrighted/windows-1255&quot;</span>);
+
+ <span class="comment">// Generate locales and imbue them to iostream</span>
+ locale::global(gen(<span class="stringliteral">&quot;&quot;</span>));
+ cout.imbue(locale());
+
+ <span class="comment">// In Windows 1255 (C) symbol is encoded as 0xA9</span>
+ cout &lt;&lt; <a class="code" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43" title="Translate a message, msg is not copied.">translate</a>(<span class="stringliteral">&quot;© 2001 All Rights Reserved&quot;</span>) &lt;&lt; endl;
+}
+</pre></div><p>Thus if the programs runs in UTF-8 locale the copyright symbol would be automatically converted to an appropriate UTF-8 sequence if the key is missing in the dictionary.</p>
+<h3><a class="anchor" id="msg_qna"></a>
+Questions and Answers</h3>
+<ul>
+<li>Do I need GNU Gettext to use Boost.Locale? <br/>
+ Boost.Locale provides a run-time environment to load and use GNU Gettext message catalogs, but it does not provide tools for generation, translation, compilation and management of these catalogs. Boost.Locale only reimplements the GNU Gettext libintl. <br/>
+ You would probably need: <br/>
+<ol type="a">
+<li>Boost.Locale itself -- for runtime.</li>
+<li>A tool for extracting strings from source code, and managing them: GNU Gettext provides good tools, but other implementations are available as well.</li>
+<li>A good translation program like Lokalize, Pedit or GTranslator.</li>
+</ol>
+</li>
+</ul>
+<ul>
+<li>Why doesn't Boost.Locale provide tools for extracting and management of message catalogs. Why should I use GPL-ed software? Are my programs or message catalogs affected by its license? <br/>
+<ol type="a">
+<li>Boost.Locale does not link to or use any of the GNU Gettext code, so you need not worry about your code as the runtime library is fully reimplemented.</li>
+<li>You may freely use GPL-ed software for extracting and managing catalogs, the same way as you are free to use a GPL-ed editor. It does not affect your message catalogs or your code.</li>
+<li>I see no reason to reimplement well debugged, working tools like <code>xgettext</code>, <code>msgfmt</code>, <code>msgmerge</code> that do a very fine job, especially as they are freely available for download and support almost any platform. All Linux distributions, BSD Flavors, Mac OS X and other Unix like operating systems provide GNU Gettext tools as a standard package.<br/>
+ Windows users can get GNU Gettext utilities via MinGW project. See <a class="el" href="gettext_for_windows.html">Using Gettext Tools on Windows</a>.</li>
+</ol>
+</li>
+</ul>
+<ul>
+<li>Is there any reason to prefer the Boost.Locale implementation to the original GNU Gettext runtime library? In either case I would probably need some of the GNU tools. <br/>
+ There are two important differences between the GNU Gettext runtime library and the Boost.Locale implementation: <br/>
+<ol type="a">
+<li>The GNU Gettext runtime supports only one locale per process. It is not thread-safe to use multiple locales and encodings in the same process. This is perfectly fine for applications that interact directly with a single user like most GUI applications, but is problematic for services and servers.</li>
+<li>The GNU Gettext API supports only 8-bit encodings, making it irrelevant in environments that natively use wide strings.</li>
+<li>The GNU Gettext runtime library distributed under LGPL license which may be not convenient for some users. </li>
+</ol>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/modules.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/modules.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Module Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li class="current">Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Modules</h1> </div>
+</div>
+<div class="contents">
+Here is a list of all modules:<ul>
+<li><a class="el" href="group__collation.html">Collation</a></li>
+<li><a class="el" href="group__convert.html">Text Conversions</a></li>
+<li><a class="el" href="group__date__time.html">Date, Time, Timezone and Calendar manipulations</a></li>
+<li><a class="el" href="group__codepage.html">Character conversion functions</a></li>
+<li><a class="el" href="group__format.html">Format</a></li>
+<li><a class="el" href="group__manipulators.html">I/O Stream manipulators</a></li>
+<li><a class="el" href="group__message.html">Message Formatting (translation)</a></li>
+<li><a class="el" href="group__boundary.html">Boundary Analysis</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespaceboost_1_1locale.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespaceboost_1_1locale.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,377 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Namespaces &#124;
+Classes &#124;
+Typedefs &#124;
+Enumerations &#124;
+Functions &#124;
+Variables </div>
+ <div class="headertitle">
+<h1>boost::locale Namespace Reference</h1> </div>
+</div>
+<div class="contents">
+
+<p>This is the main namespace that encloses all localization classes.
+More...</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1as.html">as</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>This namespace includes all manipulators that can be used on IO streams. </p>
+<br/></td></tr>
+</p>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1boundary.html">boundary</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>This namespae contains all operations required for boundary analysis of text. </p>
+<br/></td></tr>
+</p>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1conv.html">conv</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Namespace that contains all functions related to character set conversion. </p>
+<br/></td></tr>
+</p>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1flags.html">flags</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>This namespace holds additional formatting flags that can be set using <a class="el" href="classboost_1_1locale_1_1ios__info.html" title="This class holds an external data - beyond existing fmtflags that std::ios_base holds.">ios_info</a>. </p>
+<br/></td></tr>
+</p>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1gnu__gettext.html">gnu_gettext</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>This namespace holds classes that provide GNU Gettext message catalogs support. </p>
+<br/></td></tr>
+</p>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html">period</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Namespace that contains various types for manipulation with dates. </p>
+<br/></td></tr>
+</p>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1time__zone.html">time_zone</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>namespace that holds functions for operating with global time zone </p>
+<br/></td></tr>
+</p>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1util.html">util</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>This namespace provides various utility function useful for Boost.Locale backends implementations. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator__base.html">collator_base</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">a base class that includes collation level flags More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html">collator</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Collation facet. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1comparator.html">comparator</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class can be used in STL algorithms and containers for comparison of strings with a level other than primary. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1converter__base.html">converter_base</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class provides base flags for text manipulation. It is used as base for converter facet. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1converter.html">converter</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The facet that implements text manipulation. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__error.html">date_time_error</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This error is thrown in case of invalid state that occurred. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class represents a pair of period_type and the integer values that describes its amount. For example 3 days or 4 years. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this class that represents a set of periods, More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar.html">calendar</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this class provides an access to general calendar information. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this class represents a date time and allows to perform various operation according to the locale settings. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class represents a period: a pair of two <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> objects. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1posix__time.html">posix_time</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html">abstract_calendar</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1calendar__facet.html">calendar_facet</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">the facet that generates calendar for specific locale More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1basic__format.html">basic_format</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">a printf like class that allows type-safe and locale aware message formatting More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1ios__info.html">ios_info</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class holds an external data - beyond existing fmtflags that std::ios_base holds. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1generator.html">generator</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">the major class used for locale generation More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1hold__ptr.html">hold_ptr</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">a smart pointer similar to std::auto_ptr but it is non-copyable and the underlying object has the same constness as the pointer itself (unlike an ordinary pointer). More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1info.html">info</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">a facet that holds general information about locale More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend.html">localization_backend</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this class represents a localization backend that can be used for localizing your application. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html">localization_backend_manager</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Localization backend manager is a class that holds various backend and allows creation of their combination or selection. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1message__format.html">message_format</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This facet provides message formatting abilities. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class represents a message that can be converted to a specific locale message. More...<br/></td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1locale_1_1basic__format.html">basic_format</a>&lt; char &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">format</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1locale_1_1basic__format.html">basic_format</a>&lt; wchar_t &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__format.html#ga610f3ae827801febc962019cf82a2227">wformat</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1locale_1_1basic__format.html">basic_format</a>&lt; char16_t &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__format.html#ga7e1b668f020290ebca6570b4c12a36e6">u16format</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1locale_1_1basic__format.html">basic_format</a>&lt; char32_t &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__format.html#ga70ce1d532e859739182439f1f3321032">u32format</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c993aaf15e683e97d062560ccf914d8"></a><!-- doxytag: member="boost::locale::character_facet_type" ref="a8c993aaf15e683e97d062560ccf914d8" args="" -->
+typedef uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#a8c993aaf15e683e97d062560ccf914d8">character_facet_type</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">type that specifies the character type that locales can be generated for <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a32e8cb87d2f68a5577dbb7ce55c0d2b1"></a><!-- doxytag: member="boost::locale::locale_category_type" ref="a32e8cb87d2f68a5577dbb7ce55c0d2b1" args="" -->
+typedef uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1">locale_category_type</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">a type used for more fine grained generation of facets <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; char &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga556e3e7696302902b2242a7a94516dee">message</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; wchar_t &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#gafea131aa123d666905076f34b77326a9">wmessage</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; char16_t &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga43ddf342eec2ab9145d04727f8161e1c">u16message</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; char32_t &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__message.html#ga6c0b40121a07c13de9e712845b43468f">u32message</a></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__convert.html#ga6a595a415b83b8a0c8f14c34eb66cc9f">norm_type</a> { <br/>
+&nbsp;&nbsp;<a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9fa6648d0eabb931f2e9d258570b297e98f">norm_nfd</a>,
+<a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9faf6fe7be275e5e13df415ab258105ada0">norm_nfc</a>,
+<a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9fa0fbc2ac042fc6f58af5818bfd06d5379">norm_nfkd</a>,
+<a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9fa0305c1f3405ea70facf4c6a5ffa40583">norm_nfkc</a>,
+<br/>
+&nbsp;&nbsp;<a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9faa29173d73d9be7fefcbb18c8712465d2">norm_default</a> = norm_nfc
+<br/>
+ }</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga11672e3cc3ed7eecf1dd07060265aab2">normalize</a> (std::basic_string&lt; CharType &gt; const &amp;str, <a class="el" href="group__convert.html#ga6a595a415b83b8a0c8f14c34eb66cc9f">norm_type</a> n=norm_default, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga340161bd91c1a768e927a4c827084a4c">normalize</a> (CharType const *str, <a class="el" href="group__convert.html#ga6a595a415b83b8a0c8f14c34eb66cc9f">norm_type</a> n=norm_default, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga348f607537413204e88c636392c29704">normalize</a> (CharType const *begin, CharType const *end, <a class="el" href="group__convert.html#ga6a595a415b83b8a0c8f14c34eb66cc9f">norm_type</a> n=norm_default, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">to_upper</a> (std::basic_string&lt; CharType &gt; const &amp;str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga21cc3d265fccd4dc4ac299edde0637f8">to_upper</a> (CharType const *str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga612ddbe1ed3fd910b22bcd6ae401ac22">to_upper</a> (CharType const *begin, CharType const *end, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga33de83f16ff2c09cac780977c6f67099">to_lower</a> (std::basic_string&lt; CharType &gt; const &amp;str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga676a7c90319f0f82657cb31ce20d3dbd">to_lower</a> (CharType const *str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#gab2d86cb2219169ab69c1d29f5d2a854e">to_lower</a> (CharType const *begin, CharType const *end, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga646f42adb01baf395d632c32f556a5b9">to_title</a> (std::basic_string&lt; CharType &gt; const &amp;str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga50fbad5e11e8e8ed0b04e6fb6bc25057">to_title</a> (CharType const *str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#gac9198c4fb61eefb72f1f863ed21b1e60">to_title</a> (CharType const *begin, CharType const *end, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#gabd1bc157122a5b9392487126fd0fffe5">fold_case</a> (std::basic_string&lt; CharType &gt; const &amp;str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga4254d12cc75cb7b66ca96deca3e90fd1">fold_case</a> (CharType const *str, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__convert.html#ga597671217af41a3fdee10281fb6a0d17">fold_case</a> (CharType const *begin, CharType const *end, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__date__time.html#gaa7e728633f76cae8fa19e76cfb5e113b">operator+</a> (<a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;a, <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;b)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__date__time.html#ga023333646e070abf361be3890c12560b">operator-</a> (<a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;a, <a class="el" href="classboost_1_1locale_1_1date__time__period__set.html">date_time_period_set</a> const &amp;b)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_ostream&lt; CharType &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__date__time.html#ga0055f16ba156eb9a3f333c2bf2eae815">operator&lt;&lt;</a> (std::basic_ostream&lt; CharType &gt; &amp;out, <a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;t)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_istream&lt; CharType &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__date__time.html#gaaf12ac2d38329331a8d9101ecc5e64d5">operator&gt;&gt;</a> (std::basic_istream&lt; CharType &gt; &amp;in, <a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> &amp;t)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__date__time.html#ga13c05afeb4ea7904b944b42f6c685022">operator-</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;later, <a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;earlier)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_ostream&lt; CharType &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__format.html#ga1f24c2af23fab51855945ab2c6800278">operator&lt;&lt;</a> (std::basic_ostream&lt; CharType &gt; &amp;out, <a class="el" href="classboost_1_1locale_1_1basic__format.html">basic_format</a>&lt; CharType &gt; const &amp;fmt)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_ostream&lt; CharType &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga65c188250db86a10f038b77c377f6ec5">operator&lt;&lt;</a> (std::basic_ostream&lt; CharType &gt; &amp;out, <a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; CharType &gt; const &amp;msg)</td></tr>
+<tr><td colspan="2"><div class="groupHeader">Indirect message translation function family</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp32a7bab11d00770484c96c0058512efc"></a> <a class="anchor" id="boost_locale_translate_family"></a> </p>
+</div></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7f35933e136f9202baa66128d87e5d43"></a><!-- doxytag: member="boost::locale::translate" ref="ga7f35933e136f9202baa66128d87e5d43" args="(CharType const *msg)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga7f35933e136f9202baa66128d87e5d43">translate</a> (CharType const *msg)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a message, <em>msg</em> is not copied. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac1392ab84aa084a652fca57ad11ab754"></a><!-- doxytag: member="boost::locale::translate" ref="gac1392ab84aa084a652fca57ad11ab754" args="(CharType const *context, CharType const *msg)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#gac1392ab84aa084a652fca57ad11ab754">translate</a> (CharType const *context, CharType const *msg)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a message in context, <em>msg</em> and <em>context</em> are not copied. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaef8d3a6063f6b2a79b1cebeda9bafd52"></a><!-- doxytag: member="boost::locale::translate" ref="gaef8d3a6063f6b2a79b1cebeda9bafd52" args="(CharType const *single, CharType const *plural, int n)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#gaef8d3a6063f6b2a79b1cebeda9bafd52">translate</a> (CharType const *single, CharType const *plural, int n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a plural message form, <em>single</em> and <em>plural</em> are not copied. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gafae5e056f599ae051e81b84e14f61255"></a><!-- doxytag: member="boost::locale::translate" ref="gafae5e056f599ae051e81b84e14f61255" args="(CharType const *context, CharType const *single, CharType const *plural, int n)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#gafae5e056f599ae051e81b84e14f61255">translate</a> (CharType const *context, CharType const *single, CharType const *plural, int n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a plural message from in constext, <em>context</em>, <em>single</em> and <em>plural</em> are not copied. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gabe61325e81b62bab9351d514c2f3218c"></a><!-- doxytag: member="boost::locale::translate" ref="gabe61325e81b62bab9351d514c2f3218c" args="(std::basic_string&lt; CharType &gt; const &amp;msg)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#gabe61325e81b62bab9351d514c2f3218c">translate</a> (std::basic_string&lt; CharType &gt; const &amp;msg)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a message, <em>msg</em> is copied. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf1e2c81bd1be15d2075bbba353251cd4"></a><!-- doxytag: member="boost::locale::translate" ref="gaf1e2c81bd1be15d2075bbba353251cd4" args="(std::basic_string&lt; CharType &gt; const &amp;context, std::basic_string&lt; CharType &gt; const &amp;msg)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#gaf1e2c81bd1be15d2075bbba353251cd4">translate</a> (std::basic_string&lt; CharType &gt; const &amp;context, std::basic_string&lt; CharType &gt; const &amp;msg)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a message in context,<em>context</em> and <em>msg</em> is copied. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga534be0a86c6ed58adb94127decc704cd"></a><!-- doxytag: member="boost::locale::translate" ref="ga534be0a86c6ed58adb94127decc704cd" args="(std::basic_string&lt; CharType &gt; const &amp;context, std::basic_string&lt; CharType &gt; const &amp;single, std::basic_string&lt; CharType &gt; const &amp;plural, int n)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga534be0a86c6ed58adb94127decc704cd">translate</a> (std::basic_string&lt; CharType &gt; const &amp;context, std::basic_string&lt; CharType &gt; const &amp;single, std::basic_string&lt; CharType &gt; const &amp;plural, int n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a plural message form in constext, <em>context</em>, <em>single</em> and <em>plural</em> are copied. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga39d53e2aa86045ffb19ac7533466db26"></a><!-- doxytag: member="boost::locale::translate" ref="ga39d53e2aa86045ffb19ac7533466db26" args="(std::basic_string&lt; CharType &gt; const &amp;single, std::basic_string&lt; CharType &gt; const &amp;plural, int n)" -->
+template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1basic__message.html">basic_message</a>&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga39d53e2aa86045ffb19ac7533466db26">translate</a> (std::basic_string&lt; CharType &gt; const &amp;single, std::basic_string&lt; CharType &gt; const &amp;plural, int n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a plural message form, <em>single</em> and <em>plural</em> are copied. <br/></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Direct message translation functions family</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp365823f5317287b5d67977a7fc724307"></a> <a class="anchor" id="boost_locale_gettext_family"></a> </p>
+</div></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#gadd3006a6d5d1c804490152ee6300d47f">gettext</a> (CharType const *id, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga80a13c0c61d4d0b530ef7df873dc31bb">ngettext</a> (CharType const *s, CharType const *p, int n, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga4679dd42049207a9632002cd13d29260">dgettext</a> (char const *domain, CharType const *id, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga8969a29e9eb19ce41178920892da5c27">dngettext</a> (char const *domain, CharType const *s, CharType const *p, int n, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga2a39910bdf57e4d151607ee1a115b853">pgettext</a> (CharType const *context, CharType const *id, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga65fb8244993e7e3870e4e89540803323">npgettext</a> (CharType const *context, CharType const *s, CharType const *p, int n, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga352dfa66c04ff924f1999ca47ff11aba">dpgettext</a> (char const *domain, CharType const *context, CharType const *id, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__message.html#ga49b1d83256ead90a9f86940e3d977dee">dnpgettext</a> (char const *domain, CharType const *context, CharType const *s, CharType const *p, int n, std::locale const &amp;loc=std::locale())</td></tr>
+<tr><td colspan="2"><h2><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a330a4c5134eb5110b33a0b4f986f34be"></a><!-- doxytag: member="boost::locale::nochar_facet" ref="a330a4c5134eb5110b33a0b4f986f34be" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#a330a4c5134eb5110b33a0b4f986f34be">nochar_facet</a> = 0</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unspecified character category for character independent facets. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac57b3067a033cb4416098b8c34867aa1"></a><!-- doxytag: member="boost::locale::char_facet" ref="ac57b3067a033cb4416098b8c34867aa1" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#ac57b3067a033cb4416098b8c34867aa1">char_facet</a> = 1 &lt;&lt; 0</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">8-bit character facets <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af26277ad3002b9d09790ca42590352fe"></a><!-- doxytag: member="boost::locale::wchar_t_facet" ref="af26277ad3002b9d09790ca42590352fe" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#af26277ad3002b9d09790ca42590352fe">wchar_t_facet</a> = 1 &lt;&lt; 1</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">wide character facets <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f02f43f0bef71bdd9262141508fe8f0"></a><!-- doxytag: member="boost::locale::char16_t_facet" ref="a4f02f43f0bef71bdd9262141508fe8f0" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#a4f02f43f0bef71bdd9262141508fe8f0">char16_t_facet</a> = 1 &lt;&lt; 2</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C++0x char16_t facets. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a77cbac0792b48c20173dd92544c625e5"></a><!-- doxytag: member="boost::locale::char32_t_facet" ref="a77cbac0792b48c20173dd92544c625e5" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#a77cbac0792b48c20173dd92544c625e5">char32_t_facet</a> = 1 &lt;&lt; 3</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C++0x char32_t facets. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac57221e55dcc193f60a8af0064d58f1e"></a><!-- doxytag: member="boost::locale::character_first_facet" ref="ac57221e55dcc193f60a8af0064d58f1e" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#ac57221e55dcc193f60a8af0064d58f1e">character_first_facet</a> = <a class="el" href="namespaceboost_1_1locale.html#ac57b3067a033cb4416098b8c34867aa1">char_facet</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">First facet specific for character type. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6719d31f7dc35bd97116dd353e5464c6"></a><!-- doxytag: member="boost::locale::character_last_facet" ref="a6719d31f7dc35bd97116dd353e5464c6" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#a6719d31f7dc35bd97116dd353e5464c6">character_last_facet</a> = <a class="el" href="namespaceboost_1_1locale.html#a77cbac0792b48c20173dd92544c625e5">char32_t_facet</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Last facet specific for character type. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acbf4f064b76445979094471c7092bd4c"></a><!-- doxytag: member="boost::locale::all_characters" ref="acbf4f064b76445979094471c7092bd4c" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#acbf4f064b76445979094471c7092bd4c">all_characters</a> = 0xFFFF</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Special mask -- generate all. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a980b72231e52c32b8bef91ce60e6936a"></a><!-- doxytag: member="boost::locale::convert_facet" ref="a980b72231e52c32b8bef91ce60e6936a" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#a980b72231e52c32b8bef91ce60e6936a">convert_facet</a> = 1 &lt;&lt; 0</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate conversion facets. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2dd40649cf5bb125d9ef5f42ad792446"></a><!-- doxytag: member="boost::locale::collation_facet" ref="a2dd40649cf5bb125d9ef5f42ad792446" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#a2dd40649cf5bb125d9ef5f42ad792446">collation_facet</a> = 1 &lt;&lt; 1</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate collation facets. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ee453a8b95be64b802edae99ad5d9ed"></a><!-- doxytag: member="boost::locale::formatting_facet" ref="a4ee453a8b95be64b802edae99ad5d9ed" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#a4ee453a8b95be64b802edae99ad5d9ed">formatting_facet</a> = 1 &lt;&lt; 2</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate numbers, currency, date-time formatting facets. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adeadf3347a4fa74afd7fd1f6674be1b0"></a><!-- doxytag: member="boost::locale::parsing_facet" ref="adeadf3347a4fa74afd7fd1f6674be1b0" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#adeadf3347a4fa74afd7fd1f6674be1b0">parsing_facet</a> = 1 &lt;&lt; 3</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate numbers, currency, date-time formatting facets. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa5b134d0be315fefbfde1216ea3904d9"></a><!-- doxytag: member="boost::locale::message_facet" ref="aa5b134d0be315fefbfde1216ea3904d9" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#aa5b134d0be315fefbfde1216ea3904d9">message_facet</a> = 1 &lt;&lt; 4</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate message facets. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaffe2f2ba9df34eb86caa0c815d00d6b"></a><!-- doxytag: member="boost::locale::codepage_facet" ref="aaffe2f2ba9df34eb86caa0c815d00d6b" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#aaffe2f2ba9df34eb86caa0c815d00d6b">codepage_facet</a> = 1 &lt;&lt; 5</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate character set conversion facets (derived from std::codecvt). <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac2fa68f626cf136556cbf56c82d3fdd6"></a><!-- doxytag: member="boost::locale::boundary_facet" ref="ac2fa68f626cf136556cbf56c82d3fdd6" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#ac2fa68f626cf136556cbf56c82d3fdd6">boundary_facet</a> = 1 &lt;&lt; 6</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate boundary analysis facet. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91e9fa9c9d99150ff7801a0423cb2374"></a><!-- doxytag: member="boost::locale::per_character_facet_first" ref="a91e9fa9c9d99150ff7801a0423cb2374" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#a91e9fa9c9d99150ff7801a0423cb2374">per_character_facet_first</a> = <a class="el" href="namespaceboost_1_1locale.html#a980b72231e52c32b8bef91ce60e6936a">convert_facet</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">First facet specific for character. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afbb1680a86838f1b145590dce820c558"></a><!-- doxytag: member="boost::locale::per_character_facet_last" ref="afbb1680a86838f1b145590dce820c558" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#afbb1680a86838f1b145590dce820c558">per_character_facet_last</a> = <a class="el" href="namespaceboost_1_1locale.html#ac2fa68f626cf136556cbf56c82d3fdd6">boundary_facet</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Last facet specific for character. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae068c6887999c1f839d6d13eaf2a0b7c"></a><!-- doxytag: member="boost::locale::calendar_facet" ref="ae068c6887999c1f839d6d13eaf2a0b7c" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#ae068c6887999c1f839d6d13eaf2a0b7c">calendar_facet</a> = 1 &lt;&lt; 16</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate boundary analysis facet. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa0d08754ca3856546c63f1f79a153a7b"></a><!-- doxytag: member="boost::locale::information_facet" ref="aa0d08754ca3856546c63f1f79a153a7b" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#aa0d08754ca3856546c63f1f79a153a7b">information_facet</a> = 1 &lt;&lt; 17</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate general locale information facet. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acdc78d8aaea40ff98a227c6d31a7be19"></a><!-- doxytag: member="boost::locale::non_character_facet_first" ref="acdc78d8aaea40ff98a227c6d31a7be19" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#acdc78d8aaea40ff98a227c6d31a7be19">non_character_facet_first</a> = <a class="el" href="classboost_1_1locale_1_1calendar__facet.html">calendar_facet</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">First character independent facet. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66521f8acb9412f2fc3ab38b7a409e20"></a><!-- doxytag: member="boost::locale::non_character_facet_last" ref="a66521f8acb9412f2fc3ab38b7a409e20" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#a66521f8acb9412f2fc3ab38b7a409e20">non_character_facet_last</a> = <a class="el" href="namespaceboost_1_1locale.html#aa0d08754ca3856546c63f1f79a153a7b">information_facet</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Last character independent facet. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab51b0b65a19b1db3adc14e9866097e2a"></a><!-- doxytag: member="boost::locale::all_categories" ref="ab51b0b65a19b1db3adc14e9866097e2a" args="" -->
+static const uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale.html#ab51b0b65a19b1db3adc14e9866097e2a">all_categories</a> = 0xFFFFFFFFu</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate all of them. <br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This is the main namespace that encloses all localization classes. </p>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1as.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1as.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::as Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1as.html">as</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::as Namespace Reference<br/>
+<small>
+[<a class="el" href="group__message.html">Message Formatting (translation)</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+
+<p>This namespace includes all manipulators that can be used on IO streams.
+More...</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga879b679c0a88b7af9ac059a6e8f67c0a">posix</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gaee05db73f5525d9a010cdc3aa02f634f">number</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga97c4997f9692834ea7b5ed3e8137d5fd">currency</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga365767c66c9c82fb646458f5eace8534">percent</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">date</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">time</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga820edf843e20847a0c4ccb8da0c4acd8">datetime</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga782b256b82922e6a5f32446787a6f7dc">strftime</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gac65e6cd9619db80d60793bbd86a3bd77">spellout</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga50cc23779fd846809182e50345b4eb7c">ordinal</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga18f1cb392e5b26c12a9deaff816e7998">currency_default</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gab8bc145e8147e45e9b9dc0ee9edd9fbe">currency_iso</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga2b1ea6b22e2c6f3a162264d9e59d3f95">currency_national</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga0970bc4cb3a4ab8070faa04808f65052">time_default</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gada3d88eef293c9495a3f7d756d369fd3">time_short</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga3f3cc44eeeaffc3b90bebe7660b3e853">time_medium</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gad6590ea48c57d53899b90d3464cf3c0b">time_long</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga9a8bd936176e3c81dfa07748e1cbabd4">time_full</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gacb5b9243e6537a9378e2d020a4e6a57a">date_default</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga295c7b48ce2732c196df31a70660b7b9">date_short</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga3b9dcc64afbd67883603cfa7bb67e6c4">date_medium</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gac553a86e8d0606c4a6f6d75c3cb104e7">date_long</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gad8d6858ec18524c9a993da387c896d0e">date_full</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">unspecified_type&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gaff2d2d435fb9efcb185b2b47355e5fd6">ftime</a> (std::basic_string&lt; CharType &gt; const &amp;<a class="el" href="classboost_1_1locale_1_1basic__format.html">format</a>)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">unspecified_type&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gaa3b700e53188d9dfca0a7ea8e8a891c1">ftime</a> (CharType const *<a class="el" href="classboost_1_1locale_1_1basic__format.html">format</a>)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gac90c969d876305b8584def8632ae1808">gmt</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::ios_base &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gac6cb5458543daf651cd6b48812891541">local_time</a> (std::ios_base &amp;ios)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unspecified_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gad51fbdc634fe0c81e5183915e9eeb238">time_zone</a> (char const *id)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unspecified_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#ga4348099506fc7c52945e639683398a20">time_zone</a> (std::string const &amp;id)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unspecified_type&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">domain</a> (std::string const &amp;id)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This namespace includes all manipulators that can be used on IO streams. </p>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1boundary.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1boundary.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,444 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::boundary Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1boundary.html">boundary</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Classes &#124;
+Typedefs &#124;
+Enumerations &#124;
+Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::boundary Namespace Reference</h1> </div>
+</div>
+<div class="contents">
+
+<p>This namespae contains all operations required for boundary analysis of text.
+More...</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class represents a boundary point in the text. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html">break_info</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This structure is used for representing boundary point that follows the offset. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html">boundary_indexing</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This facet generates an index for boundary analysis for a given text. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class holds an index of segments in the text range and allows to iterate over them. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class holds an index of <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary points</a> and allows iterating over them. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">a segment object that represents a pair of two iterators that define the range where this segment exits and a rule that defines it. More...<br/></td></tr>
+<tr><td colspan="2"><h2><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae8869288e9cc33aa283078654ef0dae2"></a><!-- doxytag: member="boost::locale::boundary::sboundary_point" ref="ae8869288e9cc33aa283078654ef0dae2" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a><br class="typebreak"/>
+&lt; std::string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1boundary.html#ae8869288e9cc33aa283078654ef0dae2">sboundary_point</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7828f6884b8a654b9b14fc1ab96ce0d9"></a><!-- doxytag: member="boost::locale::boundary::wsboundary_point" ref="a7828f6884b8a654b9b14fc1ab96ce0d9" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a><br class="typebreak"/>
+&lt; std::wstring::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1boundary.html#a7828f6884b8a654b9b14fc1ab96ce0d9">wsboundary_point</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a64be9f4ec7ff991f73fc793a80f1fadc"></a><!-- doxytag: member="boost::locale::boundary::u16sboundary_point" ref="a64be9f4ec7ff991f73fc793a80f1fadc" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a><br class="typebreak"/>
+&lt; std::u16string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1boundary.html#a64be9f4ec7ff991f73fc793a80f1fadc">u16sboundary_point</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9eb3d6aa912102a115dc6ff80fe9c22d"></a><!-- doxytag: member="boost::locale::boundary::u32sboundary_point" ref="a9eb3d6aa912102a115dc6ff80fe9c22d" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a><br class="typebreak"/>
+&lt; std::u32string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1boundary.html#a9eb3d6aa912102a115dc6ff80fe9c22d">u32sboundary_point</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade880ec8623692375afbfd460d28163c"></a><!-- doxytag: member="boost::locale::boundary::cboundary_point" ref="ade880ec8623692375afbfd460d28163c" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a>&lt; char <br class="typebreak"/>
+const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1boundary.html#ade880ec8623692375afbfd460d28163c">cboundary_point</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1c06a716653700b74922e4cc9df0da1b"></a><!-- doxytag: member="boost::locale::boundary::wcboundary_point" ref="a1c06a716653700b74922e4cc9df0da1b" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a><br class="typebreak"/>
+&lt; wchar_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1boundary.html#a1c06a716653700b74922e4cc9df0da1b">wcboundary_point</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79a665091fadab07227c0b129ddcde9d"></a><!-- doxytag: member="boost::locale::boundary::u16cboundary_point" ref="a79a665091fadab07227c0b129ddcde9d" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a><br class="typebreak"/>
+&lt; char16_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1boundary.html#a79a665091fadab07227c0b129ddcde9d">u16cboundary_point</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaa106d43f8b06fec14964e19c55356fb"></a><!-- doxytag: member="boost::locale::boundary::u32cboundary_point" ref="aaa106d43f8b06fec14964e19c55356fb" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a><br class="typebreak"/>
+&lt; char32_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1boundary.html#aaa106d43f8b06fec14964e19c55356fb">u32cboundary_point</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html">break_info</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a><br class="typebreak"/>
+&lt; std::string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gad4785439a3f03ee455c93830b8f1366c">ssegment_index</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga579cfdfccf9c682ac4dae5fb65d4a843"></a><!-- doxytag: member="boost::locale::boundary::wssegment_index" ref="ga579cfdfccf9c682ac4dae5fb65d4a843" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a><br class="typebreak"/>
+&lt; std::wstring::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga579cfdfccf9c682ac4dae5fb65d4a843">wssegment_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6fff9ef7a0971ed3c686f3e8d5c56bf4"></a><!-- doxytag: member="boost::locale::boundary::u16ssegment_index" ref="ga6fff9ef7a0971ed3c686f3e8d5c56bf4" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a><br class="typebreak"/>
+&lt; std::u16string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga6fff9ef7a0971ed3c686f3e8d5c56bf4">u16ssegment_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3a7b82f5a7e29bd079dd48ca13b79f20"></a><!-- doxytag: member="boost::locale::boundary::u32ssegment_index" ref="ga3a7b82f5a7e29bd079dd48ca13b79f20" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a><br class="typebreak"/>
+&lt; std::u32string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga3a7b82f5a7e29bd079dd48ca13b79f20">u32ssegment_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga82c153957bff0be844a5ce4490d4e7f8"></a><!-- doxytag: member="boost::locale::boundary::csegment_index" ref="ga82c153957bff0be844a5ce4490d4e7f8" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a>&lt; char <br class="typebreak"/>
+const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga82c153957bff0be844a5ce4490d4e7f8">csegment_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga29ce0d14d0466a28c205b5dc9d0d6a36"></a><!-- doxytag: member="boost::locale::boundary::wcsegment_index" ref="ga29ce0d14d0466a28c205b5dc9d0d6a36" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a>&lt; wchar_t <br class="typebreak"/>
+const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga29ce0d14d0466a28c205b5dc9d0d6a36">wcsegment_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa20a99d93e3202680bb0660481e1d414"></a><!-- doxytag: member="boost::locale::boundary::u16csegment_index" ref="gaa20a99d93e3202680bb0660481e1d414" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a><br class="typebreak"/>
+&lt; char16_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaa20a99d93e3202680bb0660481e1d414">u16csegment_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaacc781106af79ec27693fa8012d54cb9"></a><!-- doxytag: member="boost::locale::boundary::u32csegment_index" ref="gaacc781106af79ec27693fa8012d54cb9" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a><br class="typebreak"/>
+&lt; char32_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaacc781106af79ec27693fa8012d54cb9">u32csegment_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga485e82cdd9debd15dc4fd6f57be10727"></a><!-- doxytag: member="boost::locale::boundary::sboundary_point_index" ref="ga485e82cdd9debd15dc4fd6f57be10727" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a><br class="typebreak"/>
+&lt; std::string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga485e82cdd9debd15dc4fd6f57be10727">sboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad539aad8c788c8e90cdf08aeed5df4a3"></a><!-- doxytag: member="boost::locale::boundary::wsboundary_point_index" ref="gad539aad8c788c8e90cdf08aeed5df4a3" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a><br class="typebreak"/>
+&lt; std::wstring::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gad539aad8c788c8e90cdf08aeed5df4a3">wsboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaba43501d4ed1922c9446db3bf14a918f"></a><!-- doxytag: member="boost::locale::boundary::u16sboundary_point_index" ref="gaba43501d4ed1922c9446db3bf14a918f" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a><br class="typebreak"/>
+&lt; std::u16string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaba43501d4ed1922c9446db3bf14a918f">u16sboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1379f8968dd611be0b59d04218a1aae8"></a><!-- doxytag: member="boost::locale::boundary::u32sboundary_point_index" ref="ga1379f8968dd611be0b59d04218a1aae8" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a><br class="typebreak"/>
+&lt; std::u32string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga1379f8968dd611be0b59d04218a1aae8">u32sboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga31f0617de9388783205020a8679b40af"></a><!-- doxytag: member="boost::locale::boundary::cboundary_point_index" ref="ga31f0617de9388783205020a8679b40af" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a><br class="typebreak"/>
+&lt; char const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga31f0617de9388783205020a8679b40af">cboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabcb5bcc788909afeb8c68d857284cb59"></a><!-- doxytag: member="boost::locale::boundary::wcboundary_point_index" ref="gabcb5bcc788909afeb8c68d857284cb59" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a><br class="typebreak"/>
+&lt; wchar_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gabcb5bcc788909afeb8c68d857284cb59">wcboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1a89414f77d0b11b7fa8c3a5fa896266"></a><!-- doxytag: member="boost::locale::boundary::u16cboundary_point_index" ref="ga1a89414f77d0b11b7fa8c3a5fa896266" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a><br class="typebreak"/>
+&lt; char16_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga1a89414f77d0b11b7fa8c3a5fa896266">u16cboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1d16a23d328240464f9068cf58fb38d7"></a><!-- doxytag: member="boost::locale::boundary::u32cboundary_point_index" ref="ga1d16a23d328240464f9068cf58fb38d7" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a><br class="typebreak"/>
+&lt; char32_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga1d16a23d328240464f9068cf58fb38d7">u32cboundary_point_index</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaac5031c17bd3f7ddc5138546af121064"></a><!-- doxytag: member="boost::locale::boundary::ssegment" ref="gaac5031c17bd3f7ddc5138546af121064" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a><br class="typebreak"/>
+&lt; std::string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaac5031c17bd3f7ddc5138546af121064">ssegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaca0e28d417ee314f3035c7561ed5134a"></a><!-- doxytag: member="boost::locale::boundary::wssegment" ref="gaca0e28d417ee314f3035c7561ed5134a" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a><br class="typebreak"/>
+&lt; std::wstring::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaca0e28d417ee314f3035c7561ed5134a">wssegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5084d9529f752361d18c2196f38df3c0"></a><!-- doxytag: member="boost::locale::boundary::u16ssegment" ref="ga5084d9529f752361d18c2196f38df3c0" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a><br class="typebreak"/>
+&lt; std::u16string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga5084d9529f752361d18c2196f38df3c0">u16ssegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaffcc722694a39291a9ea7f68a95e1e27"></a><!-- doxytag: member="boost::locale::boundary::u32ssegment" ref="gaffcc722694a39291a9ea7f68a95e1e27" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a><br class="typebreak"/>
+&lt; std::u32string::const_iterator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaffcc722694a39291a9ea7f68a95e1e27">u32ssegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7a89ba0de6cad23a0f1b0b90ca5296f0"></a><!-- doxytag: member="boost::locale::boundary::csegment" ref="ga7a89ba0de6cad23a0f1b0b90ca5296f0" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; char const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga7a89ba0de6cad23a0f1b0b90ca5296f0">csegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab9d26aae843dad891a3bfa736871e843"></a><!-- doxytag: member="boost::locale::boundary::wcsegment" ref="gab9d26aae843dad891a3bfa736871e843" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; wchar_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gab9d26aae843dad891a3bfa736871e843">wcsegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5ff9e98f81ad61dbcd480fc61780fee1"></a><!-- doxytag: member="boost::locale::boundary::u16csegment" ref="ga5ff9e98f81ad61dbcd480fc61780fee1" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; char16_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga5ff9e98f81ad61dbcd480fc61780fee1">u16csegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf2077b28c5de700fb5bff9688fe410d6"></a><!-- doxytag: member="boost::locale::boundary::u32csegment" ref="gaf2077b28c5de700fb5bff9688fe410d6" args="" -->
+typedef <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; char32_t const * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaf2077b28c5de700fb5bff9688fe410d6">u32csegment</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convenience typedef <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flags used with word boundary analysis -- the type of the word, line or sentence boundary found. <br/></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> { <a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641ae80c964112541d88af9b875dafb6605d">character</a>,
+<a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6">word</a>,
+<a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a88aa1509eace7589f5df87d4694871e9">sentence</a>,
+<a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a72895419fdd7219b3695cf0abd602ea4">line</a>
+ }</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename BaseIterator &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga43283ecda927605b1b802a3c3306bfb1">operator==</a> (BaseIterator const &amp;l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a>&lt; BaseIterator &gt; const &amp;r)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename BaseIterator &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga11ff477ceecc7cbc274d998c3676126e">operator!=</a> (BaseIterator const &amp;l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point</a>&lt; BaseIterator &gt; const &amp;r)</td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga2b32edcb7e385885cc7bb6ed32e0ee94"></a><!-- doxytag: member="boost::locale::boundary::operator==" ref="ga2b32edcb7e385885cc7bb6ed32e0ee94" args="(segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename IteratorL , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga2b32edcb7e385885cc7bb6ed32e0ee94">operator==</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorL &gt; const &amp;l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two segments. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga92e8bdaf8e347b65b711ef2437ad9348"></a><!-- doxytag: member="boost::locale::boundary::operator!=" ref="ga92e8bdaf8e347b65b711ef2437ad9348" args="(segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename IteratorL , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga92e8bdaf8e347b65b711ef2437ad9348">operator!=</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorL &gt; const &amp;l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two segments. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3312b16b2a678780f2354e8addac83fd"></a><!-- doxytag: member="boost::locale::boundary::operator&lt;" ref="ga3312b16b2a678780f2354e8addac83fd" args="(segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename IteratorL , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga3312b16b2a678780f2354e8addac83fd">operator&lt;</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorL &gt; const &amp;l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two segments. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf36ebfa12ec261fd4425eafe49245009"></a><!-- doxytag: member="boost::locale::boundary::operator&lt;=" ref="gaf36ebfa12ec261fd4425eafe49245009" args="(segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename IteratorL , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaf36ebfa12ec261fd4425eafe49245009">operator&lt;=</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorL &gt; const &amp;l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two segments. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gac09337a84a82c4f366148c98a69dddd4"></a><!-- doxytag: member="boost::locale::boundary::operator&gt;" ref="gac09337a84a82c4f366148c98a69dddd4" args="(segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename IteratorL , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gac09337a84a82c4f366148c98a69dddd4">operator&gt;</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorL &gt; const &amp;l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two segments. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4cb705d03b2611464478733338539430"></a><!-- doxytag: member="boost::locale::boundary::operator&gt;=" ref="ga4cb705d03b2611464478733338539430" args="(segment&lt; IteratorL &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename IteratorL , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga4cb705d03b2611464478733338539430">operator&gt;=</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorL &gt; const &amp;l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two segments. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae7ac339ac890f13ae989589fd27b042a"></a><!-- doxytag: member="boost::locale::boundary::operator==" ref="gae7ac339ac890f13ae989589fd27b042a" args="(std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename Traits , typename Alloc , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gae7ac339ac890f13ae989589fd27b042a">operator==</a> (std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga36e8f0b7bfc18651da1d5b85d097daf2"></a><!-- doxytag: member="boost::locale::boundary::operator!=" ref="ga36e8f0b7bfc18651da1d5b85d097daf2" args="(std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename Traits , typename Alloc , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga36e8f0b7bfc18651da1d5b85d097daf2">operator!=</a> (std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0932175037e72b6988169afd0ae38e6e"></a><!-- doxytag: member="boost::locale::boundary::operator&lt;" ref="ga0932175037e72b6988169afd0ae38e6e" args="(std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename Traits , typename Alloc , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga0932175037e72b6988169afd0ae38e6e">operator&lt;</a> (std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga81060e764be6d980bb0675fb9f5e9812"></a><!-- doxytag: member="boost::locale::boundary::operator&lt;=" ref="ga81060e764be6d980bb0675fb9f5e9812" args="(std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename Traits , typename Alloc , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga81060e764be6d980bb0675fb9f5e9812">operator&lt;=</a> (std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga82536a8f6542277280e93b8f46537f8a"></a><!-- doxytag: member="boost::locale::boundary::operator&gt;" ref="ga82536a8f6542277280e93b8f46537f8a" args="(std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename Traits , typename Alloc , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga82536a8f6542277280e93b8f46537f8a">operator&gt;</a> (std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gafbcf10a14a62b789df75fa4223a2ff92"></a><!-- doxytag: member="boost::locale::boundary::operator&gt;=" ref="gafbcf10a14a62b789df75fa4223a2ff92" args="(std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename Traits , typename Alloc , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gafbcf10a14a62b789df75fa4223a2ff92">operator&gt;=</a> (std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga46962dd62a6655fd34b9ec165af2d391"></a><!-- doxytag: member="boost::locale::boundary::operator==" ref="ga46962dd62a6655fd34b9ec165af2d391" args="(segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)" -->
+template&lt;typename Iterator , typename CharType , typename Traits , typename Alloc &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga46962dd62a6655fd34b9ec165af2d391">operator==</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4932acde9903090a1d8451b2e8eb7cce"></a><!-- doxytag: member="boost::locale::boundary::operator!=" ref="ga4932acde9903090a1d8451b2e8eb7cce" args="(segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)" -->
+template&lt;typename Iterator , typename CharType , typename Traits , typename Alloc &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga4932acde9903090a1d8451b2e8eb7cce">operator!=</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0a251376a40e702e33fd067d44df4aa7"></a><!-- doxytag: member="boost::locale::boundary::operator&lt;" ref="ga0a251376a40e702e33fd067d44df4aa7" args="(segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)" -->
+template&lt;typename Iterator , typename CharType , typename Traits , typename Alloc &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga0a251376a40e702e33fd067d44df4aa7">operator&lt;</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa261b02fb8190249aeabe9558422b510"></a><!-- doxytag: member="boost::locale::boundary::operator&lt;=" ref="gaa261b02fb8190249aeabe9558422b510" args="(segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)" -->
+template&lt;typename Iterator , typename CharType , typename Traits , typename Alloc &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaa261b02fb8190249aeabe9558422b510">operator&lt;=</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gacb4ee8e6dd72faa9a70a6200f1086083"></a><!-- doxytag: member="boost::locale::boundary::operator&gt;" ref="gacb4ee8e6dd72faa9a70a6200f1086083" args="(segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)" -->
+template&lt;typename Iterator , typename CharType , typename Traits , typename Alloc &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gacb4ee8e6dd72faa9a70a6200f1086083">operator&gt;</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa83d2203efdaaa9ba0efdb5a4d8505c6"></a><!-- doxytag: member="boost::locale::boundary::operator&gt;=" ref="gaa83d2203efdaaa9ba0efdb5a4d8505c6" args="(segment&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)" -->
+template&lt;typename Iterator , typename CharType , typename Traits , typename Alloc &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaa83d2203efdaaa9ba0efdb5a4d8505c6">operator&gt;=</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; Iterator &gt; const &amp;l, std::basic_string&lt; CharType, Traits, Alloc &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gab6ee0e4f55fc5346b3824a43851d8aa8"></a><!-- doxytag: member="boost::locale::boundary::operator==" ref="gab6ee0e4f55fc5346b3824a43851d8aa8" args="(CharType const *l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gab6ee0e4f55fc5346b3824a43851d8aa8">operator==</a> (CharType const *l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gadd8ef92312098f5301a04ead7e7820ee"></a><!-- doxytag: member="boost::locale::boundary::operator!=" ref="gadd8ef92312098f5301a04ead7e7820ee" args="(CharType const *l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gadd8ef92312098f5301a04ead7e7820ee">operator!=</a> (CharType const *l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gacc75c28d1a9785f13bf8262f1ab16c42"></a><!-- doxytag: member="boost::locale::boundary::operator&lt;" ref="gacc75c28d1a9785f13bf8262f1ab16c42" args="(CharType const *l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gacc75c28d1a9785f13bf8262f1ab16c42">operator&lt;</a> (CharType const *l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga3c55926456f7174f26d4cb8d21827f5b"></a><!-- doxytag: member="boost::locale::boundary::operator&lt;=" ref="ga3c55926456f7174f26d4cb8d21827f5b" args="(CharType const *l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga3c55926456f7174f26d4cb8d21827f5b">operator&lt;=</a> (CharType const *l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0b8814055201ec3ea36f0a01d891ad3d"></a><!-- doxytag: member="boost::locale::boundary::operator&gt;" ref="ga0b8814055201ec3ea36f0a01d891ad3d" args="(CharType const *l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga0b8814055201ec3ea36f0a01d891ad3d">operator&gt;</a> (CharType const *l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7a101883e579432250960545a9cebc5b"></a><!-- doxytag: member="boost::locale::boundary::operator&gt;=" ref="ga7a101883e579432250960545a9cebc5b" args="(CharType const *l, segment&lt; IteratorR &gt; const &amp;r)" -->
+template&lt;typename CharType , typename IteratorR &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga7a101883e579432250960545a9cebc5b">operator&gt;=</a> (CharType const *l, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; IteratorR &gt; const &amp;r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gae790fec4c9f079010027dc60cbfe7358"></a><!-- doxytag: member="boost::locale::boundary::operator==" ref="gae790fec4c9f079010027dc60cbfe7358" args="(segment&lt; Iterator &gt; const &amp;l, CharType const *r)" -->
+template&lt;typename Iterator , typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gae790fec4c9f079010027dc60cbfe7358">operator==</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; Iterator &gt; const &amp;l, CharType const *r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga6664b475504a2396662bc3658b982e0c"></a><!-- doxytag: member="boost::locale::boundary::operator!=" ref="ga6664b475504a2396662bc3658b982e0c" args="(segment&lt; Iterator &gt; const &amp;l, CharType const *r)" -->
+template&lt;typename Iterator , typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga6664b475504a2396662bc3658b982e0c">operator!=</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; Iterator &gt; const &amp;l, CharType const *r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga313c2d3e6270e57dc48587f52833e111"></a><!-- doxytag: member="boost::locale::boundary::operator&lt;" ref="ga313c2d3e6270e57dc48587f52833e111" args="(segment&lt; Iterator &gt; const &amp;l, CharType const *r)" -->
+template&lt;typename Iterator , typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga313c2d3e6270e57dc48587f52833e111">operator&lt;</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; Iterator &gt; const &amp;l, CharType const *r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8736ae89a477d37d196e137e51f546f4"></a><!-- doxytag: member="boost::locale::boundary::operator&lt;=" ref="ga8736ae89a477d37d196e137e51f546f4" args="(segment&lt; Iterator &gt; const &amp;l, CharType const *r)" -->
+template&lt;typename Iterator , typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga8736ae89a477d37d196e137e51f546f4">operator&lt;=</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; Iterator &gt; const &amp;l, CharType const *r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ga46a945423c982c08c8143eaced7878bf"></a><!-- doxytag: member="boost::locale::boundary::operator&gt;" ref="ga46a945423c982c08c8143eaced7878bf" args="(segment&lt; Iterator &gt; const &amp;l, CharType const *r)" -->
+template&lt;typename Iterator , typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga46a945423c982c08c8143eaced7878bf">operator&gt;</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; Iterator &gt; const &amp;l, CharType const *r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="gacd03bf4305835d4dc2db8e98a67d8e4c"></a><!-- doxytag: member="boost::locale::boundary::operator&gt;=" ref="gacd03bf4305835d4dc2db8e98a67d8e4c" args="(segment&lt; Iterator &gt; const &amp;l, CharType const *r)" -->
+template&lt;typename Iterator , typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#gacd03bf4305835d4dc2db8e98a67d8e4c">operator&gt;=</a> (<a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; Iterator &gt; const &amp;l, CharType const *r)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare C string and segment. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType , typename TraitsType , typename Iterator &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_ostream&lt; CharType, <br class="typebreak"/>
+TraitsType &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga52e8a81834c07879736a585f33af5de6">operator&lt;&lt;</a> (std::basic_ostream&lt; CharType, TraitsType &gt; &amp;out, <a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment</a>&lt; Iterator &gt; const &amp;tok)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga99daacb708289fe81def9f1ce4486515">boundary_rule</a> (<a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> t)</td></tr>
+<tr><td colspan="2"><h2><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Flags that describe a type of word selected</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpabac8d1452313f3e83b136f6f21b6d18"></a> <a class="anchor" id="bl_boundary_word_rules"></a> </p>
+</div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga90cf4f01b95658f659685377226677e7"></a><!-- doxytag: member="boost::locale::boundary::word_none" ref="ga90cf4f01b95658f659685377226677e7" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga90cf4f01b95658f659685377226677e7">word_none</a> = 0x0000F</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Not a word, like white space or punctuation mark. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaac78a3a6b9e671e253a2591cb56a479b"></a><!-- doxytag: member="boost::locale::boundary::word_number" ref="gaac78a3a6b9e671e253a2591cb56a479b" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaac78a3a6b9e671e253a2591cb56a479b">word_number</a> = 0x000F0</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word that appear to be a number. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8b7e6ce2fcb185845fa85a1a4c42b3c4"></a><!-- doxytag: member="boost::locale::boundary::word_letter" ref="ga8b7e6ce2fcb185845fa85a1a4c42b3c4" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga8b7e6ce2fcb185845fa85a1a4c42b3c4">word_letter</a> = 0x00F00</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word that contains letters, excluding kana and ideographic characters. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52d8c63e1f3f8c898c645352206a78ef"></a><!-- doxytag: member="boost::locale::boundary::word_kana" ref="ga52d8c63e1f3f8c898c645352206a78ef" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga52d8c63e1f3f8c898c645352206a78ef">word_kana</a> = 0x0F000</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word that contains kana characters. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga705ab96f9e62810c8ed977c90d404ef8"></a><!-- doxytag: member="boost::locale::boundary::word_ideo" ref="ga705ab96f9e62810c8ed977c90d404ef8" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga705ab96f9e62810c8ed977c90d404ef8">word_ideo</a> = 0xF0000</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word that contains ideographic characters. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3ab98808dbb1cc4a346dcc2554c9d8dc"></a><!-- doxytag: member="boost::locale::boundary::word_any" ref="ga3ab98808dbb1cc4a346dcc2554c9d8dc" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga3ab98808dbb1cc4a346dcc2554c9d8dc">word_any</a> = 0xFFFF0</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Any word including numbers, 0 is special flag, equivalent to 15. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae412d31a918dc793500fed7278663047"></a><!-- doxytag: member="boost::locale::boundary::word_letters" ref="gae412d31a918dc793500fed7278663047" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gae412d31a918dc793500fed7278663047">word_letters</a> = 0xFFF00</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Any word, excluding numbers but including letters, kana and ideograms. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5de65589628267ab7f2a51f4147d43f9"></a><!-- doxytag: member="boost::locale::boundary::word_kana_ideo" ref="ga5de65589628267ab7f2a51f4147d43f9" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga5de65589628267ab7f2a51f4147d43f9">word_kana_ideo</a> = 0xFF000</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Word that includes kana or ideographic characters. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gad11031065617b6be9d4662d2c06afd52">word_mask</a> = 0xFFFFF</td></tr>
+<tr><td colspan="2"><div class="groupHeader">Flags that describe a type of line break</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp99d1c759163f3082dff790a7e8e04eb5"></a> <a class="anchor" id="bl_boundary_line_rules"></a> </p>
+</div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa6a7b6ea3c63a1101a945b82eb10ebd0"></a><!-- doxytag: member="boost::locale::boundary::line_soft" ref="gaa6a7b6ea3c63a1101a945b82eb10ebd0" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaa6a7b6ea3c63a1101a945b82eb10ebd0">line_soft</a> = 0x0F</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Soft line break: optional but not required. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga04faac8129ca14e4e5a789652ee8ecab"></a><!-- doxytag: member="boost::locale::boundary::line_hard" ref="ga04faac8129ca14e4e5a789652ee8ecab" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga04faac8129ca14e4e5a789652ee8ecab">line_hard</a> = 0xF0</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hard line break: like break is required (as per CR/LF). <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga33fb765abbab27ee07cf70bfab8f47e0"></a><!-- doxytag: member="boost::locale::boundary::line_any" ref="ga33fb765abbab27ee07cf70bfab8f47e0" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga33fb765abbab27ee07cf70bfab8f47e0">line_any</a> = 0xFF</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Soft or Hard line break. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad5d8f2ac695f14b58d5df277aa5939f9"></a><!-- doxytag: member="boost::locale::boundary::line_mask" ref="gad5d8f2ac695f14b58d5df277aa5939f9" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gad5d8f2ac695f14b58d5df277aa5939f9">line_mask</a> = 0xFF</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select all types of line breaks. <br/></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Flags that describe a type of sentence break</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpfb13ccc6dee7f63c89f426c484168b62"></a> <a class="anchor" id="bl_boundary_sentence_rules"></a> </p>
+</div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3befefe67f79691c117bf5588741355b"></a><!-- doxytag: member="boost::locale::boundary::sentence_term" ref="ga3befefe67f79691c117bf5588741355b" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b">sentence_term</a> = 0x0F</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The sentence was terminated with a sentence terminator like ".", "!" possible followed by hard separator like CR, LF, PS. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf67883341dd3d8f786e7281d40790000"></a><!-- doxytag: member="boost::locale::boundary::sentence_sep" ref="gaf67883341dd3d8f786e7281d40790000" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gaf67883341dd3d8f786e7281d40790000">sentence_sep</a> = 0xF0</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The sentence does not contain terminator like ".", "!" but ended with hard separator like CR, LF, PS or end of input. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae2042518b20123ec14fbf71458ec9c79"></a><!-- doxytag: member="boost::locale::boundary::sentence_any" ref="gae2042518b20123ec14fbf71458ec9c79" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gae2042518b20123ec14fbf71458ec9c79">sentence_any</a> = 0xFF</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Either first or second sentence break type;. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacd2a521edb550e75c624000a1089934c"></a><!-- doxytag: member="boost::locale::boundary::sentence_mask" ref="gacd2a521edb550e75c624000a1089934c" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gacd2a521edb550e75c624000a1089934c">sentence_mask</a> = 0xFF</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select all sentence breaking points. <br/></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Flags that describe a type of character break.</div></td></tr>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp3e1d3241fbeb9a60e2aefb02fdc6f34a"></a> At this point break iterator does not distinguish different kinds of characters so it is used for consistency. </p>
+</div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9f9e97f7d234139cabe4c4df92a6d4b5"></a><!-- doxytag: member="boost::locale::boundary::character_any" ref="ga9f9e97f7d234139cabe4c4df92a6d4b5" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#ga9f9e97f7d234139cabe4c4df92a6d4b5">character_any</a> = 0xF</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Not in use, just for consistency. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad151135cfe341d3c1f63bf459f6a1f4c"></a><!-- doxytag: member="boost::locale::boundary::character_mask" ref="gad151135cfe341d3c1f63bf459f6a1f4c" args="" -->
+static const <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__boundary.html#gad151135cfe341d3c1f63bf459f6a1f4c">character_mask</a> = 0xF</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select all character breaking points. <br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This namespae contains all operations required for boundary analysis of text. </p>
+<p>This namespase contains all operations required for boundary analysis of text. </p>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1conv.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1conv.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::conv Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1conv.html">conv</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Classes &#124;
+Enumerations &#124;
+Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::conv Namespace Reference</h1> </div>
+</div>
+<div class="contents">
+
+<p>Namespace that contains all functions related to character set conversion.
+More...</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1conv_1_1conversion__error.html">conversion_error</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The excepton that is thrown in case of conversion error. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html">invalid_charset_error</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This exception is thrown in case of use of unsupported or invalid character set. More...<br/></td></tr>
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> { <a class="el" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84ae9b554a2955deddf714757788819edf9">skip</a> = 0,
+<a class="el" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84aab08f9ee241c405ef40bd3cedb43b383">stop</a> = 1,
+<a class="el" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559">default_method</a> = skip
+ }</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#gad659f9c9c8b291e2ac6af24c49b42e43">to_utf</a> (char const *begin, char const *end, std::string const &amp;charset, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#gadc41bd2517e6e3bdcecdfc93b339204c">from_utf</a> (CharType const *begin, CharType const *end, std::string const &amp;charset, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga474409c9625e08b86bf1480c82639e5b">to_utf</a> (char const *begin, char const *end, std::locale const &amp;loc, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga075f5bae721a9e87d887556ebefe1860">from_utf</a> (CharType const *begin, CharType const *end, std::locale const &amp;loc, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga26e823a630dbaecdfbc933ecc0a5c5be">to_utf</a> (std::string const &amp;text, std::string const &amp;charset, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga878bd2dcc00621d4e4e7d3d98f39736d">from_utf</a> (std::basic_string&lt; CharType &gt; const &amp;text, std::string const &amp;charset, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga42ab3fd3274363286d34088a376581d3">to_utf</a> (char const *text, std::string const &amp;charset, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#gac56907f3f3585a922e4f44cf86638851">from_utf</a> (CharType const *text, std::string const &amp;charset, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga24d4f73f7ed314ba5b992b226c341b07">to_utf</a> (std::string const &amp;text, std::locale const &amp;loc, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga9b81fc6055ce081bf0a86681be6ce51e">from_utf</a> (std::basic_string&lt; CharType &gt; const &amp;text, std::locale const &amp;loc, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharType &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#gae2b0ba250a16567c0ad8919be8061d6e">to_utf</a> (char const *text, std::locale const &amp;loc, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#gab9f8f0e62bdfd258a99a627f8b88eb34">from_utf</a> (CharType const *text, std::locale const &amp;loc, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga7eda9058b8cbac9b05886bcc894faeff">between</a> (char const *begin, char const *end, std::string const &amp;to_encoding, std::string const &amp;from_encoding, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga612607a8616add30cf21ceb086e664d5">between</a> (char const *text, std::string const &amp;to_encoding, std::string const &amp;from_encoding, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__codepage.html#gad7f6c33cf95749ab48174ccafddf7b62">between</a> (std::string const &amp;text, std::string const &amp;to_encoding, std::string const &amp;from_encoding, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharOut , typename CharIn &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharOut &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga2de4d9d38004e5d7146abf2bd6a3df0b">utf_to_utf</a> (CharIn const *begin, CharIn const *end, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharOut , typename CharIn &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharOut &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#gae36d1fa29f675c4f13164afd8e0fabde">utf_to_utf</a> (CharIn const *str, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharOut , typename CharIn &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; CharOut &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__codepage.html#ga2aa7d34682ff4e66b297ab5d75e1de51">utf_to_utf</a> (std::basic_string&lt; CharIn &gt; const &amp;str, <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">method_type</a> how=default_method)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Namespace that contains all functions related to character set conversion. </p>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1flags.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1flags.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::flags Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1flags.html">flags</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Enumerations </div>
+ <div class="headertitle">
+<h1>boost::locale::flags Namespace Reference</h1> </div>
+</div>
+<div class="contents">
+
+<p>This namespace holds additional formatting flags that can be set using <a class="el" href="classboost_1_1locale_1_1ios__info.html" title="This class holds an external data - beyond existing fmtflags that std::ios_base holds.">ios_info</a>.
+More...</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1flags.html#ab0255a81e609e12040ca07dda4434a99">display_flags_type</a> { <br/>
+&nbsp;&nbsp;<b>posix</b> = 0,
+<b>number</b> = 1,
+<b>currency</b> = 2,
+<b>percent</b> = 3,
+<br/>
+&nbsp;&nbsp;<b>date</b> = 4,
+<b>time</b> = 5,
+<b>datetime</b> = 6,
+<b>strftime</b> = 7,
+<br/>
+&nbsp;&nbsp;<b>spellout</b> = 8,
+<b>ordinal</b> = 9,
+<b>display_flags_mask</b> = 31,
+<b>currency_default</b> = 0 &lt;&lt; 5,
+<br/>
+&nbsp;&nbsp;<b>currency_iso</b> = 1 &lt;&lt; 5,
+<b>currency_national</b> = 2 &lt;&lt; 5,
+<b>currency_flags_mask</b> = 3 &lt;&lt; 5,
+<b>time_default</b> = 0 &lt;&lt; 7,
+<br/>
+&nbsp;&nbsp;<b>time_short</b> = 1 &lt;&lt; 7,
+<b>time_medium</b> = 2 &lt;&lt; 7,
+<b>time_long</b> = 3 &lt;&lt; 7,
+<b>time_full</b> = 4 &lt;&lt; 7,
+<br/>
+&nbsp;&nbsp;<b>time_flags_mask</b> = 7 &lt;&lt; 7,
+<b>date_default</b> = 0 &lt;&lt; 10,
+<b>date_short</b> = 1 &lt;&lt; 10,
+<b>date_medium</b> = 2 &lt;&lt; 10,
+<br/>
+&nbsp;&nbsp;<b>date_long</b> = 3 &lt;&lt; 10,
+<b>date_full</b> = 4 &lt;&lt; 10,
+<b>date_flags_mask</b> = 7 &lt;&lt; 10,
+<b>datetime_flags_mask</b> = date_flags_mask | time_flags_mask
+<br/>
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1flags.html#a730fd2868b4d25412c9fba7239ce277e">pattern_type</a> { <a class="el" href="namespaceboost_1_1locale_1_1flags.html#a730fd2868b4d25412c9fba7239ce277eaa4cbe9c3e0cd744c7543755e51029387">datetime_pattern</a>,
+<a class="el" href="namespaceboost_1_1locale_1_1flags.html#a730fd2868b4d25412c9fba7239ce277eaeb4698e4d169fa7bd13d35fb861cc4fb">time_zone_id</a>
+ }</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1flags.html#aa8bc4e6a6419c16479ea037b9fd05d06">value_type</a> { <a class="el" href="namespaceboost_1_1locale_1_1flags.html#aa8bc4e6a6419c16479ea037b9fd05d06a43aa65d05606f54a48b3848fdd4218c0">domain_id</a>
+ }</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This namespace holds additional formatting flags that can be set using <a class="el" href="classboost_1_1locale_1_1ios__info.html" title="This class holds an external data - beyond existing fmtflags that std::ios_base holds.">ios_info</a>. </p>
+<hr/><h2>Enumeration Type Documentation</h2>
+<a class="anchor" id="ab0255a81e609e12040ca07dda4434a99"></a><!-- doxytag: member="boost::locale::flags::display_flags_type" ref="ab0255a81e609e12040ca07dda4434a99" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="namespaceboost_1_1locale_1_1flags.html#ab0255a81e609e12040ca07dda4434a99">boost::locale::flags::display_flags_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Formatting flags, each one of them has corresponding manipulation in namespace <em>as</em> </p>
+
+</div>
+</div>
+<a class="anchor" id="a730fd2868b4d25412c9fba7239ce277e"></a><!-- doxytag: member="boost::locale::flags::pattern_type" ref="a730fd2868b4d25412c9fba7239ce277e" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="namespaceboost_1_1locale_1_1flags.html#a730fd2868b4d25412c9fba7239ce277e">boost::locale::flags::pattern_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Special string patters that can be used for text formatting </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a730fd2868b4d25412c9fba7239ce277eaa4cbe9c3e0cd744c7543755e51029387"></a><!-- doxytag: member="datetime_pattern" ref="a730fd2868b4d25412c9fba7239ce277eaa4cbe9c3e0cd744c7543755e51029387" args="" -->datetime_pattern</em>&nbsp;</td><td>
+<p>strftime like formatting </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a730fd2868b4d25412c9fba7239ce277eaeb4698e4d169fa7bd13d35fb861cc4fb"></a><!-- doxytag: member="time_zone_id" ref="a730fd2868b4d25412c9fba7239ce277eaeb4698e4d169fa7bd13d35fb861cc4fb" args="" -->time_zone_id</em>&nbsp;</td><td>
+<p>time zone name </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aa8bc4e6a6419c16479ea037b9fd05d06"></a><!-- doxytag: member="boost::locale::flags::value_type" ref="aa8bc4e6a6419c16479ea037b9fd05d06" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="namespaceboost_1_1locale_1_1flags.html#aa8bc4e6a6419c16479ea037b9fd05d06">boost::locale::flags::value_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Special integer values that can be used for formatting </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="aa8bc4e6a6419c16479ea037b9fd05d06a43aa65d05606f54a48b3848fdd4218c0"></a><!-- doxytag: member="domain_id" ref="aa8bc4e6a6419c16479ea037b9fd05d06a43aa65d05606f54a48b3848fdd4218c0" args="" -->domain_id</em>&nbsp;</td><td>
+<p>Domain code - for message formatting. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1gnu__gettext.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1gnu__gettext.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::gnu_gettext Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1gnu__gettext.html">gnu_gettext</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Classes &#124;
+Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::gnu_gettext Namespace Reference<br/>
+<small>
+[<a class="el" href="group__message.html">Message Formatting (translation)</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+
+<p>This namespace holds classes that provide GNU Gettext message catalogs support.
+More...</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">messages_info</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This structure holds all information required for creating gnu-gettext message catalogs,. More...<br/></td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1message__format.html">message_format</a>&lt; CharType &gt; *&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1gnu__gettext.html#a0e964bab0c1cc11e034177e629b08411">create_messages_facet</a> (<a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">messages_info</a> const &amp;<a class="el" href="classboost_1_1locale_1_1info.html">info</a>)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This namespace holds classes that provide GNU Gettext message catalogs support. </p>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a0e964bab0c1cc11e034177e629b08411"></a><!-- doxytag: member="boost::locale::gnu_gettext::create_messages_facet" ref="a0e964bab0c1cc11e034177e629b08411" args="(messages_info const &amp;info)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1message__format.html">message_format</a>&lt;CharType&gt;* boost::locale::gnu_gettext::create_messages_facet </td>
+ <td>(</td>
+ <td class="paramtype">messages_info const &amp;&nbsp;</td>
+ <td class="paramname"> <em>info</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a <a class="el" href="classboost_1_1locale_1_1message__format.html" title="This facet provides message formatting abilities.">message_format</a> facet using GNU Gettext catalogs. It uses <em>info</em> structure to get information about where to read them from and uses it for character set conversion (if needed) </p>
+
+</div>
+</div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1period.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1period.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,2049 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::period Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1period.html">period</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Namespaces &#124;
+Classes &#124;
+Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::period Namespace Reference<br/>
+<small>
+[<a class="el" href="group__date__time.html">Date, Time, Timezone and Calendar manipulations</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+
+<p>Namespace that contains various types for manipulation with dates.
+More...</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html">marks</a></td></tr>
+
+<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>This namespace holds a enum of various period types like era, year, month, etc.. </p>
+<br/></td></tr>
+</p>
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class holds a type that represents certain period of time like year, hour, second and so on. More...<br/></td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a6468414599fd81815943e8d9e868fd1b">invalid</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a62d0745dbb555066a7281b9c805ceab7">era</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a9ea8d1453bed512ee16bea3199fd92af">year</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#aeb2dfdc73c6d16796360eca141654aba">extended_year</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#aa6aafbd111a9c729266f2aa28b895d68">month</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">day</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a33e67d3354486021fa1e7076d30d51a4">day_of_year</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">day_of_week</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a083c271b3bbd29e4644b59fb3e34a4d7">day_of_week_in_month</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a57d6b8f97bd6604e13c6982ed0953678">day_of_week_local</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a35f2ca900e3cda757c4598b686ca5969">hour</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#af96ab88b9d168801bfde95c7ad24613a">hour_12</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a61b2390a32e15c6aa2c26bc06d21a20c">am_pm</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a0076efc591f6341ef785f49422b6fa89">minute</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#adee2c2dcbbea3653604cb6d514cb9a9b">second</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a4cb28c5353004068b73d0f12136bbfe9">week_of_year</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ab01f299cdb64c780cadca7d64f87cd5f">week_of_month</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a1569da2e8680ef5d3409361069905541">first_day_of_week</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a9d37769736a55787e6f1b82b620b5ef4">era</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ab3a1f7646bf3496bde51942509d848d5">year</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a484606afd8fb5bc756b97d009052c809">extended_year</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a8d5844402628043891f77fccab0f6c16">month</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a0170a70ce66c0cd31bd64e9be1662591">day</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#aad2e66d5af580de384b94f8c71ba697c">day_of_year</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a754856ee5d0492db9367bdc3e1f4fb88">day_of_week</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#af60490df8e226368cea043cc6046db19">day_of_week_in_month</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a673f97f4427f8a3f0e6453a5ed6aaf1f">day_of_week_local</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a0acb70742e1b2f17cc13152c544ac242">hour</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ad805b92b111e4fd7dc00d911b07f6ab8">hour_12</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ab1288da3e9e6cff57a4d964abe463ab1">am_pm</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a0490daa370b1e8c89b14d0af2db48073">minute</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#aa75c0462a5cada6fc3661e48ca0ae016">second</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a9e8cc55821326edd169fbd90af7304ec">week_of_year</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#aeb20ca7d1a9fbba527939202dcd8a1a8">week_of_month</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ab1a52ed7a8042fa428d14c4f87642bc4">first_day_of_week</a> (int v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a6073ebcf60bf690662c3a9d113b49e9b">january</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ab0610583a720120e8dcf90d0fe01cb01">february</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ac0d844780c28dc783879d82eaa192961">march</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a1b4663ee24f7687e592f0b790e8df494">april</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a420d04f471ef28107ba1bd6a8edae263">may</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ab9269cd77b2d055022a587c9c0d13673">june</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a41e228841e03b61187660fb3e9692c7d">july</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ab5d2e72c7d5b842c26af29af4c96a853">august</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ad325c929fb0a1173097cb9195367b209">september</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ad0e376bf63fb32da0dad13b0c4a6fef1">october</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ab2810f9718b18b77e47b4d23f94589ae">november</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#aad0c72b6aa0ade2e71a71223eefab6fd">december</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a12e3cce2dc169b65062c7fadd1143b0b">sunday</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a45ad1aeaf7a0e62ef26a42adca38da70">monday</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a2426159fe1f6cb25f2598f35adf14267">tuesday</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a856d680245af08ff3bd1618817a90ef1">wednesday</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ab03ddec166d072a7465e87dbaccc1389">thursday</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a26ef9fa6f6df065606a36c9b42e165eb">friday</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ac16b397e27e29fe6483540910e8ade3a">saturday</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a683b393abc6276f3d77289af0f5d6404">am</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a5ee88cdab049350f1346466b2da6ccf0">pm</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a1399317fdf67b50ec11aa9298176ab70">operator+</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a9c5588c1059eff9e9ab8034f7442bf00">operator-</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ac5df80720f82ac2f36e42d9df493b2e0">operator*</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f, T v)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#abb23e95e2a456ad6224f9c9f810e31e7">operator*</a> (T v, <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#af84b105a6cff4eb66cfcbaa33a73da7b">operator*</a> (T v, <a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> f)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a1f4ef70b388a2892847b2b2662118ce9">operator*</a> (<a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> f, T v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ae463c1aef853fac6a434e5ebe0efa7bc">era</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a6990cb547cc6b0d46a71e9e93260b764">year</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a3b75a9bb1693373fbc11e709b866c4a4">extended_year</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a0f8bf7a07ded99184b22ebf4322e14e3">month</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a1a18f699d77055559a338b721ffd67bc">day</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a3af9fced8291a4dd68c0e342cc2aeff6">day_of_year</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a1304d65dfac45b50ba8a1ccba7eeb615">day_of_week</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a39eebff5ecf7dfbebfa159773fa0fafa">day_of_week_in_month</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a4cbc3c60e06552569af8e4c754c68ccf">day_of_week_local</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#abf42ad6e3c0ff5f65eede3ca8b03649e">hour</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a5de2d1eb76264a004bd7de32787d5e04">hour_12</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#aa0e5fd0e823eeb693d1289bc7620e9c6">am_pm</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#aee91078a72717b913d032c339b71aae1">minute</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ad42c02ea2dd7ff74cefe44e2f33350ba">second</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#acee2c7677af0ee00a9e69ad7bae4eca6">week_of_year</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a43006158737c71e5710d0838dbfdc471">week_of_month</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a8b54a5a3841f233e2815a3f9c8fa8ebd">first_day_of_week</a> (<a class="el" href="classboost_1_1locale_1_1date__time.html">date_time</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a1f13d857994b5f415f323cc7837295b6">era</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#abf08701667238bc060923e8951a5412f">year</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#acd90973d68b0141c7cb7883eb20bc95e">extended_year</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#aacafebe772a38c196a5bc05c7343dabf">month</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a4fc7bd863c6fe3ba1afe59a6027b4a71">day</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ab10c8ad1d752f849263b3c49fab6bdeb">day_of_year</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a5743a65a383b5b793765c59b74390daf">day_of_week</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a70abd9dc28f8c30ecb9490a7e6e74cf6">day_of_week_in_month</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#adcff30ce44d9eceec07aa27a6d989472">day_of_week_local</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ad9352f5a7dc6b60249656165963b2f25">hour</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a5c8f153c6f82c9a90634149ab83357da">hour_12</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a7e96c49dc74ad3590bdf442f0d35932d">am_pm</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#ab639dfc13268e20301971ba703eac879">minute</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a5a38b6fc7ad24095c00aa2169d1740ea">second</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a33e747e1711d0afd6831f53e2316b808">week_of_year</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a0a1441373dea5b91f4885884d9343504">week_of_month</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period.html#a13e56c76ec6c550c5b3558000e268f1d">first_day_of_week</a> (<a class="el" href="classboost_1_1locale_1_1date__time__duration.html">date_time_duration</a> const &amp;dt)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Namespace that contains various types for manipulation with dates. </p>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a683b393abc6276f3d77289af0f5d6404"></a><!-- doxytag: member="boost::locale::period::am" ref="a683b393abc6276f3d77289af0f5d6404" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::am </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for AM (Ante Meridiem) </p>
+
+</div>
+</div>
+<a class="anchor" id="aa0e5fd0e823eeb693d1289bc7620e9c6"></a><!-- doxytag: member="boost::locale::period::am_pm" ref="aa0e5fd0e823eeb693d1289bc7620e9c6" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::am_pm </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of am or pm marker [0..1] </p>
+
+</div>
+</div>
+<a class="anchor" id="a7e96c49dc74ad3590bdf442f0d35932d"></a><!-- doxytag: member="boost::locale::period::am_pm" ref="a7e96c49dc74ad3590bdf442f0d35932d" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::am_pm </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in am or pm markers </p>
+
+</div>
+</div>
+<a class="anchor" id="a61b2390a32e15c6aa2c26bc06d21a20c"></a><!-- doxytag: member="boost::locale::period::am_pm" ref="a61b2390a32e15c6aa2c26bc06d21a20c" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::am_pm </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: am or pm marker [0..1] </p>
+
+</div>
+</div>
+<a class="anchor" id="ab1288da3e9e6cff57a4d964abe463ab1"></a><!-- doxytag: member="boost::locale::period::am_pm" ref="ab1288da3e9e6cff57a4d964abe463ab1" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::am_pm </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: am or pm marker [0..1] </p>
+
+</div>
+</div>
+<a class="anchor" id="a1b4663ee24f7687e592f0b790e8df494"></a><!-- doxytag: member="boost::locale::period::april" ref="a1b4663ee24f7687e592f0b790e8df494" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::april </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for April </p>
+
+</div>
+</div>
+<a class="anchor" id="ab5d2e72c7d5b842c26af29af4c96a853"></a><!-- doxytag: member="boost::locale::period::august" ref="ab5d2e72c7d5b842c26af29af4c96a853" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::august </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for August </p>
+
+</div>
+</div>
+<a class="anchor" id="a1a18f699d77055559a338b721ffd67bc"></a><!-- doxytag: member="boost::locale::period::day" ref="a1a18f699d77055559a338b721ffd67bc" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::day </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of The day of month, calendar specific, in Gregorian [1..31] </p>
+
+</div>
+</div>
+<a class="anchor" id="a0170a70ce66c0cd31bd64e9be1662591"></a><!-- doxytag: member="boost::locale::period::day" ref="a0170a70ce66c0cd31bd64e9be1662591" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::day </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: The day of month, calendar specific, in Gregorian [1..31] </p>
+
+</div>
+</div>
+<a class="anchor" id="a4fc7bd863c6fe3ba1afe59a6027b4a71"></a><!-- doxytag: member="boost::locale::period::day" ref="a4fc7bd863c6fe3ba1afe59a6027b4a71" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::day </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in days of month </p>
+
+</div>
+</div>
+<a class="anchor" id="a72438d8d7da8493457e043aa442f0d9d"></a><!-- doxytag: member="boost::locale::period::day" ref="a72438d8d7da8493457e043aa442f0d9d" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::day </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: The day of month, calendar specific, in Gregorian [1..31] </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="calendar_8cpp-example.html#a3">calendar.cpp</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="a1304d65dfac45b50ba8a1ccba7eeb615"></a><!-- doxytag: member="boost::locale::period::day_of_week" ref="a1304d65dfac45b50ba8a1ccba7eeb615" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::day_of_week </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of Day of week, Sunday=1, Monday=2,..., Saturday=7.</p>
+<p>Note that that updating this value respects local day of week, so for example, If first day of week is Monday and the current day is Tuesday then setting the value to Sunday (1) would forward the date by 5 days forward and not backward by two days as it could be expected if the numbers were taken as is. </p>
+
+</div>
+</div>
+<a class="anchor" id="ac1b424cae5ed4ab32aed3c3aedc306e9"></a><!-- doxytag: member="boost::locale::period::day_of_week" ref="ac1b424cae5ed4ab32aed3c3aedc306e9" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::day_of_week </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: Day of week, Sunday=1, Monday=2,..., Saturday=7.</p>
+<p>Note that that updating this value respects local day of week, so for example, If first day of week is Monday and the current day is Tuesday then setting the value to Sunday (1) would forward the date by 5 days forward and not backward by two days as it could be expected if the numbers were taken as is. </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="calendar_8cpp-example.html#a7">calendar.cpp</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="a5743a65a383b5b793765c59b74390daf"></a><!-- doxytag: member="boost::locale::period::day_of_week" ref="a5743a65a383b5b793765c59b74390daf" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::day_of_week </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in days of week </p>
+
+</div>
+</div>
+<a class="anchor" id="a754856ee5d0492db9367bdc3e1f4fb88"></a><!-- doxytag: member="boost::locale::period::day_of_week" ref="a754856ee5d0492db9367bdc3e1f4fb88" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::day_of_week </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: Day of week, Sunday=1, Monday=2,..., Saturday=7.</p>
+<p>Note that that updating this value respects local day of week, so for example, If first day of week is Monday and the current day is Tuesday then setting the value to Sunday (1) would forward the date by 5 days forward and not backward by two days as it could be expected if the numbers were taken as is. </p>
+
+</div>
+</div>
+<a class="anchor" id="a39eebff5ecf7dfbebfa159773fa0fafa"></a><!-- doxytag: member="boost::locale::period::day_of_week_in_month" ref="a39eebff5ecf7dfbebfa159773fa0fafa" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::day_of_week_in_month </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of Original number of the day of the week in month. For example 1st Sunday, 2nd Sunday, etc. in Gregorian [1..5] </p>
+
+</div>
+</div>
+<a class="anchor" id="a083c271b3bbd29e4644b59fb3e34a4d7"></a><!-- doxytag: member="boost::locale::period::day_of_week_in_month" ref="a083c271b3bbd29e4644b59fb3e34a4d7" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::day_of_week_in_month </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: Original number of the day of the week in month. For example 1st Sunday, 2nd Sunday, etc. in Gregorian [1..5] </p>
+
+</div>
+</div>
+<a class="anchor" id="a70abd9dc28f8c30ecb9490a7e6e74cf6"></a><!-- doxytag: member="boost::locale::period::day_of_week_in_month" ref="a70abd9dc28f8c30ecb9490a7e6e74cf6" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::day_of_week_in_month </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in original number of the day of the week in month </p>
+
+</div>
+</div>
+<a class="anchor" id="af60490df8e226368cea043cc6046db19"></a><!-- doxytag: member="boost::locale::period::day_of_week_in_month" ref="af60490df8e226368cea043cc6046db19" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::day_of_week_in_month </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: Original number of the day of the week in month. For example 1st Sunday, 2nd Sunday, etc. in Gregorian [1..5] </p>
+
+</div>
+</div>
+<a class="anchor" id="a4cbc3c60e06552569af8e4c754c68ccf"></a><!-- doxytag: member="boost::locale::period::day_of_week_local" ref="a4cbc3c60e06552569af8e4c754c68ccf" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::day_of_week_local </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of Local day of week, for example in France Monday is 1, in US Sunday is 1, [1..7] </p>
+
+</div>
+</div>
+<a class="anchor" id="a57d6b8f97bd6604e13c6982ed0953678"></a><!-- doxytag: member="boost::locale::period::day_of_week_local" ref="a57d6b8f97bd6604e13c6982ed0953678" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::day_of_week_local </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: Local day of week, for example in France Monday is 1, in US Sunday is 1, [1..7] </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="calendar_8cpp-example.html#a9">calendar.cpp</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="adcff30ce44d9eceec07aa27a6d989472"></a><!-- doxytag: member="boost::locale::period::day_of_week_local" ref="adcff30ce44d9eceec07aa27a6d989472" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::day_of_week_local </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in local day of week </p>
+
+</div>
+</div>
+<a class="anchor" id="a673f97f4427f8a3f0e6453a5ed6aaf1f"></a><!-- doxytag: member="boost::locale::period::day_of_week_local" ref="a673f97f4427f8a3f0e6453a5ed6aaf1f" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::day_of_week_local </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: Local day of week, for example in France Monday is 1, in US Sunday is 1, [1..7] </p>
+
+</div>
+</div>
+<a class="anchor" id="a3af9fced8291a4dd68c0e342cc2aeff6"></a><!-- doxytag: member="boost::locale::period::day_of_year" ref="a3af9fced8291a4dd68c0e342cc2aeff6" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::day_of_year </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of The number of day in year, starting from 1, in Gregorian [1..366] </p>
+
+</div>
+</div>
+<a class="anchor" id="ab10c8ad1d752f849263b3c49fab6bdeb"></a><!-- doxytag: member="boost::locale::period::day_of_year" ref="ab10c8ad1d752f849263b3c49fab6bdeb" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::day_of_year </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in days of year </p>
+
+</div>
+</div>
+<a class="anchor" id="a33e67d3354486021fa1e7076d30d51a4"></a><!-- doxytag: member="boost::locale::period::day_of_year" ref="a33e67d3354486021fa1e7076d30d51a4" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::day_of_year </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: The number of day in year, starting from 1, in Gregorian [1..366] </p>
+
+</div>
+</div>
+<a class="anchor" id="aad2e66d5af580de384b94f8c71ba697c"></a><!-- doxytag: member="boost::locale::period::day_of_year" ref="aad2e66d5af580de384b94f8c71ba697c" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::day_of_year </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: The number of day in year, starting from 1, in Gregorian [1..366] </p>
+
+</div>
+</div>
+<a class="anchor" id="aad0c72b6aa0ade2e71a71223eefab6fd"></a><!-- doxytag: member="boost::locale::period::december" ref="aad0c72b6aa0ade2e71a71223eefab6fd" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::december </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for December </p>
+
+</div>
+</div>
+<a class="anchor" id="a9d37769736a55787e6f1b82b620b5ef4"></a><!-- doxytag: member="boost::locale::period::era" ref="a9d37769736a55787e6f1b82b620b5ef4" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::era </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: Era i.e. AC, BC in Gregorian and Julian calendar, range [0,1] </p>
+
+</div>
+</div>
+<a class="anchor" id="a1f13d857994b5f415f323cc7837295b6"></a><!-- doxytag: member="boost::locale::period::era" ref="a1f13d857994b5f415f323cc7837295b6" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::era </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in Era i.e. AC, BC in Gregorian and Julian calendar, range [0,1] </p>
+
+</div>
+</div>
+<a class="anchor" id="a62d0745dbb555066a7281b9c805ceab7"></a><!-- doxytag: member="boost::locale::period::era" ref="a62d0745dbb555066a7281b9c805ceab7" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::era </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: Era i.e. AC, BC in Gregorian and Julian calendar, range [0,1] </p>
+
+</div>
+</div>
+<a class="anchor" id="ae463c1aef853fac6a434e5ebe0efa7bc"></a><!-- doxytag: member="boost::locale::period::era" ref="ae463c1aef853fac6a434e5ebe0efa7bc" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::era </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of Era i.e. AC, BC in Gregorian and Julian calendar, range [0,1] </p>
+
+</div>
+</div>
+<a class="anchor" id="a3b75a9bb1693373fbc11e709b866c4a4"></a><!-- doxytag: member="boost::locale::period::extended_year" ref="a3b75a9bb1693373fbc11e709b866c4a4" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::extended_year </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of Extended year for Gregorian/Julian calendars, where 1 BC == 0, 2 BC == -1. </p>
+
+</div>
+</div>
+<a class="anchor" id="aeb2dfdc73c6d16796360eca141654aba"></a><!-- doxytag: member="boost::locale::period::extended_year" ref="aeb2dfdc73c6d16796360eca141654aba" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::extended_year </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: Extended year for Gregorian/Julian calendars, where 1 BC == 0, 2 BC == -1. </p>
+
+</div>
+</div>
+<a class="anchor" id="acd90973d68b0141c7cb7883eb20bc95e"></a><!-- doxytag: member="boost::locale::period::extended_year" ref="acd90973d68b0141c7cb7883eb20bc95e" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::extended_year </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in extended years (for Gregorian/Julian calendars, where 1 BC == 0, 2 BC == -1). </p>
+
+</div>
+</div>
+<a class="anchor" id="a484606afd8fb5bc756b97d009052c809"></a><!-- doxytag: member="boost::locale::period::extended_year" ref="a484606afd8fb5bc756b97d009052c809" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::extended_year </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: Extended year for Gregorian/Julian calendars, where 1 BC == 0, 2 BC == -1. </p>
+
+</div>
+</div>
+<a class="anchor" id="ab0610583a720120e8dcf90d0fe01cb01"></a><!-- doxytag: member="boost::locale::period::february" ref="ab0610583a720120e8dcf90d0fe01cb01" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::february </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for February </p>
+
+</div>
+</div>
+<a class="anchor" id="ab1a52ed7a8042fa428d14c4f87642bc4"></a><!-- doxytag: member="boost::locale::period::first_day_of_week" ref="ab1a52ed7a8042fa428d14c4f87642bc4" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::first_day_of_week </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: First day of week, constant, for example Sunday in US = 1, Monday in France = 2 </p>
+
+</div>
+</div>
+<a class="anchor" id="a1569da2e8680ef5d3409361069905541"></a><!-- doxytag: member="boost::locale::period::first_day_of_week" ref="a1569da2e8680ef5d3409361069905541" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::first_day_of_week </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: First day of week, constant, for example Sunday in US = 1, Monday in France = 2 </p>
+
+</div>
+</div>
+<a class="anchor" id="a8b54a5a3841f233e2815a3f9c8fa8ebd"></a><!-- doxytag: member="boost::locale::period::first_day_of_week" ref="a8b54a5a3841f233e2815a3f9c8fa8ebd" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::first_day_of_week </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of First day of week, constant, for example Sunday in US = 1, Monday in France = 2 </p>
+
+</div>
+</div>
+<a class="anchor" id="a13e56c76ec6c550c5b3558000e268f1d"></a><!-- doxytag: member="boost::locale::period::first_day_of_week" ref="a13e56c76ec6c550c5b3558000e268f1d" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::first_day_of_week </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in the first day of week </p>
+
+</div>
+</div>
+<a class="anchor" id="a26ef9fa6f6df065606a36c9b42e165eb"></a><!-- doxytag: member="boost::locale::period::friday" ref="a26ef9fa6f6df065606a36c9b42e165eb" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::friday </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for Friday </p>
+
+</div>
+</div>
+<a class="anchor" id="abf42ad6e3c0ff5f65eede3ca8b03649e"></a><!-- doxytag: member="boost::locale::period::hour" ref="abf42ad6e3c0ff5f65eede3ca8b03649e" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::hour </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of 24 clock hour [0..23] </p>
+
+</div>
+</div>
+<a class="anchor" id="ad9352f5a7dc6b60249656165963b2f25"></a><!-- doxytag: member="boost::locale::period::hour" ref="ad9352f5a7dc6b60249656165963b2f25" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::hour </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in hours </p>
+
+</div>
+</div>
+<a class="anchor" id="a35f2ca900e3cda757c4598b686ca5969"></a><!-- doxytag: member="boost::locale::period::hour" ref="a35f2ca900e3cda757c4598b686ca5969" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::hour </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: 24 clock hour [0..23] </p>
+
+</div>
+</div>
+<a class="anchor" id="a0acb70742e1b2f17cc13152c544ac242"></a><!-- doxytag: member="boost::locale::period::hour" ref="a0acb70742e1b2f17cc13152c544ac242" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::hour </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: 24 clock hour [0..23] </p>
+
+</div>
+</div>
+<a class="anchor" id="a5de2d1eb76264a004bd7de32787d5e04"></a><!-- doxytag: member="boost::locale::period::hour_12" ref="a5de2d1eb76264a004bd7de32787d5e04" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::hour_12 </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of 12 clock hour [0..11] </p>
+
+</div>
+</div>
+<a class="anchor" id="a5c8f153c6f82c9a90634149ab83357da"></a><!-- doxytag: member="boost::locale::period::hour_12" ref="a5c8f153c6f82c9a90634149ab83357da" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::hour_12 </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in 12 clock hours </p>
+
+</div>
+</div>
+<a class="anchor" id="af96ab88b9d168801bfde95c7ad24613a"></a><!-- doxytag: member="boost::locale::period::hour_12" ref="af96ab88b9d168801bfde95c7ad24613a" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::hour_12 </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: 12 clock hour [0..11] </p>
+
+</div>
+</div>
+<a class="anchor" id="ad805b92b111e4fd7dc00d911b07f6ab8"></a><!-- doxytag: member="boost::locale::period::hour_12" ref="ad805b92b111e4fd7dc00d911b07f6ab8" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::hour_12 </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: 12 clock hour [0..11] </p>
+
+</div>
+</div>
+<a class="anchor" id="a6468414599fd81815943e8d9e868fd1b"></a><!-- doxytag: member="boost::locale::period::invalid" ref="a6468414599fd81815943e8d9e868fd1b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::invalid </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: special invalid value, should not be used directly </p>
+
+</div>
+</div>
+<a class="anchor" id="a6073ebcf60bf690662c3a9d113b49e9b"></a><!-- doxytag: member="boost::locale::period::january" ref="a6073ebcf60bf690662c3a9d113b49e9b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::january </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for January </p>
+
+</div>
+</div>
+<a class="anchor" id="a41e228841e03b61187660fb3e9692c7d"></a><!-- doxytag: member="boost::locale::period::july" ref="a41e228841e03b61187660fb3e9692c7d" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::july </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for July </p>
+
+</div>
+</div>
+<a class="anchor" id="ab9269cd77b2d055022a587c9c0d13673"></a><!-- doxytag: member="boost::locale::period::june" ref="ab9269cd77b2d055022a587c9c0d13673" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::june </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for June </p>
+
+</div>
+</div>
+<a class="anchor" id="ac0d844780c28dc783879d82eaa192961"></a><!-- doxytag: member="boost::locale::period::march" ref="ac0d844780c28dc783879d82eaa192961" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::march </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for March </p>
+
+</div>
+</div>
+<a class="anchor" id="a420d04f471ef28107ba1bd6a8edae263"></a><!-- doxytag: member="boost::locale::period::may" ref="a420d04f471ef28107ba1bd6a8edae263" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::may </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for May </p>
+
+</div>
+</div>
+<a class="anchor" id="ab639dfc13268e20301971ba703eac879"></a><!-- doxytag: member="boost::locale::period::minute" ref="ab639dfc13268e20301971ba703eac879" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::minute </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in minutes </p>
+
+</div>
+</div>
+<a class="anchor" id="aee91078a72717b913d032c339b71aae1"></a><!-- doxytag: member="boost::locale::period::minute" ref="aee91078a72717b913d032c339b71aae1" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::minute </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of minute [0..59] </p>
+
+</div>
+</div>
+<a class="anchor" id="a0076efc591f6341ef785f49422b6fa89"></a><!-- doxytag: member="boost::locale::period::minute" ref="a0076efc591f6341ef785f49422b6fa89" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::minute </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: minute [0..59] </p>
+
+</div>
+</div>
+<a class="anchor" id="a0490daa370b1e8c89b14d0af2db48073"></a><!-- doxytag: member="boost::locale::period::minute" ref="a0490daa370b1e8c89b14d0af2db48073" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::minute </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: minute [0..59] </p>
+
+</div>
+</div>
+<a class="anchor" id="a45ad1aeaf7a0e62ef26a42adca38da70"></a><!-- doxytag: member="boost::locale::period::monday" ref="a45ad1aeaf7a0e62ef26a42adca38da70" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::monday </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for Monday </p>
+
+</div>
+</div>
+<a class="anchor" id="a0f8bf7a07ded99184b22ebf4322e14e3"></a><!-- doxytag: member="boost::locale::period::month" ref="a0f8bf7a07ded99184b22ebf4322e14e3" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::month </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of The month of year, calendar specific, in Gregorian [0..11] </p>
+
+</div>
+</div>
+<a class="anchor" id="a8d5844402628043891f77fccab0f6c16"></a><!-- doxytag: member="boost::locale::period::month" ref="a8d5844402628043891f77fccab0f6c16" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::month </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: The month of year, calendar specific, in Gregorian [0..11] </p>
+
+</div>
+</div>
+<a class="anchor" id="aa6aafbd111a9c729266f2aa28b895d68"></a><!-- doxytag: member="boost::locale::period::month" ref="aa6aafbd111a9c729266f2aa28b895d68" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::month </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: The month of year, calendar specific, in Gregorian [0..11] </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="calendar_8cpp-example.html#a2">calendar.cpp</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="aacafebe772a38c196a5bc05c7343dabf"></a><!-- doxytag: member="boost::locale::period::month" ref="aacafebe772a38c196a5bc05c7343dabf" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::month </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in months </p>
+
+</div>
+</div>
+<a class="anchor" id="ab2810f9718b18b77e47b4d23f94589ae"></a><!-- doxytag: member="boost::locale::period::november" ref="ab2810f9718b18b77e47b4d23f94589ae" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::november </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for November </p>
+
+</div>
+</div>
+<a class="anchor" id="ad0e376bf63fb32da0dad13b0c4a6fef1"></a><!-- doxytag: member="boost::locale::period::october" ref="ad0e376bf63fb32da0dad13b0c4a6fef1" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::october </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for October </p>
+
+</div>
+</div>
+<a class="anchor" id="af84b105a6cff4eb66cfcbaa33a73da7b"></a><!-- doxytag: member="boost::locale::period::operator*" ref="af84b105a6cff4eb66cfcbaa33a73da7b" args="(T v, date_time_period f)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::operator* </td>
+ <td>(</td>
+ <td class="paramtype">T&nbsp;</td>
+ <td class="paramname"> <em>v</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">date_time_period&nbsp;</td>
+ <td class="paramname"> <em>f</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> of type <em>f</em> with value <em>v</em>. </p>
+
+</div>
+</div>
+<a class="anchor" id="ac5df80720f82ac2f36e42d9df493b2e0"></a><!-- doxytag: member="boost::locale::period::operator*" ref="ac5df80720f82ac2f36e42d9df493b2e0" args="(period::period_type f, T v)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::operator* </td>
+ <td>(</td>
+ <td class="paramtype">period::period_type&nbsp;</td>
+ <td class="paramname"> <em>f</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&nbsp;</td>
+ <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> of type <em>f</em> with value <em>v</em>. </p>
+
+</div>
+</div>
+<a class="anchor" id="abb23e95e2a456ad6224f9c9f810e31e7"></a><!-- doxytag: member="boost::locale::period::operator*" ref="abb23e95e2a456ad6224f9c9f810e31e7" args="(T v, period::period_type f)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::operator* </td>
+ <td>(</td>
+ <td class="paramtype">T&nbsp;</td>
+ <td class="paramname"> <em>v</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">period::period_type&nbsp;</td>
+ <td class="paramname"> <em>f</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> of type <em>f</em> with value <em>v</em>. </p>
+
+</div>
+</div>
+<a class="anchor" id="a1f4ef70b388a2892847b2b2662118ce9"></a><!-- doxytag: member="boost::locale::period::operator*" ref="a1f4ef70b388a2892847b2b2662118ce9" args="(date_time_period f, T v)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::operator* </td>
+ <td>(</td>
+ <td class="paramtype">date_time_period&nbsp;</td>
+ <td class="paramname"> <em>f</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T&nbsp;</td>
+ <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> of type <em>f</em> with value <em>v</em>. </p>
+
+</div>
+</div>
+<a class="anchor" id="a1399317fdf67b50ec11aa9298176ab70"></a><!-- doxytag: member="boost::locale::period::operator+" ref="a1399317fdf67b50ec11aa9298176ab70" args="(period::period_type f)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::operator+ </td>
+ <td>(</td>
+ <td class="paramtype">period::period_type&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>convert <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> to date_time_period(f,1) </p>
+
+</div>
+</div>
+<a class="anchor" id="a9c5588c1059eff9e9ab8034f7442bf00"></a><!-- doxytag: member="boost::locale::period::operator&#45;" ref="a9c5588c1059eff9e9ab8034f7442bf00" args="(period::period_type f)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::operator- </td>
+ <td>(</td>
+ <td class="paramtype">period::period_type&nbsp;</td>
+ <td class="paramname"> <em>f</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>convert <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> to <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(f,-1) </p>
+
+</div>
+</div>
+<a class="anchor" id="a5ee88cdab049350f1346466b2da6ccf0"></a><!-- doxytag: member="boost::locale::period::pm" ref="a5ee88cdab049350f1346466b2da6ccf0" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::pm </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for PM (Post Meridiem) </p>
+
+</div>
+</div>
+<a class="anchor" id="ac16b397e27e29fe6483540910e8ade3a"></a><!-- doxytag: member="boost::locale::period::saturday" ref="ac16b397e27e29fe6483540910e8ade3a" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::saturday </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for Saturday </p>
+
+</div>
+</div>
+<a class="anchor" id="aa75c0462a5cada6fc3661e48ca0ae016"></a><!-- doxytag: member="boost::locale::period::second" ref="aa75c0462a5cada6fc3661e48ca0ae016" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::second </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: second [0..59] </p>
+
+</div>
+</div>
+<a class="anchor" id="adee2c2dcbbea3653604cb6d514cb9a9b"></a><!-- doxytag: member="boost::locale::period::second" ref="adee2c2dcbbea3653604cb6d514cb9a9b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::second </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: second [0..59] </p>
+
+</div>
+</div>
+<a class="anchor" id="ad42c02ea2dd7ff74cefe44e2f33350ba"></a><!-- doxytag: member="boost::locale::period::second" ref="ad42c02ea2dd7ff74cefe44e2f33350ba" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::second </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of second [0..59] </p>
+
+</div>
+</div>
+<a class="anchor" id="a5a38b6fc7ad24095c00aa2169d1740ea"></a><!-- doxytag: member="boost::locale::period::second" ref="a5a38b6fc7ad24095c00aa2169d1740ea" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::second </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in seconds </p>
+
+</div>
+</div>
+<a class="anchor" id="ad325c929fb0a1173097cb9195367b209"></a><!-- doxytag: member="boost::locale::period::september" ref="ad325c929fb0a1173097cb9195367b209" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::september </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for September </p>
+
+</div>
+</div>
+<a class="anchor" id="a12e3cce2dc169b65062c7fadd1143b0b"></a><!-- doxytag: member="boost::locale::period::sunday" ref="a12e3cce2dc169b65062c7fadd1143b0b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::sunday </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for Sunday </p>
+
+</div>
+</div>
+<a class="anchor" id="ab03ddec166d072a7465e87dbaccc1389"></a><!-- doxytag: member="boost::locale::period::thursday" ref="ab03ddec166d072a7465e87dbaccc1389" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::thursday </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for Thursday </p>
+
+</div>
+</div>
+<a class="anchor" id="a2426159fe1f6cb25f2598f35adf14267"></a><!-- doxytag: member="boost::locale::period::tuesday" ref="a2426159fe1f6cb25f2598f35adf14267" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::tuesday </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for Tuesday </p>
+
+</div>
+</div>
+<a class="anchor" id="a856d680245af08ff3bd1618817a90ef1"></a><!-- doxytag: member="boost::locale::period::wednesday" ref="a856d680245af08ff3bd1618817a90ef1" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::wednesday </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get predefined constant for Wednesday </p>
+
+</div>
+</div>
+<a class="anchor" id="a43006158737c71e5710d0838dbfdc471"></a><!-- doxytag: member="boost::locale::period::week_of_month" ref="a43006158737c71e5710d0838dbfdc471" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::week_of_month </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of The week number within current month </p>
+
+</div>
+</div>
+<a class="anchor" id="aeb20ca7d1a9fbba527939202dcd8a1a8"></a><!-- doxytag: member="boost::locale::period::week_of_month" ref="aeb20ca7d1a9fbba527939202dcd8a1a8" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::week_of_month </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: The week number within current month </p>
+
+</div>
+</div>
+<a class="anchor" id="ab01f299cdb64c780cadca7d64f87cd5f"></a><!-- doxytag: member="boost::locale::period::week_of_month" ref="ab01f299cdb64c780cadca7d64f87cd5f" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::week_of_month </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: The week number within current month </p>
+
+</div>
+</div>
+<a class="anchor" id="a0a1441373dea5b91f4885884d9343504"></a><!-- doxytag: member="boost::locale::period::week_of_month" ref="a0a1441373dea5b91f4885884d9343504" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::week_of_month </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in The week number within current month </p>
+
+</div>
+</div>
+<a class="anchor" id="a33e747e1711d0afd6831f53e2316b808"></a><!-- doxytag: member="boost::locale::period::week_of_year" ref="a33e747e1711d0afd6831f53e2316b808" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::week_of_year </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in the week number in the year </p>
+
+</div>
+</div>
+<a class="anchor" id="acee2c7677af0ee00a9e69ad7bae4eca6"></a><!-- doxytag: member="boost::locale::period::week_of_year" ref="acee2c7677af0ee00a9e69ad7bae4eca6" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::week_of_year </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of The week number in the year </p>
+
+</div>
+</div>
+<a class="anchor" id="a9e8cc55821326edd169fbd90af7304ec"></a><!-- doxytag: member="boost::locale::period::week_of_year" ref="a9e8cc55821326edd169fbd90af7304ec" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::week_of_year </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: The week number in the year </p>
+
+</div>
+</div>
+<a class="anchor" id="a4cb28c5353004068b73d0f12136bbfe9"></a><!-- doxytag: member="boost::locale::period::week_of_year" ref="a4cb28c5353004068b73d0f12136bbfe9" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::week_of_year </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: The week number in the year </p>
+
+</div>
+</div>
+<a class="anchor" id="ab3a1f7646bf3496bde51942509d848d5"></a><!-- doxytag: member="boost::locale::period::year" ref="ab3a1f7646bf3496bde51942509d848d5" args="(int v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::period::year </td>
+ <td>(</td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> for: Year, it is calendar specific, for example 2011 in Gregorian calendar. </p>
+
+</div>
+</div>
+<a class="anchor" id="abf08701667238bc060923e8951a5412f"></a><!-- doxytag: member="boost::locale::period::year" ref="abf08701667238bc060923e8951a5412f" args="(date_time_duration const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::year </td>
+ <td>(</td>
+ <td class="paramtype">date_time_duration const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time__duration.html" title="This class represents a period: a pair of two date_time objects.">date_time_duration</a> numerical value of duration in years </p>
+
+</div>
+</div>
+<a class="anchor" id="a6990cb547cc6b0d46a71e9e93260b764"></a><!-- doxytag: member="boost::locale::period::year" ref="a6990cb547cc6b0d46a71e9e93260b764" args="(date_time const &amp;dt)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int boost::locale::period::year </td>
+ <td>(</td>
+ <td class="paramtype">date_time const &amp;&nbsp;</td>
+ <td class="paramname"> <em>dt</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Extract from <a class="el" href="classboost_1_1locale_1_1date__time.html" title="this class represents a date time and allows to perform various operation according to the locale set...">date_time</a> numerical value of Year, it is calendar specific, for example 2011 in Gregorian calendar. </p>
+
+</div>
+</div>
+<a class="anchor" id="a9ea8d1453bed512ee16bea3199fd92af"></a><!-- doxytag: member="boost::locale::period::year" ref="a9ea8d1453bed512ee16bea3199fd92af" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period_type</a> boost::locale::period::year </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get <a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" title="This class holds a type that represents certain period of time like year, hour, second and so on...">period_type</a> for: Year, it is calendar specific, for example 2011 in Gregorian calendar. </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="calendar_8cpp-example.html#a4">calendar.cpp</a>.</dd>
+</dl>
+</div>
+</div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1period_1_1marks.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1period_1_1marks.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::period::marks Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1period.html">period</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html">marks</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Enumerations </div>
+ <div class="headertitle">
+<h1>boost::locale::period::marks Namespace Reference</h1> </div>
+</div>
+<div class="contents">
+
+<p>This namespace holds a enum of various period types like era, year, month, etc..
+More...</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">period_mark</a> { <br/>
+&nbsp;&nbsp;<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aab24556edbe246e0bc3b4b0d3f2e627eb">invalid</a>,
+<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aacc399d4cddd6d129a7d36cc2ce94b47a">era</a>,
+<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa57de42317988a555460cf98be583addc">year</a>,
+<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa827e0e9673cbb1e0983191ea42c88c88">extended_year</a>,
+<br/>
+&nbsp;&nbsp;<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa1fe197c6bcc18839b75fc550857ed89a">month</a>,
+<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aac944d440d0afd38cc75c1011319f790e">day</a>,
+<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa6e0f5f21ddfe455d27dfdafb5e58796b">day_of_year</a>,
+<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aaefcf18fd66bcbbac887950c40d5e039b">day_of_week</a>,
+<br/>
+&nbsp;&nbsp;<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aada04317134ebd8c192c431fdc6776756">day_of_week_in_month</a>,
+<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa16f1add720e3211b165609cc8bf49edf">day_of_week_local</a>,
+<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa889701bc6cf11a9ee39d7223691966e1">hour</a>,
+<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa33760c5f41e6cb76695f18d65f5d0a9d">hour_12</a>,
+<br/>
+&nbsp;&nbsp;<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa8c4f7415895e44b3c1c9484a8eadcf06">am_pm</a>,
+<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa1fec41808558d9452161712537717906">minute</a>,
+<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa3afc5b74b9e5e23bdfeab56a297bb7c7">second</a>,
+<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa779ca20cc3ae59a2421293f5d8023c2e">week_of_year</a>,
+<br/>
+&nbsp;&nbsp;<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa91d7d091168f60438e08ecfb72a47aed">week_of_month</a>,
+<a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa8cc9f718b5bdf9c30cff3846118039bd">first_day_of_week</a>
+<br/>
+ }</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>the type that defines a flag that holds a period identifier </p>
+ More...<br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This namespace holds a enum of various period types like era, year, month, etc.. </p>
+<hr/><h2>Enumeration Type Documentation</h2>
+<a class="anchor" id="a1536eaff4b2a880782128fc127f40d3a"></a><!-- doxytag: member="boost::locale::period::marks::period_mark" ref="a1536eaff4b2a880782128fc127f40d3a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">boost::locale::period::marks::period_mark</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>the type that defines a flag that holds a period identifier </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aab24556edbe246e0bc3b4b0d3f2e627eb"></a><!-- doxytag: member="invalid" ref="a1536eaff4b2a880782128fc127f40d3aab24556edbe246e0bc3b4b0d3f2e627eb" args="" -->invalid</em>&nbsp;</td><td>
+<p>Special invalid value, should not be used directly. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aacc399d4cddd6d129a7d36cc2ce94b47a"></a><!-- doxytag: member="era" ref="a1536eaff4b2a880782128fc127f40d3aacc399d4cddd6d129a7d36cc2ce94b47a" args="" -->era</em>&nbsp;</td><td>
+<p>Era i.e. AC, BC in Gregorian and Julian calendar, range [0,1]. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aa57de42317988a555460cf98be583addc"></a><!-- doxytag: member="year" ref="a1536eaff4b2a880782128fc127f40d3aa57de42317988a555460cf98be583addc" args="" -->year</em>&nbsp;</td><td>
+<p>Year, it is calendar specific, for example 2011 in Gregorian calendar. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aa827e0e9673cbb1e0983191ea42c88c88"></a><!-- doxytag: member="extended_year" ref="a1536eaff4b2a880782128fc127f40d3aa827e0e9673cbb1e0983191ea42c88c88" args="" -->extended_year</em>&nbsp;</td><td>
+<p>Extended year for Gregorian/Julian calendars, where 1 BC == 0, 2 BC == -1. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aa1fe197c6bcc18839b75fc550857ed89a"></a><!-- doxytag: member="month" ref="a1536eaff4b2a880782128fc127f40d3aa1fe197c6bcc18839b75fc550857ed89a" args="" -->month</em>&nbsp;</td><td>
+<p>The month of year, calendar specific, in Gregorian [0..11]. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aac944d440d0afd38cc75c1011319f790e"></a><!-- doxytag: member="day" ref="a1536eaff4b2a880782128fc127f40d3aac944d440d0afd38cc75c1011319f790e" args="" -->day</em>&nbsp;</td><td>
+<p>The day of month, calendar specific, in Gregorian [1..31]. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aa6e0f5f21ddfe455d27dfdafb5e58796b"></a><!-- doxytag: member="day_of_year" ref="a1536eaff4b2a880782128fc127f40d3aa6e0f5f21ddfe455d27dfdafb5e58796b" args="" -->day_of_year</em>&nbsp;</td><td>
+<p>The number of day in year, starting from 1, in Gregorian [1..366]. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aaefcf18fd66bcbbac887950c40d5e039b"></a><!-- doxytag: member="day_of_week" ref="a1536eaff4b2a880782128fc127f40d3aaefcf18fd66bcbbac887950c40d5e039b" args="" -->day_of_week</em>&nbsp;</td><td>
+<p>Day of week, Sunday=1, Monday=2,..., Saturday=7. Note that that updating this value respects local day of week, so for example, If first day of week is Monday and the current day is Tuesday then setting the value to Sunday (1) would forward the date by 5 days forward and not backward by two days as it could be expected if the numbers were taken as is. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aada04317134ebd8c192c431fdc6776756"></a><!-- doxytag: member="day_of_week_in_month" ref="a1536eaff4b2a880782128fc127f40d3aada04317134ebd8c192c431fdc6776756" args="" -->day_of_week_in_month</em>&nbsp;</td><td>
+<p>Original number of the day of the week in month. For example 1st Sunday, 2nd Sunday, etc. in Gregorian [1..5] </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aa16f1add720e3211b165609cc8bf49edf"></a><!-- doxytag: member="day_of_week_local" ref="a1536eaff4b2a880782128fc127f40d3aa16f1add720e3211b165609cc8bf49edf" args="" -->day_of_week_local</em>&nbsp;</td><td>
+<p>Local day of week, for example in France Monday is 1, in US Sunday is 1, [1..7]. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aa889701bc6cf11a9ee39d7223691966e1"></a><!-- doxytag: member="hour" ref="a1536eaff4b2a880782128fc127f40d3aa889701bc6cf11a9ee39d7223691966e1" args="" -->hour</em>&nbsp;</td><td>
+<p>24 clock hour [0..23] </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aa33760c5f41e6cb76695f18d65f5d0a9d"></a><!-- doxytag: member="hour_12" ref="a1536eaff4b2a880782128fc127f40d3aa33760c5f41e6cb76695f18d65f5d0a9d" args="" -->hour_12</em>&nbsp;</td><td>
+<p>12 clock hour [0..11] </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aa8c4f7415895e44b3c1c9484a8eadcf06"></a><!-- doxytag: member="am_pm" ref="a1536eaff4b2a880782128fc127f40d3aa8c4f7415895e44b3c1c9484a8eadcf06" args="" -->am_pm</em>&nbsp;</td><td>
+<p>am or pm marker [0..1] </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aa1fec41808558d9452161712537717906"></a><!-- doxytag: member="minute" ref="a1536eaff4b2a880782128fc127f40d3aa1fec41808558d9452161712537717906" args="" -->minute</em>&nbsp;</td><td>
+<p>minute [0..59] </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aa3afc5b74b9e5e23bdfeab56a297bb7c7"></a><!-- doxytag: member="second" ref="a1536eaff4b2a880782128fc127f40d3aa3afc5b74b9e5e23bdfeab56a297bb7c7" args="" -->second</em>&nbsp;</td><td>
+<p>second [0..59] </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aa779ca20cc3ae59a2421293f5d8023c2e"></a><!-- doxytag: member="week_of_year" ref="a1536eaff4b2a880782128fc127f40d3aa779ca20cc3ae59a2421293f5d8023c2e" args="" -->week_of_year</em>&nbsp;</td><td>
+<p>The week number in the year. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aa91d7d091168f60438e08ecfb72a47aed"></a><!-- doxytag: member="week_of_month" ref="a1536eaff4b2a880782128fc127f40d3aa91d7d091168f60438e08ecfb72a47aed" args="" -->week_of_month</em>&nbsp;</td><td>
+<p>The week number within current month. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="a1536eaff4b2a880782128fc127f40d3aa8cc9f718b5bdf9c30cff3846118039bd"></a><!-- doxytag: member="first_day_of_week" ref="a1536eaff4b2a880782128fc127f40d3aa8cc9f718b5bdf9c30cff3846118039bd" args="" -->first_day_of_week</em>&nbsp;</td><td>
+<p>First day of week, constant, for example Sunday in US = 1, Monday in France = 2. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+</div>
+</div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1time__zone.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1time__zone.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::time_zone Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1time__zone.html">time_zone</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::time_zone Namespace Reference<br/>
+<small>
+[<a class="el" href="group__date__time.html">Date, Time, Timezone and Calendar manipulations</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+
+<p>namespace that holds functions for operating with global time zone
+More...</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1time__zone.html#a41f0e37ead92b29f6d09377070bbe398">global</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1time__zone.html#aa5eb7b1d7d55c3069eebea3ab378ad99">global</a> (std::string const &amp;new_tz)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>namespace that holds functions for operating with global time zone </p>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a41f0e37ead92b29f6d09377070bbe398"></a><!-- doxytag: member="boost::locale::time_zone::global" ref="a41f0e37ead92b29f6d09377070bbe398" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::time_zone::global </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Get global time zone identifier. If empty, system time zone is used </p>
+
+</div>
+</div>
+<a class="anchor" id="aa5eb7b1d7d55c3069eebea3ab378ad99"></a><!-- doxytag: member="boost::locale::time_zone::global" ref="aa5eb7b1d7d55c3069eebea3ab378ad99" args="(std::string const &amp;new_tz)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::time_zone::global </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>new_tz</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Set global time zone identifier returning previous one. If empty, system time zone is used </p>
+
+</div>
+</div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1util.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespaceboost_1_1locale_1_1util.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,237 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::util Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1util.html">util</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Classes &#124;
+Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::util Namespace Reference</h1> </div>
+</div>
+<div class="contents">
+
+<p>This namespace provides various utility function useful for Boost.Locale backends implementations.
+More...</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">base_converter</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class represent a simple stateless converter from UCS-4 and to UCS-4 for each single code point. More...<br/></td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1util.html#ad9737569d0e2d6b08885b01aba308365">get_system_locale</a> (bool use_utf8_on_windows=false)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return default system locale name in POSIX format. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::locale&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1util.html#a8322299021a4af3cdbb8b31e775e77f4">create_info</a> (std::locale const &amp;in, std::string const &amp;name)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Installs information facet to locale in based on locale name <em>name</em>. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::auto_ptr&lt; <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">base_converter</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1util.html#aa8e8480ddadc3e972aeb4d468446db64">create_utf8_converter</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::auto_ptr&lt; <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">base_converter</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1util.html#a79624ad8d782ad41d5edf90b6c830631">create_simple_converter</a> (std::string const &amp;encoding)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::locale&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1locale_1_1util.html#a3e6728910dc947c3062c6bfd28b70fc4">create_codecvt</a> (std::locale const &amp;in, std::auto_ptr&lt; <a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">base_converter</a> &gt; cvt, <a class="el" href="namespaceboost_1_1locale.html#a8c993aaf15e683e97d062560ccf914d8">character_facet_type</a> type)</td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This namespace provides various utility function useful for Boost.Locale backends implementations. </p>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a3e6728910dc947c3062c6bfd28b70fc4"></a><!-- doxytag: member="boost::locale::util::create_codecvt" ref="a3e6728910dc947c3062c6bfd28b70fc4" args="(std::locale const &amp;in, std::auto_ptr&lt; base_converter &gt; cvt, character_facet_type type)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::locale boost::locale::util::create_codecvt </td>
+ <td>(</td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::auto_ptr&lt; base_converter &gt;&nbsp;</td>
+ <td class="paramname"> <em>cvt</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">character_facet_type&nbsp;</td>
+ <td class="paramname"> <em>type</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Install codecvt facet into locale <em>in</em> and return new locale that is based on <em>in</em> and uses new facet.</p>
+<p>codecvt facet would convert between narrow and wide/char16_t/char32_t encodings using <em>cvt</em> converter. If <em>cvt</em> is null pointer, always failure conversion would be used that fails on every first input or output.</p>
+<p>Note: the codecvt facet handles both UTF-16 and UTF-32 wide encodings, it knows to break and join Unicode code-points above 0xFFFF to and from surrogate pairs correctly. <em>cvt</em> should be unaware of wide encoding type </p>
+
+</div>
+</div>
+<a class="anchor" id="a8322299021a4af3cdbb8b31e775e77f4"></a><!-- doxytag: member="boost::locale::util::create_info" ref="a8322299021a4af3cdbb8b31e775e77f4" args="(std::locale const &amp;in, std::string const &amp;name)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::locale boost::locale::util::create_info </td>
+ <td>(</td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Installs information facet to locale in based on locale name <em>name</em>. </p>
+<p>This function installs <a class="el" href="classboost_1_1locale_1_1info.html" title="a facet that holds general information about locale">boost::locale::info</a> facet into the locale <em>in</em> and returns newly created locale.</p>
+<p>Note: all information is based only on parsing of string <em>name</em>;</p>
+<p>The name has following format: language[_COUNTRY][.encoding][@variant] Where language is ISO-639 language code like "en" or "ru", COUNTRY is ISO-3166 country identifier like "US" or "RU". the Encoding is a charracter set name like UTF-8 or ISO-8859-1. Variant is backend specific variant like <code>euro</code> or calendar=hebrew.</p>
+<p>If some parameters are missing they are specified as blanks, default encoding is assumed to be US-ASCII and missing language is assumed to be "C" </p>
+
+</div>
+</div>
+<a class="anchor" id="a79624ad8d782ad41d5edf90b6c830631"></a><!-- doxytag: member="boost::locale::util::create_simple_converter" ref="a79624ad8d782ad41d5edf90b6c830631" args="(std::string const &amp;encoding)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::auto_ptr&lt;<a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">base_converter</a>&gt; boost::locale::util::create_simple_converter </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>encoding</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>This function creates a <em><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html" title="This class represent a simple stateless converter from UCS-4 and to UCS-4 for each single code point...">base_converter</a></em> that can be used for conversion between single byte character encodings like ISO-8859-1, koi8-r, windows-1255 and Unicode code points,</p>
+<p>If <em>encoding</em> is not supported, empty pointer is returned. You should check if std::auto_ptr&lt;base_converter&gt;::get() != 0 </p>
+
+</div>
+</div>
+<a class="anchor" id="aa8e8480ddadc3e972aeb4d468446db64"></a><!-- doxytag: member="boost::locale::util::create_utf8_converter" ref="aa8e8480ddadc3e972aeb4d468446db64" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::auto_ptr&lt;<a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html">base_converter</a>&gt; boost::locale::util::create_utf8_converter </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>This function creates a <em><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html" title="This class represent a simple stateless converter from UCS-4 and to UCS-4 for each single code point...">base_converter</a></em> that can be used for conversion between UTF-8 and unicode code points </p>
+
+</div>
+</div>
+<a class="anchor" id="ad9737569d0e2d6b08885b01aba308365"></a><!-- doxytag: member="boost::locale::util::get_system_locale" ref="ad9737569d0e2d6b08885b01aba308365" args="(bool use_utf8_on_windows=false)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string boost::locale::util::get_system_locale </td>
+ <td>(</td>
+ <td class="paramtype">bool&nbsp;</td>
+ <td class="paramname"> <em>use_utf8_on_windows</em> = <code>false</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Return default system locale name in POSIX format. </p>
+<p>This function tries to detect the locale using, LC_CTYPE, LC_ALL and LANG environment variables in this order and if all of them unset, in POSIX platforms it returns "C"</p>
+<p>On Windows additionally to check the above environment variables, this function tries to creates locale name from ISO-339 and ISO-3199 country codes defined for user default locale. If <em>use_utf8_on_windows</em> is true it sets the encoding to UTF-8, otherwise, if system locale supports ANSI code-page it defines the ANSI encoding like windows-1252, otherwise it fall-backs to UTF-8 encoding if ANSI code-page is not available. </p>
+
+</div>
+</div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li class="current">a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>all_categories
+: <a class="el" href="namespaceboost_1_1locale.html#ab51b0b65a19b1db3adc14e9866097e2a">boost::locale</a>
+</li>
+<li>all_characters
+: <a class="el" href="namespaceboost_1_1locale.html#acbf4f064b76445979094471c7092bd4c">boost::locale</a>
+</li>
+<li>am()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a683b393abc6276f3d77289af0f5d6404">boost::locale::period</a>
+</li>
+<li>am_pm
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa8c4f7415895e44b3c1c9484a8eadcf06">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#aa0e5fd0e823eeb693d1289bc7620e9c6">boost::locale::period</a>
+</li>
+<li>april()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a1b4663ee24f7687e592f0b790e8df494">boost::locale::period</a>
+</li>
+<li>august()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ab5d2e72c7d5b842c26af29af4c96a853">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x62.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x62.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li class="current">b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>between()
+: <a class="el" href="group__codepage.html#ga7eda9058b8cbac9b05886bcc894faeff">boost::locale::conv</a>
+</li>
+<li>boundary_facet
+: <a class="el" href="namespaceboost_1_1locale.html#ac2fa68f626cf136556cbf56c82d3fdd6">boost::locale</a>
+</li>
+<li>boundary_rule()
+: <a class="el" href="group__boundary.html#ga99daacb708289fe81def9f1ce4486515">boost::locale::boundary</a>
+</li>
+<li>boundary_type
+: <a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boost::locale::boundary</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x63.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x63.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,191 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li class="current">c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>calendar_facet
+: <a class="el" href="namespaceboost_1_1locale.html#ae068c6887999c1f839d6d13eaf2a0b7c">boost::locale</a>
+</li>
+<li>cboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#ade880ec8623692375afbfd460d28163c">boost::locale::boundary</a>
+</li>
+<li>cboundary_point_index
+: <a class="el" href="group__boundary.html#ga31f0617de9388783205020a8679b40af">boost::locale::boundary</a>
+</li>
+<li>char16_t_facet
+: <a class="el" href="namespaceboost_1_1locale.html#a4f02f43f0bef71bdd9262141508fe8f0">boost::locale</a>
+</li>
+<li>char32_t_facet
+: <a class="el" href="namespaceboost_1_1locale.html#a77cbac0792b48c20173dd92544c625e5">boost::locale</a>
+</li>
+<li>char_facet
+: <a class="el" href="namespaceboost_1_1locale.html#ac57b3067a033cb4416098b8c34867aa1">boost::locale</a>
+</li>
+<li>character
+: <a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641ae80c964112541d88af9b875dafb6605d">boost::locale::boundary</a>
+</li>
+<li>character_any
+: <a class="el" href="group__boundary.html#ga9f9e97f7d234139cabe4c4df92a6d4b5">boost::locale::boundary</a>
+</li>
+<li>character_facet_type
+: <a class="el" href="namespaceboost_1_1locale.html#a8c993aaf15e683e97d062560ccf914d8">boost::locale</a>
+</li>
+<li>character_first_facet
+: <a class="el" href="namespaceboost_1_1locale.html#ac57221e55dcc193f60a8af0064d58f1e">boost::locale</a>
+</li>
+<li>character_last_facet
+: <a class="el" href="namespaceboost_1_1locale.html#a6719d31f7dc35bd97116dd353e5464c6">boost::locale</a>
+</li>
+<li>character_mask
+: <a class="el" href="group__boundary.html#gad151135cfe341d3c1f63bf459f6a1f4c">boost::locale::boundary</a>
+</li>
+<li>codepage_facet
+: <a class="el" href="namespaceboost_1_1locale.html#aaffe2f2ba9df34eb86caa0c815d00d6b">boost::locale</a>
+</li>
+<li>collation_facet
+: <a class="el" href="namespaceboost_1_1locale.html#a2dd40649cf5bb125d9ef5f42ad792446">boost::locale</a>
+</li>
+<li>convert_facet
+: <a class="el" href="namespaceboost_1_1locale.html#a980b72231e52c32b8bef91ce60e6936a">boost::locale</a>
+</li>
+<li>create_codecvt()
+: <a class="el" href="namespaceboost_1_1locale_1_1util.html#a3e6728910dc947c3062c6bfd28b70fc4">boost::locale::util</a>
+</li>
+<li>create_info()
+: <a class="el" href="namespaceboost_1_1locale_1_1util.html#a8322299021a4af3cdbb8b31e775e77f4">boost::locale::util</a>
+</li>
+<li>create_messages_facet()
+: <a class="el" href="namespaceboost_1_1locale_1_1gnu__gettext.html#a0e964bab0c1cc11e034177e629b08411">boost::locale::gnu_gettext</a>
+</li>
+<li>create_simple_converter()
+: <a class="el" href="namespaceboost_1_1locale_1_1util.html#a79624ad8d782ad41d5edf90b6c830631">boost::locale::util</a>
+</li>
+<li>create_utf8_converter()
+: <a class="el" href="namespaceboost_1_1locale_1_1util.html#aa8e8480ddadc3e972aeb4d468446db64">boost::locale::util</a>
+</li>
+<li>csegment
+: <a class="el" href="group__boundary.html#ga7a89ba0de6cad23a0f1b0b90ca5296f0">boost::locale::boundary</a>
+</li>
+<li>csegment_index
+: <a class="el" href="group__boundary.html#ga82c153957bff0be844a5ce4490d4e7f8">boost::locale::boundary</a>
+</li>
+<li>currency()
+: <a class="el" href="group__manipulators.html#ga97c4997f9692834ea7b5ed3e8137d5fd">boost::locale::as</a>
+</li>
+<li>currency_default()
+: <a class="el" href="group__manipulators.html#ga18f1cb392e5b26c12a9deaff816e7998">boost::locale::as</a>
+</li>
+<li>currency_iso()
+: <a class="el" href="group__manipulators.html#gab8bc145e8147e45e9b9dc0ee9edd9fbe">boost::locale::as</a>
+</li>
+<li>currency_national()
+: <a class="el" href="group__manipulators.html#ga2b1ea6b22e2c6f3a162264d9e59d3f95">boost::locale::as</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x64.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x64.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li class="current">d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>date()
+: <a class="el" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">boost::locale::as</a>
+</li>
+<li>date_default()
+: <a class="el" href="group__manipulators.html#gacb5b9243e6537a9378e2d020a4e6a57a">boost::locale::as</a>
+</li>
+<li>date_full()
+: <a class="el" href="group__manipulators.html#gad8d6858ec18524c9a993da387c896d0e">boost::locale::as</a>
+</li>
+<li>date_long()
+: <a class="el" href="group__manipulators.html#gac553a86e8d0606c4a6f6d75c3cb104e7">boost::locale::as</a>
+</li>
+<li>date_medium()
+: <a class="el" href="group__manipulators.html#ga3b9dcc64afbd67883603cfa7bb67e6c4">boost::locale::as</a>
+</li>
+<li>date_short()
+: <a class="el" href="group__manipulators.html#ga295c7b48ce2732c196df31a70660b7b9">boost::locale::as</a>
+</li>
+<li>datetime()
+: <a class="el" href="group__manipulators.html#ga820edf843e20847a0c4ccb8da0c4acd8">boost::locale::as</a>
+</li>
+<li>datetime_pattern
+: <a class="el" href="namespaceboost_1_1locale_1_1flags.html#a730fd2868b4d25412c9fba7239ce277eaa4cbe9c3e0cd744c7543755e51029387">boost::locale::flags</a>
+</li>
+<li>day
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aac944d440d0afd38cc75c1011319f790e">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">boost::locale::period</a>
+</li>
+<li>day_of_week()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a754856ee5d0492db9367bdc3e1f4fb88">boost::locale::period</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aaefcf18fd66bcbbac887950c40d5e039b">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">boost::locale::period</a>
+</li>
+<li>day_of_week_in_month
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aada04317134ebd8c192c431fdc6776756">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#a083c271b3bbd29e4644b59fb3e34a4d7">boost::locale::period</a>
+</li>
+<li>day_of_week_local
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa16f1add720e3211b165609cc8bf49edf">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#a57d6b8f97bd6604e13c6982ed0953678">boost::locale::period</a>
+</li>
+<li>day_of_year()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ab10c8ad1d752f849263b3c49fab6bdeb">boost::locale::period</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa6e0f5f21ddfe455d27dfdafb5e58796b">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#a33e67d3354486021fa1e7076d30d51a4">boost::locale::period</a>
+</li>
+<li>december()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#aad0c72b6aa0ade2e71a71223eefab6fd">boost::locale::period</a>
+</li>
+<li>default_method
+: <a class="el" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559">boost::locale::conv</a>
+</li>
+<li>dgettext()
+: <a class="el" href="group__message.html#ga4679dd42049207a9632002cd13d29260">boost::locale</a>
+</li>
+<li>display_flags_type
+: <a class="el" href="namespaceboost_1_1locale_1_1flags.html#ab0255a81e609e12040ca07dda4434a99">boost::locale::flags</a>
+</li>
+<li>dngettext()
+: <a class="el" href="group__message.html#ga8969a29e9eb19ce41178920892da5c27">boost::locale</a>
+</li>
+<li>dnpgettext()
+: <a class="el" href="group__message.html#ga49b1d83256ead90a9f86940e3d977dee">boost::locale</a>
+</li>
+<li>domain()
+: <a class="el" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">boost::locale::as</a>
+</li>
+<li>domain_id
+: <a class="el" href="namespaceboost_1_1locale_1_1flags.html#aa8bc4e6a6419c16479ea037b9fd05d06a43aa65d05606f54a48b3848fdd4218c0">boost::locale::flags</a>
+</li>
+<li>dpgettext()
+: <a class="el" href="group__message.html#ga352dfa66c04ff924f1999ca47ff11aba">boost::locale</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x65.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x65.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li class="current">e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>era
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aacc399d4cddd6d129a7d36cc2ce94b47a">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#a62d0745dbb555066a7281b9c805ceab7">boost::locale::period</a>
+</li>
+<li>extended_year
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa827e0e9673cbb1e0983191ea42c88c88">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#a3b75a9bb1693373fbc11e709b866c4a4">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x66.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x66.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li class="current">f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>february()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ab0610583a720120e8dcf90d0fe01cb01">boost::locale::period</a>
+</li>
+<li>first_day_of_week
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa8cc9f718b5bdf9c30cff3846118039bd">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#ab1a52ed7a8042fa428d14c4f87642bc4">boost::locale::period</a>
+</li>
+<li>fold_case()
+: <a class="el" href="group__convert.html#ga4254d12cc75cb7b66ca96deca3e90fd1">boost::locale</a>
+</li>
+<li>format
+: <a class="el" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">boost::locale</a>
+</li>
+<li>formatting_facet
+: <a class="el" href="namespaceboost_1_1locale.html#a4ee453a8b95be64b802edae99ad5d9ed">boost::locale</a>
+</li>
+<li>friday()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a26ef9fa6f6df065606a36c9b42e165eb">boost::locale::period</a>
+</li>
+<li>from_utf()
+: <a class="el" href="group__codepage.html#gab9f8f0e62bdfd258a99a627f8b88eb34">boost::locale::conv</a>
+</li>
+<li>ftime()
+: <a class="el" href="group__manipulators.html#gaa3b700e53188d9dfca0a7ea8e8a891c1">boost::locale::as</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x67.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x67.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li class="current">g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>get_system_locale()
+: <a class="el" href="namespaceboost_1_1locale_1_1util.html#ad9737569d0e2d6b08885b01aba308365">boost::locale::util</a>
+</li>
+<li>gettext()
+: <a class="el" href="group__message.html#gadd3006a6d5d1c804490152ee6300d47f">boost::locale</a>
+</li>
+<li>global()
+: <a class="el" href="namespaceboost_1_1locale_1_1time__zone.html#aa5eb7b1d7d55c3069eebea3ab378ad99">boost::locale::time_zone</a>
+</li>
+<li>gmt()
+: <a class="el" href="group__manipulators.html#gac90c969d876305b8584def8632ae1808">boost::locale::as</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x68.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x68.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li class="current">h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>hour
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa889701bc6cf11a9ee39d7223691966e1">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#a35f2ca900e3cda757c4598b686ca5969">boost::locale::period</a>
+</li>
+<li>hour_12
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa33760c5f41e6cb76695f18d65f5d0a9d">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#a5de2d1eb76264a004bd7de32787d5e04">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x69.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x69.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li class="current">i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>index_type
+: <a class="el" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">boost::locale::boundary</a>
+</li>
+<li>information_facet
+: <a class="el" href="namespaceboost_1_1locale.html#aa0d08754ca3856546c63f1f79a153a7b">boost::locale</a>
+</li>
+<li>invalid
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aab24556edbe246e0bc3b4b0d3f2e627eb">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#a6468414599fd81815943e8d9e868fd1b">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x6a.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x6a.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li class="current">j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
+<li>january()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a6073ebcf60bf690662c3a9d113b49e9b">boost::locale::period</a>
+</li>
+<li>july()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a41e228841e03b61187660fb3e9692c7d">boost::locale::period</a>
+</li>
+<li>june()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ab9269cd77b2d055022a587c9c0d13673">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x6c.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x6c.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li class="current">l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>line
+: <a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a72895419fdd7219b3695cf0abd602ea4">boost::locale::boundary</a>
+</li>
+<li>line_any
+: <a class="el" href="group__boundary.html#ga33fb765abbab27ee07cf70bfab8f47e0">boost::locale::boundary</a>
+</li>
+<li>line_hard
+: <a class="el" href="group__boundary.html#ga04faac8129ca14e4e5a789652ee8ecab">boost::locale::boundary</a>
+</li>
+<li>line_mask
+: <a class="el" href="group__boundary.html#gad5d8f2ac695f14b58d5df277aa5939f9">boost::locale::boundary</a>
+</li>
+<li>line_soft
+: <a class="el" href="group__boundary.html#gaa6a7b6ea3c63a1101a945b82eb10ebd0">boost::locale::boundary</a>
+</li>
+<li>local_time()
+: <a class="el" href="group__manipulators.html#gac6cb5458543daf651cd6b48812891541">boost::locale::as</a>
+</li>
+<li>locale_category_type
+: <a class="el" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1">boost::locale</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x6d.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x6d.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li class="current">m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>march()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ac0d844780c28dc783879d82eaa192961">boost::locale::period</a>
+</li>
+<li>may()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a420d04f471ef28107ba1bd6a8edae263">boost::locale::period</a>
+</li>
+<li>message
+: <a class="el" href="group__message.html#ga556e3e7696302902b2242a7a94516dee">boost::locale</a>
+</li>
+<li>message_facet
+: <a class="el" href="namespaceboost_1_1locale.html#aa5b134d0be315fefbfde1216ea3904d9">boost::locale</a>
+</li>
+<li>method_type
+: <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">boost::locale::conv</a>
+</li>
+<li>minute()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a0490daa370b1e8c89b14d0af2db48073">boost::locale::period</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa1fec41808558d9452161712537717906">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#a0076efc591f6341ef785f49422b6fa89">boost::locale::period</a>
+</li>
+<li>monday()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a45ad1aeaf7a0e62ef26a42adca38da70">boost::locale::period</a>
+</li>
+<li>month()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a0f8bf7a07ded99184b22ebf4322e14e3">boost::locale::period</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa1fe197c6bcc18839b75fc550857ed89a">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#aacafebe772a38c196a5bc05c7343dabf">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x6e.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x6e.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li class="current">n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>ngettext()
+: <a class="el" href="group__message.html#ga80a13c0c61d4d0b530ef7df873dc31bb">boost::locale</a>
+</li>
+<li>nochar_facet
+: <a class="el" href="namespaceboost_1_1locale.html#a330a4c5134eb5110b33a0b4f986f34be">boost::locale</a>
+</li>
+<li>non_character_facet_first
+: <a class="el" href="namespaceboost_1_1locale.html#acdc78d8aaea40ff98a227c6d31a7be19">boost::locale</a>
+</li>
+<li>non_character_facet_last
+: <a class="el" href="namespaceboost_1_1locale.html#a66521f8acb9412f2fc3ab38b7a409e20">boost::locale</a>
+</li>
+<li>norm_default
+: <a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9faa29173d73d9be7fefcbb18c8712465d2">boost::locale</a>
+</li>
+<li>norm_nfc
+: <a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9faf6fe7be275e5e13df415ab258105ada0">boost::locale</a>
+</li>
+<li>norm_nfd
+: <a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9fa6648d0eabb931f2e9d258570b297e98f">boost::locale</a>
+</li>
+<li>norm_nfkc
+: <a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9fa0305c1f3405ea70facf4c6a5ffa40583">boost::locale</a>
+</li>
+<li>norm_nfkd
+: <a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9fa0fbc2ac042fc6f58af5818bfd06d5379">boost::locale</a>
+</li>
+<li>norm_type
+: <a class="el" href="group__convert.html#ga6a595a415b83b8a0c8f14c34eb66cc9f">boost::locale</a>
+</li>
+<li>normalize()
+: <a class="el" href="group__convert.html#ga348f607537413204e88c636392c29704">boost::locale</a>
+</li>
+<li>november()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ab2810f9718b18b77e47b4d23f94589ae">boost::locale::period</a>
+</li>
+<li>npgettext()
+: <a class="el" href="group__message.html#ga65fb8244993e7e3870e4e89540803323">boost::locale</a>
+</li>
+<li>number()
+: <a class="el" href="group__manipulators.html#gaee05db73f5525d9a010cdc3aa02f634f">boost::locale::as</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x6f.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x6f.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li class="current">o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>october()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ad0e376bf63fb32da0dad13b0c4a6fef1">boost::locale::period</a>
+</li>
+<li>operator!=()
+: <a class="el" href="group__boundary.html#ga11ff477ceecc7cbc274d998c3676126e">boost::locale::boundary</a>
+</li>
+<li>operator*()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ac5df80720f82ac2f36e42d9df493b2e0">boost::locale::period</a>
+</li>
+<li>operator+()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a1399317fdf67b50ec11aa9298176ab70">boost::locale::period</a>
+, <a class="el" href="group__date__time.html#gaa7e728633f76cae8fa19e76cfb5e113b">boost::locale</a>
+</li>
+<li>operator-()
+: <a class="el" href="group__date__time.html#ga13c05afeb4ea7904b944b42f6c685022">boost::locale</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#a9c5588c1059eff9e9ab8034f7442bf00">boost::locale::period</a>
+, <a class="el" href="group__date__time.html#ga023333646e070abf361be3890c12560b">boost::locale</a>
+</li>
+<li>operator&lt;()
+: <a class="el" href="group__boundary.html#ga3312b16b2a678780f2354e8addac83fd">boost::locale::boundary</a>
+</li>
+<li>operator&lt;&lt;()
+: <a class="el" href="group__date__time.html#ga0055f16ba156eb9a3f333c2bf2eae815">boost::locale</a>
+, <a class="el" href="group__boundary.html#ga52e8a81834c07879736a585f33af5de6">boost::locale::boundary</a>
+</li>
+<li>operator&lt;=()
+: <a class="el" href="group__boundary.html#ga81060e764be6d980bb0675fb9f5e9812">boost::locale::boundary</a>
+</li>
+<li>operator==()
+: <a class="el" href="group__boundary.html#ga2b32edcb7e385885cc7bb6ed32e0ee94">boost::locale::boundary</a>
+</li>
+<li>operator&gt;()
+: <a class="el" href="group__boundary.html#gacb4ee8e6dd72faa9a70a6200f1086083">boost::locale::boundary</a>
+</li>
+<li>operator&gt;=()
+: <a class="el" href="group__boundary.html#gacd03bf4305835d4dc2db8e98a67d8e4c">boost::locale::boundary</a>
+</li>
+<li>operator&gt;&gt;()
+: <a class="el" href="group__date__time.html#gaaf12ac2d38329331a8d9101ecc5e64d5">boost::locale</a>
+</li>
+<li>ordinal()
+: <a class="el" href="group__manipulators.html#ga50cc23779fd846809182e50345b4eb7c">boost::locale::as</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x70.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x70.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li class="current">p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>parsing_facet
+: <a class="el" href="namespaceboost_1_1locale.html#adeadf3347a4fa74afd7fd1f6674be1b0">boost::locale</a>
+</li>
+<li>pattern_type
+: <a class="el" href="namespaceboost_1_1locale_1_1flags.html#a730fd2868b4d25412c9fba7239ce277e">boost::locale::flags</a>
+</li>
+<li>per_character_facet_first
+: <a class="el" href="namespaceboost_1_1locale.html#a91e9fa9c9d99150ff7801a0423cb2374">boost::locale</a>
+</li>
+<li>per_character_facet_last
+: <a class="el" href="namespaceboost_1_1locale.html#afbb1680a86838f1b145590dce820c558">boost::locale</a>
+</li>
+<li>percent()
+: <a class="el" href="group__manipulators.html#ga365767c66c9c82fb646458f5eace8534">boost::locale::as</a>
+</li>
+<li>period_mark
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">boost::locale::period::marks</a>
+</li>
+<li>pgettext()
+: <a class="el" href="group__message.html#ga2a39910bdf57e4d151607ee1a115b853">boost::locale</a>
+</li>
+<li>pm()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a5ee88cdab049350f1346466b2da6ccf0">boost::locale::period</a>
+</li>
+<li>posix()
+: <a class="el" href="group__manipulators.html#ga879b679c0a88b7af9ac059a6e8f67c0a">boost::locale::as</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x72.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x72.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li class="current">r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>rule_type
+: <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">boost::locale::boundary</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x73.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x73.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li class="current">s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>saturday()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ac16b397e27e29fe6483540910e8ade3a">boost::locale::period</a>
+</li>
+<li>sboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#ae8869288e9cc33aa283078654ef0dae2">boost::locale::boundary</a>
+</li>
+<li>sboundary_point_index
+: <a class="el" href="group__boundary.html#ga485e82cdd9debd15dc4fd6f57be10727">boost::locale::boundary</a>
+</li>
+<li>second
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa3afc5b74b9e5e23bdfeab56a297bb7c7">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#a5a38b6fc7ad24095c00aa2169d1740ea">boost::locale::period</a>
+</li>
+<li>sentence
+: <a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a88aa1509eace7589f5df87d4694871e9">boost::locale::boundary</a>
+</li>
+<li>sentence_any
+: <a class="el" href="group__boundary.html#gae2042518b20123ec14fbf71458ec9c79">boost::locale::boundary</a>
+</li>
+<li>sentence_mask
+: <a class="el" href="group__boundary.html#gacd2a521edb550e75c624000a1089934c">boost::locale::boundary</a>
+</li>
+<li>sentence_sep
+: <a class="el" href="group__boundary.html#gaf67883341dd3d8f786e7281d40790000">boost::locale::boundary</a>
+</li>
+<li>sentence_term
+: <a class="el" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b">boost::locale::boundary</a>
+</li>
+<li>september()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ad325c929fb0a1173097cb9195367b209">boost::locale::period</a>
+</li>
+<li>skip
+: <a class="el" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84ae9b554a2955deddf714757788819edf9">boost::locale::conv</a>
+</li>
+<li>spellout()
+: <a class="el" href="group__manipulators.html#gac65e6cd9619db80d60793bbd86a3bd77">boost::locale::as</a>
+</li>
+<li>ssegment
+: <a class="el" href="group__boundary.html#gaac5031c17bd3f7ddc5138546af121064">boost::locale::boundary</a>
+</li>
+<li>ssegment_index
+: <a class="el" href="group__boundary.html#gad4785439a3f03ee455c93830b8f1366c">boost::locale::boundary</a>
+</li>
+<li>stop
+: <a class="el" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84aab08f9ee241c405ef40bd3cedb43b383">boost::locale::conv</a>
+</li>
+<li>strftime()
+: <a class="el" href="group__manipulators.html#ga782b256b82922e6a5f32446787a6f7dc">boost::locale::as</a>
+</li>
+<li>sunday()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a12e3cce2dc169b65062c7fadd1143b0b">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x74.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x74.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li class="current">t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>thursday()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ab03ddec166d072a7465e87dbaccc1389">boost::locale::period</a>
+</li>
+<li>time()
+: <a class="el" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">boost::locale::as</a>
+</li>
+<li>time_default()
+: <a class="el" href="group__manipulators.html#ga0970bc4cb3a4ab8070faa04808f65052">boost::locale::as</a>
+</li>
+<li>time_full()
+: <a class="el" href="group__manipulators.html#ga9a8bd936176e3c81dfa07748e1cbabd4">boost::locale::as</a>
+</li>
+<li>time_long()
+: <a class="el" href="group__manipulators.html#gad6590ea48c57d53899b90d3464cf3c0b">boost::locale::as</a>
+</li>
+<li>time_medium()
+: <a class="el" href="group__manipulators.html#ga3f3cc44eeeaffc3b90bebe7660b3e853">boost::locale::as</a>
+</li>
+<li>time_short()
+: <a class="el" href="group__manipulators.html#gada3d88eef293c9495a3f7d756d369fd3">boost::locale::as</a>
+</li>
+<li>time_zone()
+: <a class="el" href="group__manipulators.html#gad51fbdc634fe0c81e5183915e9eeb238">boost::locale::as</a>
+</li>
+<li>time_zone_id
+: <a class="el" href="namespaceboost_1_1locale_1_1flags.html#a730fd2868b4d25412c9fba7239ce277eaeb4698e4d169fa7bd13d35fb861cc4fb">boost::locale::flags</a>
+</li>
+<li>to_lower()
+: <a class="el" href="group__convert.html#ga33de83f16ff2c09cac780977c6f67099">boost::locale</a>
+</li>
+<li>to_title()
+: <a class="el" href="group__convert.html#gac9198c4fb61eefb72f1f863ed21b1e60">boost::locale</a>
+</li>
+<li>to_upper()
+: <a class="el" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">boost::locale</a>
+</li>
+<li>to_utf()
+: <a class="el" href="group__codepage.html#gae2b0ba250a16567c0ad8919be8061d6e">boost::locale::conv</a>
+</li>
+<li>translate()
+: <a class="el" href="group__message.html#ga534be0a86c6ed58adb94127decc704cd">boost::locale</a>
+</li>
+<li>tuesday()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a2426159fe1f6cb25f2598f35adf14267">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x75.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x75.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,176 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li class="current">u</li>
+ <li>v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>u16cboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#a79a665091fadab07227c0b129ddcde9d">boost::locale::boundary</a>
+</li>
+<li>u16cboundary_point_index
+: <a class="el" href="group__boundary.html#ga1a89414f77d0b11b7fa8c3a5fa896266">boost::locale::boundary</a>
+</li>
+<li>u16csegment
+: <a class="el" href="group__boundary.html#ga5ff9e98f81ad61dbcd480fc61780fee1">boost::locale::boundary</a>
+</li>
+<li>u16csegment_index
+: <a class="el" href="group__boundary.html#gaa20a99d93e3202680bb0660481e1d414">boost::locale::boundary</a>
+</li>
+<li>u16format
+: <a class="el" href="group__format.html#ga7e1b668f020290ebca6570b4c12a36e6">boost::locale</a>
+</li>
+<li>u16message
+: <a class="el" href="group__message.html#ga43ddf342eec2ab9145d04727f8161e1c">boost::locale</a>
+</li>
+<li>u16sboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#a64be9f4ec7ff991f73fc793a80f1fadc">boost::locale::boundary</a>
+</li>
+<li>u16sboundary_point_index
+: <a class="el" href="group__boundary.html#gaba43501d4ed1922c9446db3bf14a918f">boost::locale::boundary</a>
+</li>
+<li>u16ssegment
+: <a class="el" href="group__boundary.html#ga5084d9529f752361d18c2196f38df3c0">boost::locale::boundary</a>
+</li>
+<li>u16ssegment_index
+: <a class="el" href="group__boundary.html#ga6fff9ef7a0971ed3c686f3e8d5c56bf4">boost::locale::boundary</a>
+</li>
+<li>u32cboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#aaa106d43f8b06fec14964e19c55356fb">boost::locale::boundary</a>
+</li>
+<li>u32cboundary_point_index
+: <a class="el" href="group__boundary.html#ga1d16a23d328240464f9068cf58fb38d7">boost::locale::boundary</a>
+</li>
+<li>u32csegment
+: <a class="el" href="group__boundary.html#gaf2077b28c5de700fb5bff9688fe410d6">boost::locale::boundary</a>
+</li>
+<li>u32csegment_index
+: <a class="el" href="group__boundary.html#gaacc781106af79ec27693fa8012d54cb9">boost::locale::boundary</a>
+</li>
+<li>u32format
+: <a class="el" href="group__format.html#ga70ce1d532e859739182439f1f3321032">boost::locale</a>
+</li>
+<li>u32message
+: <a class="el" href="group__message.html#ga6c0b40121a07c13de9e712845b43468f">boost::locale</a>
+</li>
+<li>u32sboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#a9eb3d6aa912102a115dc6ff80fe9c22d">boost::locale::boundary</a>
+</li>
+<li>u32sboundary_point_index
+: <a class="el" href="group__boundary.html#ga1379f8968dd611be0b59d04218a1aae8">boost::locale::boundary</a>
+</li>
+<li>u32ssegment
+: <a class="el" href="group__boundary.html#gaffcc722694a39291a9ea7f68a95e1e27">boost::locale::boundary</a>
+</li>
+<li>u32ssegment_index
+: <a class="el" href="group__boundary.html#ga3a7b82f5a7e29bd079dd48ca13b79f20">boost::locale::boundary</a>
+</li>
+<li>utf_to_utf()
+: <a class="el" href="group__codepage.html#ga2de4d9d38004e5d7146abf2bd6a3df0b">boost::locale::conv</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x76.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x76.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li class="current">v</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>value_type
+: <a class="el" href="namespaceboost_1_1locale_1_1flags.html#aa8bc4e6a6419c16479ea037b9fd05d06">boost::locale::flags</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x77.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x77.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,188 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li class="current">w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>wcboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#a1c06a716653700b74922e4cc9df0da1b">boost::locale::boundary</a>
+</li>
+<li>wcboundary_point_index
+: <a class="el" href="group__boundary.html#gabcb5bcc788909afeb8c68d857284cb59">boost::locale::boundary</a>
+</li>
+<li>wchar_t_facet
+: <a class="el" href="namespaceboost_1_1locale.html#af26277ad3002b9d09790ca42590352fe">boost::locale</a>
+</li>
+<li>wcsegment
+: <a class="el" href="group__boundary.html#gab9d26aae843dad891a3bfa736871e843">boost::locale::boundary</a>
+</li>
+<li>wcsegment_index
+: <a class="el" href="group__boundary.html#ga29ce0d14d0466a28c205b5dc9d0d6a36">boost::locale::boundary</a>
+</li>
+<li>wednesday()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a856d680245af08ff3bd1618817a90ef1">boost::locale::period</a>
+</li>
+<li>week_of_month()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ab01f299cdb64c780cadca7d64f87cd5f">boost::locale::period</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa91d7d091168f60438e08ecfb72a47aed">boost::locale::period::marks</a>
+</li>
+<li>week_of_year()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a33e747e1711d0afd6831f53e2316b808">boost::locale::period</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa779ca20cc3ae59a2421293f5d8023c2e">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#a4cb28c5353004068b73d0f12136bbfe9">boost::locale::period</a>
+</li>
+<li>wformat
+: <a class="el" href="group__format.html#ga610f3ae827801febc962019cf82a2227">boost::locale</a>
+</li>
+<li>wmessage
+: <a class="el" href="group__message.html#gafea131aa123d666905076f34b77326a9">boost::locale</a>
+</li>
+<li>word
+: <a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6">boost::locale::boundary</a>
+</li>
+<li>word_any
+: <a class="el" href="group__boundary.html#ga3ab98808dbb1cc4a346dcc2554c9d8dc">boost::locale::boundary</a>
+</li>
+<li>word_ideo
+: <a class="el" href="group__boundary.html#ga705ab96f9e62810c8ed977c90d404ef8">boost::locale::boundary</a>
+</li>
+<li>word_kana
+: <a class="el" href="group__boundary.html#ga52d8c63e1f3f8c898c645352206a78ef">boost::locale::boundary</a>
+</li>
+<li>word_kana_ideo
+: <a class="el" href="group__boundary.html#ga5de65589628267ab7f2a51f4147d43f9">boost::locale::boundary</a>
+</li>
+<li>word_letter
+: <a class="el" href="group__boundary.html#ga8b7e6ce2fcb185845fa85a1a4c42b3c4">boost::locale::boundary</a>
+</li>
+<li>word_letters
+: <a class="el" href="group__boundary.html#gae412d31a918dc793500fed7278663047">boost::locale::boundary</a>
+</li>
+<li>word_mask
+: <a class="el" href="group__boundary.html#gad11031065617b6be9d4662d2c06afd52">boost::locale::boundary</a>
+</li>
+<li>word_none
+: <a class="el" href="group__boundary.html#ga90cf4f01b95658f659685377226677e7">boost::locale::boundary</a>
+</li>
+<li>word_number
+: <a class="el" href="group__boundary.html#gaac78a3a6b9e671e253a2591cb56a479b">boost::locale::boundary</a>
+</li>
+<li>wsboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#a7828f6884b8a654b9b14fc1ab96ce0d9">boost::locale::boundary</a>
+</li>
+<li>wsboundary_point_index
+: <a class="el" href="group__boundary.html#gad539aad8c788c8e90cdf08aeed5df4a3">boost::locale::boundary</a>
+</li>
+<li>wssegment
+: <a class="el" href="group__boundary.html#gaca0e28d417ee314f3035c7561ed5134a">boost::locale::boundary</a>
+</li>
+<li>wssegment_index
+: <a class="el" href="group__boundary.html#ga579cfdfccf9c682ac4dae5fb65d4a843">boost::locale::boundary</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_0x79.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_0x79.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>r</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>v</li>
+ <li>w</li>
+ <li class="current">y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+<h3><a class="anchor" id="index_y"></a>- y -</h3><ul>
+<li>year
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa57de42317988a555460cf98be583addc">boost::locale::period::marks</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#abf08701667238bc060923e8951a5412f">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_enum.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_enum.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li class="current">Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;<ul>
+<li>boundary_type
+: <a class="el" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boost::locale::boundary</a>
+</li>
+<li>display_flags_type
+: <a class="el" href="namespaceboost_1_1locale_1_1flags.html#ab0255a81e609e12040ca07dda4434a99">boost::locale::flags</a>
+</li>
+<li>method_type
+: <a class="el" href="group__codepage.html#ga8e3c5a274f57107ec5745e227c26ba84">boost::locale::conv</a>
+</li>
+<li>norm_type
+: <a class="el" href="group__convert.html#ga6a595a415b83b8a0c8f14c34eb66cc9f">boost::locale</a>
+</li>
+<li>pattern_type
+: <a class="el" href="namespaceboost_1_1locale_1_1flags.html#a730fd2868b4d25412c9fba7239ce277e">boost::locale::flags</a>
+</li>
+<li>period_mark
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3a">boost::locale::period::marks</a>
+</li>
+<li>value_type
+: <a class="el" href="namespaceboost_1_1locale_1_1flags.html#aa8bc4e6a6419c16479ea037b9fd05d06">boost::locale::flags</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_eval.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_eval.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,256 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li class="current">Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>h</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>s</li>
+ <li>t</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>am_pm
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa8c4f7415895e44b3c1c9484a8eadcf06">boost::locale::period::marks</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>character
+: <a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641ae80c964112541d88af9b875dafb6605d">boost::locale::boundary</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>datetime_pattern
+: <a class="el" href="namespaceboost_1_1locale_1_1flags.html#a730fd2868b4d25412c9fba7239ce277eaa4cbe9c3e0cd744c7543755e51029387">boost::locale::flags</a>
+</li>
+<li>day
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aac944d440d0afd38cc75c1011319f790e">boost::locale::period::marks</a>
+</li>
+<li>day_of_week
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aaefcf18fd66bcbbac887950c40d5e039b">boost::locale::period::marks</a>
+</li>
+<li>day_of_week_in_month
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aada04317134ebd8c192c431fdc6776756">boost::locale::period::marks</a>
+</li>
+<li>day_of_week_local
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa16f1add720e3211b165609cc8bf49edf">boost::locale::period::marks</a>
+</li>
+<li>day_of_year
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa6e0f5f21ddfe455d27dfdafb5e58796b">boost::locale::period::marks</a>
+</li>
+<li>default_method
+: <a class="el" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84adcdc34a57dd2a3ca917f73c13f18b559">boost::locale::conv</a>
+</li>
+<li>domain_id
+: <a class="el" href="namespaceboost_1_1locale_1_1flags.html#aa8bc4e6a6419c16479ea037b9fd05d06a43aa65d05606f54a48b3848fdd4218c0">boost::locale::flags</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>era
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aacc399d4cddd6d129a7d36cc2ce94b47a">boost::locale::period::marks</a>
+</li>
+<li>extended_year
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa827e0e9673cbb1e0983191ea42c88c88">boost::locale::period::marks</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>first_day_of_week
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa8cc9f718b5bdf9c30cff3846118039bd">boost::locale::period::marks</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>hour
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa889701bc6cf11a9ee39d7223691966e1">boost::locale::period::marks</a>
+</li>
+<li>hour_12
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa33760c5f41e6cb76695f18d65f5d0a9d">boost::locale::period::marks</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>invalid
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aab24556edbe246e0bc3b4b0d3f2e627eb">boost::locale::period::marks</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>line
+: <a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a72895419fdd7219b3695cf0abd602ea4">boost::locale::boundary</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>minute
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa1fec41808558d9452161712537717906">boost::locale::period::marks</a>
+</li>
+<li>month
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa1fe197c6bcc18839b75fc550857ed89a">boost::locale::period::marks</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>norm_default
+: <a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9faa29173d73d9be7fefcbb18c8712465d2">boost::locale</a>
+</li>
+<li>norm_nfc
+: <a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9faf6fe7be275e5e13df415ab258105ada0">boost::locale</a>
+</li>
+<li>norm_nfd
+: <a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9fa6648d0eabb931f2e9d258570b297e98f">boost::locale</a>
+</li>
+<li>norm_nfkc
+: <a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9fa0305c1f3405ea70facf4c6a5ffa40583">boost::locale</a>
+</li>
+<li>norm_nfkd
+: <a class="el" href="group__convert.html#gga6a595a415b83b8a0c8f14c34eb66cc9fa0fbc2ac042fc6f58af5818bfd06d5379">boost::locale</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>second
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa3afc5b74b9e5e23bdfeab56a297bb7c7">boost::locale::period::marks</a>
+</li>
+<li>sentence
+: <a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a88aa1509eace7589f5df87d4694871e9">boost::locale::boundary</a>
+</li>
+<li>skip
+: <a class="el" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84ae9b554a2955deddf714757788819edf9">boost::locale::conv</a>
+</li>
+<li>stop
+: <a class="el" href="group__codepage.html#gga8e3c5a274f57107ec5745e227c26ba84aab08f9ee241c405ef40bd3cedb43b383">boost::locale::conv</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>time_zone_id
+: <a class="el" href="namespaceboost_1_1locale_1_1flags.html#a730fd2868b4d25412c9fba7239ce277eaeb4698e4d169fa7bd13d35fb861cc4fb">boost::locale::flags</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>week_of_month
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa91d7d091168f60438e08ecfb72a47aed">boost::locale::period::marks</a>
+</li>
+<li>week_of_year
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa779ca20cc3ae59a2421293f5d8023c2e">boost::locale::period::marks</a>
+</li>
+<li>word
+: <a class="el" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6">boost::locale::boundary</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_y"></a>- y -</h3><ul>
+<li>year
+: <a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html#a1536eaff4b2a880782128fc127f40d3aa57de42317988a555460cf98be583addc">boost::locale::period::marks</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li class="current">a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>am()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a683b393abc6276f3d77289af0f5d6404">boost::locale::period</a>
+</li>
+<li>am_pm()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a61b2390a32e15c6aa2c26bc06d21a20c">boost::locale::period</a>
+</li>
+<li>april()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a1b4663ee24f7687e592f0b790e8df494">boost::locale::period</a>
+</li>
+<li>august()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ab5d2e72c7d5b842c26af29af4c96a853">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x62.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x62.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li class="current">b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>between()
+: <a class="el" href="group__codepage.html#ga7eda9058b8cbac9b05886bcc894faeff">boost::locale::conv</a>
+</li>
+<li>boundary_rule()
+: <a class="el" href="group__boundary.html#ga99daacb708289fe81def9f1ce4486515">boost::locale::boundary</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x63.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x63.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li class="current">c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>create_codecvt()
+: <a class="el" href="namespaceboost_1_1locale_1_1util.html#a3e6728910dc947c3062c6bfd28b70fc4">boost::locale::util</a>
+</li>
+<li>create_info()
+: <a class="el" href="namespaceboost_1_1locale_1_1util.html#a8322299021a4af3cdbb8b31e775e77f4">boost::locale::util</a>
+</li>
+<li>create_messages_facet()
+: <a class="el" href="namespaceboost_1_1locale_1_1gnu__gettext.html#a0e964bab0c1cc11e034177e629b08411">boost::locale::gnu_gettext</a>
+</li>
+<li>create_simple_converter()
+: <a class="el" href="namespaceboost_1_1locale_1_1util.html#a79624ad8d782ad41d5edf90b6c830631">boost::locale::util</a>
+</li>
+<li>create_utf8_converter()
+: <a class="el" href="namespaceboost_1_1locale_1_1util.html#aa8e8480ddadc3e972aeb4d468446db64">boost::locale::util</a>
+</li>
+<li>currency()
+: <a class="el" href="group__manipulators.html#ga97c4997f9692834ea7b5ed3e8137d5fd">boost::locale::as</a>
+</li>
+<li>currency_default()
+: <a class="el" href="group__manipulators.html#ga18f1cb392e5b26c12a9deaff816e7998">boost::locale::as</a>
+</li>
+<li>currency_iso()
+: <a class="el" href="group__manipulators.html#gab8bc145e8147e45e9b9dc0ee9edd9fbe">boost::locale::as</a>
+</li>
+<li>currency_national()
+: <a class="el" href="group__manipulators.html#ga2b1ea6b22e2c6f3a162264d9e59d3f95">boost::locale::as</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x64.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x64.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li class="current">d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>date()
+: <a class="el" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">boost::locale::as</a>
+</li>
+<li>date_default()
+: <a class="el" href="group__manipulators.html#gacb5b9243e6537a9378e2d020a4e6a57a">boost::locale::as</a>
+</li>
+<li>date_full()
+: <a class="el" href="group__manipulators.html#gad8d6858ec18524c9a993da387c896d0e">boost::locale::as</a>
+</li>
+<li>date_long()
+: <a class="el" href="group__manipulators.html#gac553a86e8d0606c4a6f6d75c3cb104e7">boost::locale::as</a>
+</li>
+<li>date_medium()
+: <a class="el" href="group__manipulators.html#ga3b9dcc64afbd67883603cfa7bb67e6c4">boost::locale::as</a>
+</li>
+<li>date_short()
+: <a class="el" href="group__manipulators.html#ga295c7b48ce2732c196df31a70660b7b9">boost::locale::as</a>
+</li>
+<li>datetime()
+: <a class="el" href="group__manipulators.html#ga820edf843e20847a0c4ccb8da0c4acd8">boost::locale::as</a>
+</li>
+<li>day()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a72438d8d7da8493457e043aa442f0d9d">boost::locale::period</a>
+</li>
+<li>day_of_week()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ac1b424cae5ed4ab32aed3c3aedc306e9">boost::locale::period</a>
+</li>
+<li>day_of_week_in_month()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a70abd9dc28f8c30ecb9490a7e6e74cf6">boost::locale::period</a>
+</li>
+<li>day_of_week_local()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a57d6b8f97bd6604e13c6982ed0953678">boost::locale::period</a>
+</li>
+<li>day_of_year()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a3af9fced8291a4dd68c0e342cc2aeff6">boost::locale::period</a>
+</li>
+<li>december()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#aad0c72b6aa0ade2e71a71223eefab6fd">boost::locale::period</a>
+</li>
+<li>dgettext()
+: <a class="el" href="group__message.html#ga4679dd42049207a9632002cd13d29260">boost::locale</a>
+</li>
+<li>dngettext()
+: <a class="el" href="group__message.html#ga8969a29e9eb19ce41178920892da5c27">boost::locale</a>
+</li>
+<li>dnpgettext()
+: <a class="el" href="group__message.html#ga49b1d83256ead90a9f86940e3d977dee">boost::locale</a>
+</li>
+<li>domain()
+: <a class="el" href="group__manipulators.html#gab522188e3d82f1d2898b290b9132925e">boost::locale::as</a>
+</li>
+<li>dpgettext()
+: <a class="el" href="group__message.html#ga352dfa66c04ff924f1999ca47ff11aba">boost::locale</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x65.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x65.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li class="current">e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>era()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a62d0745dbb555066a7281b9c805ceab7">boost::locale::period</a>
+</li>
+<li>extended_year()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#aeb2dfdc73c6d16796360eca141654aba">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x66.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x66.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li class="current">f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>february()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ab0610583a720120e8dcf90d0fe01cb01">boost::locale::period</a>
+</li>
+<li>first_day_of_week()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a1569da2e8680ef5d3409361069905541">boost::locale::period</a>
+</li>
+<li>fold_case()
+: <a class="el" href="group__convert.html#ga597671217af41a3fdee10281fb6a0d17">boost::locale</a>
+</li>
+<li>friday()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a26ef9fa6f6df065606a36c9b42e165eb">boost::locale::period</a>
+</li>
+<li>from_utf()
+: <a class="el" href="group__codepage.html#gac56907f3f3585a922e4f44cf86638851">boost::locale::conv</a>
+</li>
+<li>ftime()
+: <a class="el" href="group__manipulators.html#gaff2d2d435fb9efcb185b2b47355e5fd6">boost::locale::as</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x67.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x67.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li class="current">g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>get_system_locale()
+: <a class="el" href="namespaceboost_1_1locale_1_1util.html#ad9737569d0e2d6b08885b01aba308365">boost::locale::util</a>
+</li>
+<li>gettext()
+: <a class="el" href="group__message.html#gadd3006a6d5d1c804490152ee6300d47f">boost::locale</a>
+</li>
+<li>global()
+: <a class="el" href="namespaceboost_1_1locale_1_1time__zone.html#aa5eb7b1d7d55c3069eebea3ab378ad99">boost::locale::time_zone</a>
+</li>
+<li>gmt()
+: <a class="el" href="group__manipulators.html#gac90c969d876305b8584def8632ae1808">boost::locale::as</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x68.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x68.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li class="current">h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>hour()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a35f2ca900e3cda757c4598b686ca5969">boost::locale::period</a>
+</li>
+<li>hour_12()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#af96ab88b9d168801bfde95c7ad24613a">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x69.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x69.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li class="current">i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>invalid()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a6468414599fd81815943e8d9e868fd1b">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x6a.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x6a.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li class="current">j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
+<li>january()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a6073ebcf60bf690662c3a9d113b49e9b">boost::locale::period</a>
+</li>
+<li>july()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a41e228841e03b61187660fb3e9692c7d">boost::locale::period</a>
+</li>
+<li>june()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ab9269cd77b2d055022a587c9c0d13673">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x6c.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x6c.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li class="current">l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>local_time()
+: <a class="el" href="group__manipulators.html#gac6cb5458543daf651cd6b48812891541">boost::locale::as</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x6d.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x6d.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li class="current">m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>march()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ac0d844780c28dc783879d82eaa192961">boost::locale::period</a>
+</li>
+<li>may()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a420d04f471ef28107ba1bd6a8edae263">boost::locale::period</a>
+</li>
+<li>minute()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a0490daa370b1e8c89b14d0af2db48073">boost::locale::period</a>
+</li>
+<li>monday()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a45ad1aeaf7a0e62ef26a42adca38da70">boost::locale::period</a>
+</li>
+<li>month()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a0f8bf7a07ded99184b22ebf4322e14e3">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x6e.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x6e.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li class="current">n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>ngettext()
+: <a class="el" href="group__message.html#ga80a13c0c61d4d0b530ef7df873dc31bb">boost::locale</a>
+</li>
+<li>normalize()
+: <a class="el" href="group__convert.html#ga11672e3cc3ed7eecf1dd07060265aab2">boost::locale</a>
+</li>
+<li>november()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ab2810f9718b18b77e47b4d23f94589ae">boost::locale::period</a>
+</li>
+<li>npgettext()
+: <a class="el" href="group__message.html#ga65fb8244993e7e3870e4e89540803323">boost::locale</a>
+</li>
+<li>number()
+: <a class="el" href="group__manipulators.html#gaee05db73f5525d9a010cdc3aa02f634f">boost::locale::as</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x6f.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x6f.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li class="current">o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>october()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ad0e376bf63fb32da0dad13b0c4a6fef1">boost::locale::period</a>
+</li>
+<li>operator!=()
+: <a class="el" href="group__boundary.html#ga11ff477ceecc7cbc274d998c3676126e">boost::locale::boundary</a>
+</li>
+<li>operator*()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ac5df80720f82ac2f36e42d9df493b2e0">boost::locale::period</a>
+</li>
+<li>operator+()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a1399317fdf67b50ec11aa9298176ab70">boost::locale::period</a>
+, <a class="el" href="group__date__time.html#gaa7e728633f76cae8fa19e76cfb5e113b">boost::locale</a>
+</li>
+<li>operator-()
+: <a class="el" href="group__date__time.html#ga13c05afeb4ea7904b944b42f6c685022">boost::locale</a>
+, <a class="el" href="namespaceboost_1_1locale_1_1period.html#a9c5588c1059eff9e9ab8034f7442bf00">boost::locale::period</a>
+, <a class="el" href="group__date__time.html#ga023333646e070abf361be3890c12560b">boost::locale</a>
+</li>
+<li>operator&lt;()
+: <a class="el" href="group__boundary.html#ga3312b16b2a678780f2354e8addac83fd">boost::locale::boundary</a>
+</li>
+<li>operator&lt;&lt;()
+: <a class="el" href="group__date__time.html#ga0055f16ba156eb9a3f333c2bf2eae815">boost::locale</a>
+, <a class="el" href="group__boundary.html#ga52e8a81834c07879736a585f33af5de6">boost::locale::boundary</a>
+</li>
+<li>operator&lt;=()
+: <a class="el" href="group__boundary.html#ga81060e764be6d980bb0675fb9f5e9812">boost::locale::boundary</a>
+</li>
+<li>operator==()
+: <a class="el" href="group__boundary.html#ga2b32edcb7e385885cc7bb6ed32e0ee94">boost::locale::boundary</a>
+</li>
+<li>operator&gt;()
+: <a class="el" href="group__boundary.html#gacb4ee8e6dd72faa9a70a6200f1086083">boost::locale::boundary</a>
+</li>
+<li>operator&gt;=()
+: <a class="el" href="group__boundary.html#gacd03bf4305835d4dc2db8e98a67d8e4c">boost::locale::boundary</a>
+</li>
+<li>operator&gt;&gt;()
+: <a class="el" href="group__date__time.html#gaaf12ac2d38329331a8d9101ecc5e64d5">boost::locale</a>
+</li>
+<li>ordinal()
+: <a class="el" href="group__manipulators.html#ga50cc23779fd846809182e50345b4eb7c">boost::locale::as</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x70.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x70.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li class="current">p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>percent()
+: <a class="el" href="group__manipulators.html#ga365767c66c9c82fb646458f5eace8534">boost::locale::as</a>
+</li>
+<li>pgettext()
+: <a class="el" href="group__message.html#ga2a39910bdf57e4d151607ee1a115b853">boost::locale</a>
+</li>
+<li>pm()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a5ee88cdab049350f1346466b2da6ccf0">boost::locale::period</a>
+</li>
+<li>posix()
+: <a class="el" href="group__manipulators.html#ga879b679c0a88b7af9ac059a6e8f67c0a">boost::locale::as</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x73.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x73.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li class="current">s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>saturday()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ac16b397e27e29fe6483540910e8ade3a">boost::locale::period</a>
+</li>
+<li>second()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#adee2c2dcbbea3653604cb6d514cb9a9b">boost::locale::period</a>
+</li>
+<li>september()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ad325c929fb0a1173097cb9195367b209">boost::locale::period</a>
+</li>
+<li>spellout()
+: <a class="el" href="group__manipulators.html#gac65e6cd9619db80d60793bbd86a3bd77">boost::locale::as</a>
+</li>
+<li>strftime()
+: <a class="el" href="group__manipulators.html#ga782b256b82922e6a5f32446787a6f7dc">boost::locale::as</a>
+</li>
+<li>sunday()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a12e3cce2dc169b65062c7fadd1143b0b">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x74.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x74.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li class="current">t</li>
+ <li>u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>thursday()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ab03ddec166d072a7465e87dbaccc1389">boost::locale::period</a>
+</li>
+<li>time()
+: <a class="el" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">boost::locale::as</a>
+</li>
+<li>time_default()
+: <a class="el" href="group__manipulators.html#ga0970bc4cb3a4ab8070faa04808f65052">boost::locale::as</a>
+</li>
+<li>time_full()
+: <a class="el" href="group__manipulators.html#ga9a8bd936176e3c81dfa07748e1cbabd4">boost::locale::as</a>
+</li>
+<li>time_long()
+: <a class="el" href="group__manipulators.html#gad6590ea48c57d53899b90d3464cf3c0b">boost::locale::as</a>
+</li>
+<li>time_medium()
+: <a class="el" href="group__manipulators.html#ga3f3cc44eeeaffc3b90bebe7660b3e853">boost::locale::as</a>
+</li>
+<li>time_short()
+: <a class="el" href="group__manipulators.html#gada3d88eef293c9495a3f7d756d369fd3">boost::locale::as</a>
+</li>
+<li>time_zone()
+: <a class="el" href="group__manipulators.html#gad51fbdc634fe0c81e5183915e9eeb238">boost::locale::as</a>
+</li>
+<li>to_lower()
+: <a class="el" href="group__convert.html#ga33de83f16ff2c09cac780977c6f67099">boost::locale</a>
+</li>
+<li>to_title()
+: <a class="el" href="group__convert.html#ga646f42adb01baf395d632c32f556a5b9">boost::locale</a>
+</li>
+<li>to_upper()
+: <a class="el" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">boost::locale</a>
+</li>
+<li>to_utf()
+: <a class="el" href="group__codepage.html#gad659f9c9c8b291e2ac6af24c49b42e43">boost::locale::conv</a>
+</li>
+<li>translate()
+: <a class="el" href="group__message.html#gafae5e056f599ae051e81b84e14f61255">boost::locale</a>
+</li>
+<li>tuesday()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a2426159fe1f6cb25f2598f35adf14267">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x75.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x75.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li class="current">u</li>
+ <li>w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>utf_to_utf()
+: <a class="el" href="group__codepage.html#ga2de4d9d38004e5d7146abf2bd6a3df0b">boost::locale::conv</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x77.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x77.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li class="current">w</li>
+ <li>y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>wednesday()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a856d680245af08ff3bd1618817a90ef1">boost::locale::period</a>
+</li>
+<li>week_of_month()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#ab01f299cdb64c780cadca7d64f87cd5f">boost::locale::period</a>
+</li>
+<li>week_of_year()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#acee2c7677af0ee00a9e69ad7bae4eca6">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_func_0x79.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_func_0x79.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li class="current">Functions</li>
+ <li>Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>d</li>
+ <li>e</li>
+ <li>f</li>
+ <li>g</li>
+ <li>h</li>
+ <li>i</li>
+ <li>j</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>o</li>
+ <li>p</li>
+ <li>s</li>
+ <li>t</li>
+ <li>u</li>
+ <li>w</li>
+ <li class="current">y</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_y"></a>- y -</h3><ul>
+<li>year()
+: <a class="el" href="namespaceboost_1_1locale_1_1period.html#a9ea8d1453bed512ee16bea3199fd92af">boost::locale::period</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_type.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_type.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,264 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li>Functions</li>
+ <li>Variables</li>
+ <li class="current">Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>c</li>
+ <li>f</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>r</li>
+ <li>s</li>
+ <li>u</li>
+ <li>w</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>cboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#ade880ec8623692375afbfd460d28163c">boost::locale::boundary</a>
+</li>
+<li>cboundary_point_index
+: <a class="el" href="group__boundary.html#ga31f0617de9388783205020a8679b40af">boost::locale::boundary</a>
+</li>
+<li>character_facet_type
+: <a class="el" href="namespaceboost_1_1locale.html#a8c993aaf15e683e97d062560ccf914d8">boost::locale</a>
+</li>
+<li>csegment
+: <a class="el" href="group__boundary.html#ga7a89ba0de6cad23a0f1b0b90ca5296f0">boost::locale::boundary</a>
+</li>
+<li>csegment_index
+: <a class="el" href="group__boundary.html#ga82c153957bff0be844a5ce4490d4e7f8">boost::locale::boundary</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>format
+: <a class="el" href="group__format.html#gad7914df7b54382c1ad7f5360676fe2e8">boost::locale</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>index_type
+: <a class="el" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">boost::locale::boundary</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>locale_category_type
+: <a class="el" href="namespaceboost_1_1locale.html#a32e8cb87d2f68a5577dbb7ce55c0d2b1">boost::locale</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>message
+: <a class="el" href="group__message.html#ga556e3e7696302902b2242a7a94516dee">boost::locale</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>rule_type
+: <a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">boost::locale::boundary</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>sboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#ae8869288e9cc33aa283078654ef0dae2">boost::locale::boundary</a>
+</li>
+<li>sboundary_point_index
+: <a class="el" href="group__boundary.html#ga485e82cdd9debd15dc4fd6f57be10727">boost::locale::boundary</a>
+</li>
+<li>ssegment
+: <a class="el" href="group__boundary.html#gaac5031c17bd3f7ddc5138546af121064">boost::locale::boundary</a>
+</li>
+<li>ssegment_index
+: <a class="el" href="group__boundary.html#gad4785439a3f03ee455c93830b8f1366c">boost::locale::boundary</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>u16cboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#a79a665091fadab07227c0b129ddcde9d">boost::locale::boundary</a>
+</li>
+<li>u16cboundary_point_index
+: <a class="el" href="group__boundary.html#ga1a89414f77d0b11b7fa8c3a5fa896266">boost::locale::boundary</a>
+</li>
+<li>u16csegment
+: <a class="el" href="group__boundary.html#ga5ff9e98f81ad61dbcd480fc61780fee1">boost::locale::boundary</a>
+</li>
+<li>u16csegment_index
+: <a class="el" href="group__boundary.html#gaa20a99d93e3202680bb0660481e1d414">boost::locale::boundary</a>
+</li>
+<li>u16format
+: <a class="el" href="group__format.html#ga7e1b668f020290ebca6570b4c12a36e6">boost::locale</a>
+</li>
+<li>u16message
+: <a class="el" href="group__message.html#ga43ddf342eec2ab9145d04727f8161e1c">boost::locale</a>
+</li>
+<li>u16sboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#a64be9f4ec7ff991f73fc793a80f1fadc">boost::locale::boundary</a>
+</li>
+<li>u16sboundary_point_index
+: <a class="el" href="group__boundary.html#gaba43501d4ed1922c9446db3bf14a918f">boost::locale::boundary</a>
+</li>
+<li>u16ssegment
+: <a class="el" href="group__boundary.html#ga5084d9529f752361d18c2196f38df3c0">boost::locale::boundary</a>
+</li>
+<li>u16ssegment_index
+: <a class="el" href="group__boundary.html#ga6fff9ef7a0971ed3c686f3e8d5c56bf4">boost::locale::boundary</a>
+</li>
+<li>u32cboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#aaa106d43f8b06fec14964e19c55356fb">boost::locale::boundary</a>
+</li>
+<li>u32cboundary_point_index
+: <a class="el" href="group__boundary.html#ga1d16a23d328240464f9068cf58fb38d7">boost::locale::boundary</a>
+</li>
+<li>u32csegment
+: <a class="el" href="group__boundary.html#gaf2077b28c5de700fb5bff9688fe410d6">boost::locale::boundary</a>
+</li>
+<li>u32csegment_index
+: <a class="el" href="group__boundary.html#gaacc781106af79ec27693fa8012d54cb9">boost::locale::boundary</a>
+</li>
+<li>u32format
+: <a class="el" href="group__format.html#ga70ce1d532e859739182439f1f3321032">boost::locale</a>
+</li>
+<li>u32message
+: <a class="el" href="group__message.html#ga6c0b40121a07c13de9e712845b43468f">boost::locale</a>
+</li>
+<li>u32sboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#a9eb3d6aa912102a115dc6ff80fe9c22d">boost::locale::boundary</a>
+</li>
+<li>u32sboundary_point_index
+: <a class="el" href="group__boundary.html#ga1379f8968dd611be0b59d04218a1aae8">boost::locale::boundary</a>
+</li>
+<li>u32ssegment
+: <a class="el" href="group__boundary.html#gaffcc722694a39291a9ea7f68a95e1e27">boost::locale::boundary</a>
+</li>
+<li>u32ssegment_index
+: <a class="el" href="group__boundary.html#ga3a7b82f5a7e29bd079dd48ca13b79f20">boost::locale::boundary</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>wcboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#a1c06a716653700b74922e4cc9df0da1b">boost::locale::boundary</a>
+</li>
+<li>wcboundary_point_index
+: <a class="el" href="group__boundary.html#gabcb5bcc788909afeb8c68d857284cb59">boost::locale::boundary</a>
+</li>
+<li>wcsegment
+: <a class="el" href="group__boundary.html#gab9d26aae843dad891a3bfa736871e843">boost::locale::boundary</a>
+</li>
+<li>wcsegment_index
+: <a class="el" href="group__boundary.html#ga29ce0d14d0466a28c205b5dc9d0d6a36">boost::locale::boundary</a>
+</li>
+<li>wformat
+: <a class="el" href="group__format.html#ga610f3ae827801febc962019cf82a2227">boost::locale</a>
+</li>
+<li>wmessage
+: <a class="el" href="group__message.html#gafea131aa123d666905076f34b77326a9">boost::locale</a>
+</li>
+<li>wsboundary_point
+: <a class="el" href="namespaceboost_1_1locale_1_1boundary.html#a7828f6884b8a654b9b14fc1ab96ce0d9">boost::locale::boundary</a>
+</li>
+<li>wsboundary_point_index
+: <a class="el" href="group__boundary.html#gad539aad8c788c8e90cdf08aeed5df4a3">boost::locale::boundary</a>
+</li>
+<li>wssegment
+: <a class="el" href="group__boundary.html#gaca0e28d417ee314f3035c7561ed5134a">boost::locale::boundary</a>
+</li>
+<li>wssegment_index
+: <a class="el" href="group__boundary.html#ga579cfdfccf9c682ac4dae5fb65d4a843">boost::locale::boundary</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespacemembers_vars.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespacemembers_vars.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Namespace List</li>
+ <li class="current">Namespace Members</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>All</li>
+ <li>Functions</li>
+ <li class="current">Variables</li>
+ <li>Typedefs</li>
+ <li>Enumerations</li>
+ <li>Enumerator</li>
+ </ul>
+ </div>
+ <div class="tabs3">
+ <ul class="tablist">
+ <li>a</li>
+ <li>b</li>
+ <li>c</li>
+ <li>f</li>
+ <li>i</li>
+ <li>l</li>
+ <li>m</li>
+ <li>n</li>
+ <li>p</li>
+ <li>s</li>
+ <li>w</li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&nbsp;
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>all_categories
+: <a class="el" href="namespaceboost_1_1locale.html#ab51b0b65a19b1db3adc14e9866097e2a">boost::locale</a>
+</li>
+<li>all_characters
+: <a class="el" href="namespaceboost_1_1locale.html#acbf4f064b76445979094471c7092bd4c">boost::locale</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>boundary_facet
+: <a class="el" href="namespaceboost_1_1locale.html#ac2fa68f626cf136556cbf56c82d3fdd6">boost::locale</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>calendar_facet
+: <a class="el" href="namespaceboost_1_1locale.html#ae068c6887999c1f839d6d13eaf2a0b7c">boost::locale</a>
+</li>
+<li>char16_t_facet
+: <a class="el" href="namespaceboost_1_1locale.html#a4f02f43f0bef71bdd9262141508fe8f0">boost::locale</a>
+</li>
+<li>char32_t_facet
+: <a class="el" href="namespaceboost_1_1locale.html#a77cbac0792b48c20173dd92544c625e5">boost::locale</a>
+</li>
+<li>char_facet
+: <a class="el" href="namespaceboost_1_1locale.html#ac57b3067a033cb4416098b8c34867aa1">boost::locale</a>
+</li>
+<li>character_any
+: <a class="el" href="group__boundary.html#ga9f9e97f7d234139cabe4c4df92a6d4b5">boost::locale::boundary</a>
+</li>
+<li>character_first_facet
+: <a class="el" href="namespaceboost_1_1locale.html#ac57221e55dcc193f60a8af0064d58f1e">boost::locale</a>
+</li>
+<li>character_last_facet
+: <a class="el" href="namespaceboost_1_1locale.html#a6719d31f7dc35bd97116dd353e5464c6">boost::locale</a>
+</li>
+<li>character_mask
+: <a class="el" href="group__boundary.html#gad151135cfe341d3c1f63bf459f6a1f4c">boost::locale::boundary</a>
+</li>
+<li>codepage_facet
+: <a class="el" href="namespaceboost_1_1locale.html#aaffe2f2ba9df34eb86caa0c815d00d6b">boost::locale</a>
+</li>
+<li>collation_facet
+: <a class="el" href="namespaceboost_1_1locale.html#a2dd40649cf5bb125d9ef5f42ad792446">boost::locale</a>
+</li>
+<li>convert_facet
+: <a class="el" href="namespaceboost_1_1locale.html#a980b72231e52c32b8bef91ce60e6936a">boost::locale</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>formatting_facet
+: <a class="el" href="namespaceboost_1_1locale.html#a4ee453a8b95be64b802edae99ad5d9ed">boost::locale</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>information_facet
+: <a class="el" href="namespaceboost_1_1locale.html#aa0d08754ca3856546c63f1f79a153a7b">boost::locale</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>line_any
+: <a class="el" href="group__boundary.html#ga33fb765abbab27ee07cf70bfab8f47e0">boost::locale::boundary</a>
+</li>
+<li>line_hard
+: <a class="el" href="group__boundary.html#ga04faac8129ca14e4e5a789652ee8ecab">boost::locale::boundary</a>
+</li>
+<li>line_mask
+: <a class="el" href="group__boundary.html#gad5d8f2ac695f14b58d5df277aa5939f9">boost::locale::boundary</a>
+</li>
+<li>line_soft
+: <a class="el" href="group__boundary.html#gaa6a7b6ea3c63a1101a945b82eb10ebd0">boost::locale::boundary</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>message_facet
+: <a class="el" href="namespaceboost_1_1locale.html#aa5b134d0be315fefbfde1216ea3904d9">boost::locale</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>nochar_facet
+: <a class="el" href="namespaceboost_1_1locale.html#a330a4c5134eb5110b33a0b4f986f34be">boost::locale</a>
+</li>
+<li>non_character_facet_first
+: <a class="el" href="namespaceboost_1_1locale.html#acdc78d8aaea40ff98a227c6d31a7be19">boost::locale</a>
+</li>
+<li>non_character_facet_last
+: <a class="el" href="namespaceboost_1_1locale.html#a66521f8acb9412f2fc3ab38b7a409e20">boost::locale</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>parsing_facet
+: <a class="el" href="namespaceboost_1_1locale.html#adeadf3347a4fa74afd7fd1f6674be1b0">boost::locale</a>
+</li>
+<li>per_character_facet_first
+: <a class="el" href="namespaceboost_1_1locale.html#a91e9fa9c9d99150ff7801a0423cb2374">boost::locale</a>
+</li>
+<li>per_character_facet_last
+: <a class="el" href="namespaceboost_1_1locale.html#afbb1680a86838f1b145590dce820c558">boost::locale</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>sentence_any
+: <a class="el" href="group__boundary.html#gae2042518b20123ec14fbf71458ec9c79">boost::locale::boundary</a>
+</li>
+<li>sentence_mask
+: <a class="el" href="group__boundary.html#gacd2a521edb550e75c624000a1089934c">boost::locale::boundary</a>
+</li>
+<li>sentence_sep
+: <a class="el" href="group__boundary.html#gaf67883341dd3d8f786e7281d40790000">boost::locale::boundary</a>
+</li>
+<li>sentence_term
+: <a class="el" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b">boost::locale::boundary</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>wchar_t_facet
+: <a class="el" href="namespaceboost_1_1locale.html#af26277ad3002b9d09790ca42590352fe">boost::locale</a>
+</li>
+<li>word_any
+: <a class="el" href="group__boundary.html#ga3ab98808dbb1cc4a346dcc2554c9d8dc">boost::locale::boundary</a>
+</li>
+<li>word_ideo
+: <a class="el" href="group__boundary.html#ga705ab96f9e62810c8ed977c90d404ef8">boost::locale::boundary</a>
+</li>
+<li>word_kana
+: <a class="el" href="group__boundary.html#ga52d8c63e1f3f8c898c645352206a78ef">boost::locale::boundary</a>
+</li>
+<li>word_kana_ideo
+: <a class="el" href="group__boundary.html#ga5de65589628267ab7f2a51f4147d43f9">boost::locale::boundary</a>
+</li>
+<li>word_letter
+: <a class="el" href="group__boundary.html#ga8b7e6ce2fcb185845fa85a1a4c42b3c4">boost::locale::boundary</a>
+</li>
+<li>word_letters
+: <a class="el" href="group__boundary.html#gae412d31a918dc793500fed7278663047">boost::locale::boundary</a>
+</li>
+<li>word_mask
+: <a class="el" href="group__boundary.html#gad11031065617b6be9d4662d2c06afd52">boost::locale::boundary</a>
+</li>
+<li>word_none
+: <a class="el" href="group__boundary.html#ga90cf4f01b95658f659685377226677e7">boost::locale::boundary</a>
+</li>
+<li>word_number
+: <a class="el" href="group__boundary.html#gaac78a3a6b9e671e253a2591cb56a479b">boost::locale::boundary</a>
+</li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/namespaces.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/namespaces.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Namespace Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li class="current">Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li class="current">Namespace List</li>
+ <li>Namespace Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Namespace List</h1> </div>
+</div>
+<div class="contents">
+Here is a list of all documented namespaces with brief descriptions:<table>
+ <tr><td class="indexkey"><a class="el" href="namespaceboost_1_1locale.html">boost::locale</a></td><td class="indexvalue">This is the main namespace that encloses all localization classes </td></tr>
+ <tr><td class="indexkey"><a class="el" href="namespaceboost_1_1locale_1_1as.html">boost::locale::as</a></td><td class="indexvalue">This namespace includes all manipulators that can be used on IO streams </td></tr>
+ <tr><td class="indexkey"><a class="el" href="namespaceboost_1_1locale_1_1boundary.html">boost::locale::boundary</a></td><td class="indexvalue">This namespae contains all operations required for boundary analysis of text </td></tr>
+ <tr><td class="indexkey"><a class="el" href="namespaceboost_1_1locale_1_1conv.html">boost::locale::conv</a></td><td class="indexvalue">Namespace that contains all functions related to character set conversion </td></tr>
+ <tr><td class="indexkey"><a class="el" href="namespaceboost_1_1locale_1_1flags.html">boost::locale::flags</a></td><td class="indexvalue">This namespace holds additional formatting flags that can be set using <a class="el" href="classboost_1_1locale_1_1ios__info.html" title="This class holds an external data - beyond existing fmtflags that std::ios_base holds.">ios_info</a> </td></tr>
+ <tr><td class="indexkey"><a class="el" href="namespaceboost_1_1locale_1_1gnu__gettext.html">boost::locale::gnu_gettext</a></td><td class="indexvalue">This namespace holds classes that provide GNU Gettext message catalogs support </td></tr>
+ <tr><td class="indexkey"><a class="el" href="namespaceboost_1_1locale_1_1period.html">boost::locale::period</a></td><td class="indexvalue">Namespace that contains various types for manipulation with dates </td></tr>
+ <tr><td class="indexkey"><a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html">boost::locale::period::marks</a></td><td class="indexvalue">This namespace holds a enum of various period types like era, year, month, etc. </td></tr>
+ <tr><td class="indexkey"><a class="el" href="namespaceboost_1_1locale_1_1time__zone.html">boost::locale::time_zone</a></td><td class="indexvalue">Namespace that holds functions for operating with global time zone </td></tr>
+ <tr><td class="indexkey"><a class="el" href="namespaceboost_1_1locale_1_1util.html">boost::locale::util</a></td><td class="indexvalue">This namespace provides various utility function useful for Boost.Locale backends implementations </td></tr>
+</table>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/nav_f.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/nav_h.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/open.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/rationale.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/rationale.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,231 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Design Rationale</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="appendix.html">Appendix</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Design Rationale </h1> </div>
+</div>
+<div class="contents">
+<ul>
+<li><a class="el" href="rationale.html#rationale_why">Why is it needed?</a></li>
+<li><a class="el" href="rationale.html#why_icu">Why use an ICU wrapper instead of ICU?</a></li>
+<li><a class="el" href="rationale.html#why_icu_wrapper">Why an ICU wrapper and not an implementation-from-scratch?</a></li>
+<li><a class="el" href="rationale.html#why_icu_api_is_hidden">Why is the ICU API not exposed to the user?</a></li>
+<li><a class="el" href="rationale.html#why_gnu_gettext">Why use GNU Gettext catalogs for message formatting?</a></li>
+<li><a class="el" href="rationale.html#why_posix_names">Why are POSIX locale names used and not something like the BCP-47 IETF language tag?</a></li>
+<li><a class="el" href="rationale.html#why_linear_chunks">Why most parts of Boost.Locale work only on linear/contiguous chunks of text</a></li>
+<li><a class="el" href="rationale.html#why_abstract_api">Why all Boost.Locale implementation is hidden behind abstract interfaces and does not use template metaprogramming?</a></li>
+<li><a class="el" href="rationale.html#why_no_special_character_type">Why Boost.Locale does not provide char16_t/char32_t for non-C++0x platforms.</a></li>
+</ul>
+<h2><a class="anchor" id="rationale_why"></a>
+Why is it needed?</h2>
+<p>Why do we need a localization library, when standard C++ facets (should) provide most of the required functionality:</p>
+<ul>
+<li>Case conversion is done using the <code>std::ctype</code> facet</li>
+<li>Collation is supported by <code>std::collate</code> and has nice integration with <code>std::locale</code> </li>
+<li>There are <code>std::num_put</code> , <code>std::num_get</code> , <code>std::money_put</code> , <code>std::money_get</code> , <code>std::time_put</code> and <code>std::time_get</code> for numbers, time, and currency formatting and parsing.</li>
+<li>There is a <code>std::messages</code> class that supports localized message formatting.</li>
+</ul>
+<p>So why do we need such library if we have all the functionality within the standard library?</p>
+<p>Almost every(!) facet has design flaws:</p>
+<ul>
+<li><code>std::collate</code> supports only one level of collation, not allowing you to choose whether case- or accent-sensitive comparisons should be performed.</li>
+</ul>
+<ul>
+<li><code>std::ctype</code>, which is responsible for case conversion, assumes that all conversions can be done on a per-character basis. This is probably correct for many languages but it isn't correct in general. <br/>
+<ol type="a">
+<li>Case conversion may change a string's length. For example, the German word "grüßen" should be converted to "GRÜSSEN" in upper case: the letter "ß" should be converted to "SS", but the <code>toupper</code> function works on a single-character basis.</li>
+<li>Case conversion is context-sensitive. For example, the Greek word "ὈΔΥΣΣΕΎΣ" should be converted to "ὀδυσσεύς", where the Greek letter "Σ" is converted to "σ" or to "ς", depending on its position in the word.</li>
+<li>Case conversion cannot assume that a character is a single code point, which is incorrect for both the UTF-8 and UTF-16 encodings, where individual code-points are represented by up to 4 <code>char</code> 's or two <code>wchar_t</code> 's on the Windows platform. This makes <code>std::ctype</code> totally useless with these encodings.</li>
+</ol>
+</li>
+<li><code>std::numpunct</code> and <code>std::moneypunct</code> do not specify the code points for digit representation at all, so they cannot format numbers with the digits used under Arabic locales. For example, the number "103" is expected to be displayed as "١٠٣" in the <code>ar_EG</code> locale. <br/>
+ <code>std::numpunct</code> and <code>std::moneypunct</code> assume that the thousands separator is a single character. This is untrue for the UTF-8 encoding where only Unicode 0-0x7F range can be represented as a single character. As a result, localized numbers can't be represented correctly under locales that use the Unicode "EN SPACE" character for the thousands separator, such as Russian. <br/>
+ This actually causes real problems under GCC and SunStudio compilers, where formatting numbers under a Russian locale creates invalid UTF-8 sequences.</li>
+<li><code>std::time_put</code> and <code>std::time_get</code> have several flaws:<ol type="a">
+<li>They assume that the calendar is always Gregorian, by using <code>std::tm</code> for time representation, ignoring the fact that in many countries dates may be displayed using different calendars.</li>
+<li>They always use a global time zone, not allowing specification of the time zone for formatting. The standard <code>std::tm</code> doesn't even include a timezone field at all.</li>
+<li><code>std::time_get</code> is not symmetric with <code>std::time_put</code>, so you cannot parse dates and times created with <code>std::time_put</code> . (This issue is addressed in C++0x and some STL implementation like the Apache standard C++ library.)</li>
+</ol>
+</li>
+<li><code>std::messages</code> does not provide support for plural forms, making it impossible to correctly localize such simple strings as "There are X files in the directory".</li>
+</ul>
+<p>Also, many features are not really supported by <code>std::locale</code> at all: timezones (as mentioned above), text boundary analysis, number spelling, and many others. So it is clear that the standard C++ locales are problematic for real-world applications.</p>
+<h2><a class="anchor" id="why_icu"></a>
+Why use an ICU wrapper instead of ICU?</h2>
+<p>ICU is a very good localization library, but it has several serious flaws:</p>
+<ul>
+<li>It is absolutely unfriendly to C++ developers. It ignores popular C++ idioms (the STL, RTTI, exceptions, etc), instead mostly mimicking the Java API.</li>
+<li>It provides support for only one kind of string, UTF-16, when some users may want other Unicode encodings. For example, for XML or HTML processing UTF-8 is much more convenient and UTF-32 easier to use. Also there is no support for "narrow" encodings that are still very popular, such as the ISO-8859 encodings.</li>
+</ul>
+<p>For example: Boost.Locale provides direct integration with <code>iostream</code> allowing a more natural way of data formatting. For example:</p>
+<div class="fragment"><pre class="fragment"> cout &lt;&lt; <span class="stringliteral">&quot;You have &quot;</span>&lt;&lt;<a class="code" href="group__manipulators.html#ga97c4997f9692834ea7b5ed3e8137d5fd">as::currency</a> &lt;&lt; 134.45 &lt;&lt; <span class="stringliteral">&quot; in your account as of &quot;</span>&lt;&lt;<a class="code" href="group__manipulators.html#ga820edf843e20847a0c4ccb8da0c4acd8">as::datetime</a> &lt;&lt; <a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">std::time</a>(0) &lt;&lt; endl;
+</pre></div><h2><a class="anchor" id="why_icu_wrapper"></a>
+Why an ICU wrapper and not an implementation-from-scratch?</h2>
+<p>ICU is one of the best localization/Unicode libraries available. It consists of about half a million lines of well-tested, production-proven source code that today provides state-of-the art localization tools.</p>
+<p>Reimplementing of even a small part of ICU's abilities is an infeasible project which would require many man-years. So the question is not whether we need to reimplement the Unicode and localization algorithms from scratch, but "Do we need a good
+localization library in Boost?"</p>
+<p>Thus Boost.Locale wraps ICU with a modern C++ interface, allowing future reimplementation of parts with better alternatives, but bringing localization support to Boost today and not in the not-so-near-if-at-all future.</p>
+<h2><a class="anchor" id="why_icu_api_is_hidden"></a>
+Why is the ICU API not exposed to the user?</h2>
+<p>Yes, the entire ICU API is hidden behind opaque pointers and users have no access to it. This is done for several reasons:</p>
+<ul>
+<li>At some point, better localization tools may be accepted by future upcoming C++ standards, so they may not use ICU directly.</li>
+<li>At some point, it should be possible to switch the underlying localization engine to something else, maybe the native operating system API or some other toolkit such as GLib or Qt that provides similar functionality.</li>
+<li>Not all localization is done within ICU. For example, message formatting uses GNU Gettext message catalogs. In the future more functionality may be reimplemented directly in the Boost.Locale library.</li>
+<li>Boost.Locale was designed with ABI stability in mind, as this library is being developed not only for Boost but also for the needs of the CppCMS C++ Web framework.</li>
+</ul>
+<h2><a class="anchor" id="why_gnu_gettext"></a>
+Why use GNU Gettext catalogs for message formatting?</h2>
+<p>There are many available localization formats. The most popular so far are OASIS XLIFF, GNU gettext po/mo files, POSIX catalogs, Qt ts/tm files, Java properties, and Windows resources. However, the last three are useful only in their specific areas, and POSIX catalogs are too simple and limited, so there are only two reasonable options:</p>
+<ol type="1">
+<li>Standard localization format OASIS XLIFF.</li>
+<li>GNU Gettext binary catalogs.</li>
+</ol>
+<p>The first one generally seems like a more correct localization solution, but it requires XML parsing for loading documents, it is very complicated format, and even ICU requires preliminary compilation of it into ICU resource bundles.</p>
+<p>On the other hand:</p>
+<ul>
+<li>GNU Gettext binary catalogs have a very simple, robust and yet very useful file format.</li>
+<li>It is at present the most popular and de-facto standard localization format (at least in the Open Source world).</li>
+<li>It has very simple and powerful support for plural forms.</li>
+<li>It uses the original English text as the key, making the process of internationalization much easier because at least one basic translation is always available.</li>
+<li>There are many tools for editing and managing gettext catalogs, such as Poedit, kbabel etc.</li>
+</ul>
+<p>So, even though the GNU Gettext mo catalog format is not an officially approved file format:</p>
+<ul>
+<li>It is a de-facto standard and the most popular one.</li>
+<li>Its implementation is much easier and does not require XML parsing and validation.</li>
+</ul>
+<dl class="note"><dt><b>Note:</b></dt><dd>Boost.Locale does not use any of the GNU Gettext code, it just reimplements the tool for reading and using mo-files, eliminating the biggest GNU Gettext flaw at present -- thread safety when using multiple locales.</dd></dl>
+<h2><a class="anchor" id="why_plain_number"></a>
+Why is a plain number used for the representation of a date-time, instead of a Boost.DateTime date or Boost.DateTime ptime?</h2>
+<p>There are several reasons:</p>
+<ol type="1">
+<li>A Gregorian Date by definition can't be used to represent locale-independent dates, because not all calendars are Gregorian.</li>
+<li><code>ptime</code> -- definitely could be used, but it has several problems: <br/>
+<ul>
+<li>It is created in GMT or Local time clock, when `time()` gives a representation that is independent of time zones (usually GMT time), and only later should it be represented in a time zone that the user requests. <br/>
+ The timezone is not a property of time itself, but it is rather a property of time formatting. <br/>
+</li>
+<li><code>ptime</code> already defines <code>operator&lt;&lt;</code> and <code>operator&gt;&gt;</code> for time formatting and parsing.</li>
+<li>The existing facets for <code>ptime</code> formatting and parsing were not designed in a way that the user can override. The major formatting and parsing functions are not virtual. This makes it impossible to reimplement the formatting and parsing functions of <code>ptime</code> unless the developers of the Boost.DateTime library decide to change them. <br/>
+ Also, the facets of <code>ptime</code> are not "correctly" designed in terms of division of formatting information and locale information. Formatting information should be stored within <code>std::ios_base</code> and information about locale-specific formatting should be stored in the facet itself. <br/>
+ The user of the library should not have to create new facets to change simple formatting information like "display only
+ the date" or "display both date and time."</li>
+</ul>
+</li>
+</ol>
+<p>Thus, at this point, <code>ptime</code> is not supported for formatting localized dates and times.</p>
+<h2><a class="anchor" id="why_posix_names"></a>
+Why are POSIX locale names used and not something like the BCP-47 IETF language tag?</h2>
+<p>There are several reasons:</p>
+<ul>
+<li>POSIX locale names have a very important feature: character encoding. When you specify for example fr-FR, you do not actually know how the text should be encoded -- UTF-8, ISO-8859-1, ISO-8859-15 or maybe Windows-1252. This may vary between different operating systems and depends on the current installation. So it is critical to provide all the required information.</li>
+<li>ICU fully understands POSIX locales and knows how to treat them correctly.</li>
+<li>They are native locale names for most operating system APIs (with the exception of Windows)</li>
+</ul>
+<h2><a class="anchor" id="why_linear_chunks"></a>
+Why most parts of Boost.Locale work only on linear/contiguous chunks of text</h2>
+<p>There are two reasons:</p>
+<ul>
+<li>Boost.Locale relies heavily on the third-party APIs like ICU, POSIX or Win32 API, all of them work only on linear chunks of text, so providing non-linear API would just hide the real situation and would not bring real performance advantage.</li>
+<li>In fact, all known libraries that work with Unicode: ICU, Qt, Glib, Win32 API, POSIX API and others accept an input as single linear chunk of text and there is a good reason for this: <br/>
+<ol type="a">
+<li>Most of supported operations on text like collation, case handling usually work on small chunks of text. For example: you probably would never want to compare two chapters of a book, but rather their titles.</li>
+<li>We should remember that even very large texts require quite a small amount of memory, for example the entire book "War and Peace" takes only about 3MB of memory. <br/>
+</li>
+</ol>
+</li>
+</ul>
+<p>However:</p>
+<ul>
+<li>There are API's that support stream processing. For example: character set conversion using <code>std::codecvt</code> API works on streams of any size without problems.</li>
+<li>When new API is introduced into Boost.Locale in future, such that it likely works on large chunks of text, will provide an interface for non-linear text handling.</li>
+</ul>
+<h2><a class="anchor" id="why_abstract_api"></a>
+Why all Boost.Locale implementation is hidden behind abstract interfaces and does not use template metaprogramming?</h2>
+<p>There are several major reasons:</p>
+<ul>
+<li>This is how the C++'s <code>std::locale</code> class is build. Each feature is represented using a subclass of <code>std::locale::facet</code> that provides an abstract API for specific operations it works on, see <a class="el" href="std_locales.html">Introduction to C++ Standard Library localization support</a>.</li>
+<li>This approach allows to switch underlying API without changing the actual application code even in run-time depending on performance and localization requirements.</li>
+<li>This approach reduces compilation times significantly. This is very important for library that may be used in almost every part of specific program.</li>
+</ul>
+<h2><a class="anchor" id="why_no_special_character_type"></a>
+Why Boost.Locale does not provide char16_t/char32_t for non-C++0x platforms.</h2>
+<p>There are several reasons:</p>
+<ul>
+<li>C++0x defines <code>char16_t</code> and <code>char32_t</code> as distinct types, so substituting is with something like <code>uint16_t</code> or <code>uint32_t</code> would not work as for example writing <code>uint16_t</code> to <code>uint32_t</code> stream would write a number to stream.</li>
+<li>The C++ locales system would work only if standard facets like <code>std::num_put</code> are installed into the existing instance of <code>std::locale</code>, however in the many standard C++ libraries these facets are specialized for each specific character that the standard library supports, so an attempt to create a new facet would fail as it is not specialized.</li>
+</ul>
+<p>These are exactly the reasons why Boost.Locale fails with current limited C++0x characters support on GCC-4.5 (the second reason) and MSVC-2010 (the first reason)</p>
+<p>So basically it is impossible to use non-C++ characters with the C++'s locales framework.</p>
+<p>The best and the most portable solution is to use the C++'s <code>char</code> type and UTF-8 encodings. </p>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/recommendations_and_myths.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/recommendations_and_myths.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Recommendations and Myths</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Recommendations and Myths </h1> </div>
+</div>
+<div class="contents">
+<h2><a class="anchor" id="recommendations"></a>
+Recommendations</h2>
+<ul>
+<li>The first and most important recommendation: prefer UTF-8 encoding for narrow strings --- it represents all supported Unicode characters and is more convenient for general use than encodings like Latin1.</li>
+<li>Remember, there are many different cultures. You can assume very little about the user's language. His calendar may not have "January". It may be not possible to convert strings to integers using <code>atoi</code> because they may not use the "ordinary" digits 0..9 at all. You can't assume that "space" characters are frequent because in Chinese the space character does not separate words. The text may be written from Right-to-Left or from Up-to-Down, and so on.</li>
+<li>Using message formatting, try to provide as much context information as you can. Prefer translating entire sentences over single words. When translating words, <b>always</b> add some context information.</li>
+</ul>
+<h2><a class="anchor" id="myths"></a>
+Myths</h2>
+<h3><a class="anchor" id="myths_wide"></a>
+To use Unicode in my application I should use wide strings everywhere.</h3>
+<p>Unicode is not limited to wide strings. Both <code>std::string</code> and <code>std::wstring</code> can hold and process Unicode text. More than that, the semantics of <code>std::string</code> are much cleaner in multi-platform applications, because all "Unicode" strings are UTF-8. "Wide" strings may be encoded in "UTF-16" or "UTF-32", depending on the platform, so they may be even less convenient when dealing with Unicode than <code>char</code> based strings.</p>
+<h3><a class="anchor" id="myths_utf16"></a>
+UTF-16 is the best encoding to work with.</h3>
+<p>There is common assumption that UTF-16 is the best encoding for storing information because it gives "shortest" representation of strings.</p>
+<p>In fact, it is probably the most error-prone encoding to work with. The biggest issue is code points that lay outside of the BMP, which must be represented with surrogate pairs. These characters are very rare and many applications are not tested with them.</p>
+<p>For example:</p>
+<ul>
+<li>Qt3 could not deal with characters outside of the BMP.</li>
+<li>Editing a character with a codepoint above 0xFFFF often shows an unpleasant bug: for example, to erase such a character in Windows Notepad you have to press backspace twice.</li>
+</ul>
+<p>So UTF-16 can be used for Unicode, in fact ICU and many other applications use UTF-16 as their internal Unicode representation, but you should be very careful and never assume one-code-point == one-utf16-character. </p>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/running_examples_under_windows.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/running_examples_under_windows.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Running Examples under Microsoft Windows</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="appendix.html">Appendix</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Running Examples under Microsoft Windows </h1> </div>
+</div>
+<div class="contents">
+<p>All of the examples that come with Boost.Locale are designed for UTF-8 and it is the default encoding used by Boost.Locale.</p>
+<p>However, the default narrow encoding under Microsoft Windows is not UTF-8 and the output of the applications would not be displayed correctly in the console.</p>
+<p>So in order to use UTF-8 encoding under the Windows console and see the output correctly, do the following:</p>
+<ol type="1">
+<li>Open a <code>cmd</code> window</li>
+<li>Change the default font to a TrueType font: go to properties-&gt;font (right click on title-bar-&gt;properties-&gt;font) and change the font to a TrueType font like Lucida Console</li>
+<li>Change the default codepage to 65001 (UTF-8) by running <code>chcp 65001</code></li>
+</ol>
+<p>Now all of the examples should display UTF-8 characters correctly (if the font supports them).</p>
+<p><b>Note for Visual Studio users:</b> Microsoft Visual Studio assumes that all source files are encoded using an "ANSI" codepage like 1252. However all examples use UTF-8 encoding by default, so wide character examples would not work under MSVC as-is. In order to force it to treat source files as UTF-8 you need to convert the files to UTF-8 with BOM, which can be done easily by re-saving them from Notepad, which adds a BOM to UTF-8 files by default. </p>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/segment_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/segment_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,446 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/boundary/segment.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/boundary/segment.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_BOUNDARY_SEGMENT_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_BOUNDARY_SEGMENT_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span><span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00011"></a>00011 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00012"></a>00012 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#include &lt;locale&gt;</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;iosfwd&gt;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;iterator&gt;</span>
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020
+<a name="l00021"></a>00021 <span class="keyword">namespace </span>boost {
+<a name="l00022"></a>00022 <span class="keyword">namespace </span>locale {
+<a name="l00023"></a>00023 <span class="keyword">namespace </span>boundary {
+<a name="l00025"></a>00025 <span class="keyword">namespace </span>details {
+<a name="l00026"></a>00026 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> LeftIterator,<span class="keyword">typename</span> RightIterator&gt;
+<a name="l00027"></a>00027 <span class="keywordtype">int</span> compare_text(LeftIterator l_begin,LeftIterator l_end,RightIterator r_begin,RightIterator r_end)
+<a name="l00028"></a>00028 {
+<a name="l00029"></a>00029 <span class="keyword">typedef</span> LeftIterator left_iterator;
+<a name="l00030"></a>00030 <span class="keyword">typedef</span> RightIterator right_iterator;
+<a name="l00031"></a>00031 <span class="keyword">typedef</span> <span class="keyword">typename</span> std::iterator_traits&lt;left_iterator&gt;::value_type char_type;
+<a name="l00032"></a>00032 <span class="keyword">typedef</span> std::char_traits&lt;char_type&gt; traits;
+<a name="l00033"></a>00033 <span class="keywordflow">while</span>(l_begin!=l_end &amp;&amp; r_begin!=r_end) {
+<a name="l00034"></a>00034 char_type lchar = *l_begin++;
+<a name="l00035"></a>00035 char_type rchar = *r_begin++;
+<a name="l00036"></a>00036 <span class="keywordflow">if</span>(traits::eq(lchar,rchar))
+<a name="l00037"></a>00037 <span class="keywordflow">continue</span>;
+<a name="l00038"></a>00038 <span class="keywordflow">if</span>(traits::lt(lchar,rchar))
+<a name="l00039"></a>00039 <span class="keywordflow">return</span> -1;
+<a name="l00040"></a>00040 <span class="keywordflow">else</span>
+<a name="l00041"></a>00041 <span class="keywordflow">return</span> 1;
+<a name="l00042"></a>00042 }
+<a name="l00043"></a>00043 <span class="keywordflow">if</span>(l_begin==l_end &amp;&amp; r_begin==r_end)
+<a name="l00044"></a>00044 <span class="keywordflow">return</span> 0;
+<a name="l00045"></a>00045 <span class="keywordflow">if</span>(l_begin==l_end)
+<a name="l00046"></a>00046 <span class="keywordflow">return</span> -1;
+<a name="l00047"></a>00047 <span class="keywordflow">else</span>
+<a name="l00048"></a>00048 <span class="keywordflow">return</span> 1;
+<a name="l00049"></a>00049 }
+<a name="l00050"></a>00050
+<a name="l00051"></a>00051
+<a name="l00052"></a>00052 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Left,<span class="keyword">typename</span> Right&gt;
+<a name="l00053"></a>00053 <span class="keywordtype">int</span> compare_text(Left <span class="keyword">const</span> &amp;l,Right <span class="keyword">const</span> &amp;r)
+<a name="l00054"></a>00054 {
+<a name="l00055"></a>00055 <span class="keywordflow">return</span> compare_text(l.begin(),l.end(),r.begin(),r.end());
+<a name="l00056"></a>00056 }
+<a name="l00057"></a>00057
+<a name="l00058"></a>00058 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Left,<span class="keyword">typename</span> Char&gt;
+<a name="l00059"></a>00059 <span class="keywordtype">int</span> compare_string(Left <span class="keyword">const</span> &amp;l,Char <span class="keyword">const</span> *begin)
+<a name="l00060"></a>00060 {
+<a name="l00061"></a>00061 Char <span class="keyword">const</span> *end = begin;
+<a name="l00062"></a>00062 <span class="keywordflow">while</span>(*end!=0)
+<a name="l00063"></a>00063 end++;
+<a name="l00064"></a>00064 <span class="keywordflow">return</span> compare_text(l.begin(),l.end(),begin,end);
+<a name="l00065"></a>00065 }
+<a name="l00066"></a>00066
+<a name="l00067"></a>00067 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Right,<span class="keyword">typename</span> Char&gt;
+<a name="l00068"></a>00068 <span class="keywordtype">int</span> compare_string(Char <span class="keyword">const</span> *begin,Right <span class="keyword">const</span> &amp;r)
+<a name="l00069"></a>00069 {
+<a name="l00070"></a>00070 Char <span class="keyword">const</span> *end = begin;
+<a name="l00071"></a>00071 <span class="keywordflow">while</span>(*end!=0)
+<a name="l00072"></a>00072 end++;
+<a name="l00073"></a>00073 <span class="keywordflow">return</span> compare_text(begin,end,r.begin(),r.end());
+<a name="l00074"></a>00074 }
+<a name="l00075"></a>00075
+<a name="l00076"></a>00076 }
+<a name="l00078"></a>00078
+<a name="l00082"></a>00082
+<a name="l00102"></a>00102 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> IteratorType&gt;
+<a name="l00103"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html">00103</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment</a> : <span class="keyword">public</span> std::pair&lt;IteratorType,IteratorType&gt; {
+<a name="l00104"></a>00104 <span class="keyword">public</span>:
+<a name="l00108"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#ad3785355ea817c087bf428315a332169">00108</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> std::iterator_traits&lt;IteratorType&gt;::value_type char_type;
+<a name="l00112"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a795d3328ac4d1692294f172c8480da47">00112</a> <span class="keyword">typedef</span> std::basic_string&lt;char_type&gt; string_type;
+<a name="l00116"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#ab7ba55015262b4fb85bb531882a32ead">00116</a> <span class="keyword">typedef</span> char_type value_type;
+<a name="l00120"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">00120</a> <span class="keyword">typedef</span> IteratorType iterator;
+<a name="l00124"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#aa24dcd83aefe4925bfc11b0285e2517a">00124</a> <span class="keyword">typedef</span> IteratorType const_iterator;
+<a name="l00128"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a79ee4d48248ffbc23f84a33355ca3b62">00128</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> std::iterator_traits&lt;IteratorType&gt;::difference_type difference_type;
+<a name="l00129"></a>00129
+<a name="l00133"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a4e785bc97dba9e8e25f18b43957723e5">00133</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a4e785bc97dba9e8e25f18b43957723e5">segment</a>() {}
+<a name="l00137"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#aea72505bb4940b21bb00a3660fefb7b7">00137</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a4e785bc97dba9e8e25f18b43957723e5">segment</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">iterator</a> b,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">iterator</a> e,<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> r) :
+<a name="l00138"></a>00138 std::pair&lt;IteratorType,IteratorType&gt;(b,e),
+<a name="l00139"></a>00139 rule_(r)
+<a name="l00140"></a>00140 {
+<a name="l00141"></a>00141 }
+<a name="l00145"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a5428ff79bc05b78989f56519b58a6d9c">00145</a> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a445da30d993880a1bd6d998e78755a44">begin</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">iterator</a> <span class="keyword">const</span> &amp;v)
+<a name="l00146"></a>00146 {
+<a name="l00147"></a>00147 this-&gt;first = v;
+<a name="l00148"></a>00148 }
+<a name="l00152"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#aaedd7bb4760bae3dcdb165b330806261">00152</a> <span class="keywordtype">void</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a7e36b7f1c88ad1f5756ba6e501454bc4">end</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a31960fd7b416715d012b686bc1f2c205">iterator</a> <span class="keyword">const</span> &amp;v)
+<a name="l00153"></a>00153 {
+<a name="l00154"></a>00154 this-&gt;second = v;
+<a name="l00155"></a>00155 }
+<a name="l00156"></a>00156
+<a name="l00160"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a445da30d993880a1bd6d998e78755a44">00160</a> IteratorType <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a445da30d993880a1bd6d998e78755a44">begin</a>()<span class="keyword"> const </span>
+<a name="l00161"></a>00161 <span class="keyword"> </span>{
+<a name="l00162"></a>00162 <span class="keywordflow">return</span> this-&gt;first;
+<a name="l00163"></a>00163 }
+<a name="l00167"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a7e36b7f1c88ad1f5756ba6e501454bc4">00167</a> IteratorType <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a7e36b7f1c88ad1f5756ba6e501454bc4">end</a>()<span class="keyword"> const</span>
+<a name="l00168"></a>00168 <span class="keyword"> </span>{
+<a name="l00169"></a>00169 <span class="keywordflow">return</span> this-&gt;second;
+<a name="l00170"></a>00170 }
+<a name="l00171"></a>00171
+<a name="l00175"></a>00175 <span class="keyword">template</span> &lt;<span class="keyword">class</span> T, <span class="keyword">class</span> A&gt;
+<a name="l00176"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a76e2717f48ca7a6336a9fede9dec4d40">00176</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a76e2717f48ca7a6336a9fede9dec4d40">operator std::basic_string&lt;char_type, T, A&gt; </a>()<span class="keyword">const</span>
+<a name="l00177"></a>00177 <span class="keyword"> </span>{
+<a name="l00178"></a>00178 <span class="keywordflow">return</span> std::basic_string&lt;char_type, T, A&gt;(this-&gt;first, this-&gt;second);
+<a name="l00179"></a>00179 }
+<a name="l00180"></a>00180
+<a name="l00184"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#ac139eae8c07ed82ba8343fedfa76c2bf">00184</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a795d3328ac4d1692294f172c8480da47">string_type</a> str()<span class="keyword"> const</span>
+<a name="l00185"></a>00185 <span class="keyword"> </span>{
+<a name="l00186"></a>00186 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a795d3328ac4d1692294f172c8480da47">string_type</a>(begin(),end());
+<a name="l00187"></a>00187 }
+<a name="l00188"></a>00188
+<a name="l00192"></a>00192
+<a name="l00193"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a45edfde079b2afe36c55043c7a00b438">00193</a> <span class="keywordtype">size_t</span> length()<span class="keyword"> const</span>
+<a name="l00194"></a>00194 <span class="keyword"> </span>{
+<a name="l00195"></a>00195 <span class="keywordflow">return</span> std::distance(begin(),end());
+<a name="l00196"></a>00196 }
+<a name="l00197"></a>00197
+<a name="l00201"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a84022afa120893d0716fc446816eb83f">00201</a> <span class="keywordtype">bool</span> empty()<span class="keyword"> const</span>
+<a name="l00202"></a>00202 <span class="keyword"> </span>{
+<a name="l00203"></a>00203 <span class="keywordflow">return</span> begin() == end();
+<a name="l00204"></a>00204 }
+<a name="l00205"></a>00205
+<a name="l00209"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a5b36a522d7013306617dbcccc9919343">00209</a> <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> rule()<span class="keyword"> const</span>
+<a name="l00210"></a>00210 <span class="keyword"> </span>{
+<a name="l00211"></a>00211 <span class="keywordflow">return</span> rule_;
+<a name="l00212"></a>00212 }
+<a name="l00216"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a962c26b7e2024767ad25f2be080fd53a">00216</a> <span class="keywordtype">void</span> rule(<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> r)
+<a name="l00217"></a>00217 {
+<a name="l00218"></a>00218 rule_ = r;
+<a name="l00219"></a>00219 }
+<a name="l00220"></a>00220
+<a name="l00221"></a>00221 <span class="comment">// make sure we override std::pair&#39;s operator==</span>
+<a name="l00222"></a>00222
+<a name="l00224"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a9a30e70d41591b25c8c77961bff00057">00224</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga43283ecda927605b1b802a3c3306bfb1">operator==</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment</a> <span class="keyword">const</span> &amp;other)
+<a name="l00225"></a>00225 {
+<a name="l00226"></a>00226 <span class="keywordflow">return</span> details::compare_text(*<span class="keyword">this</span>,other) == 0;
+<a name="l00227"></a>00227 }
+<a name="l00228"></a>00228
+<a name="l00230"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a2e38c575af16843a3aa140a4332646a3">00230</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga11ff477ceecc7cbc274d998c3676126e">operator!=</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment</a> <span class="keyword">const</span> &amp;other)
+<a name="l00231"></a>00231 {
+<a name="l00232"></a>00232 <span class="keywordflow">return</span> details::compare_text(*<span class="keyword">this</span>,other) != 0;
+<a name="l00233"></a>00233 }
+<a name="l00234"></a>00234
+<a name="l00235"></a>00235 <span class="keyword">private</span>:
+<a name="l00236"></a>00236 <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> rule_;
+<a name="l00237"></a>00237
+<a name="l00238"></a>00238 };
+<a name="l00239"></a>00239
+<a name="l00240"></a>00240
+<a name="l00242"></a>00242 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> IteratorL,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00243"></a><a class="code" href="group__boundary.html#ga2b32edcb7e385885cc7bb6ed32e0ee94">00243</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga43283ecda927605b1b802a3c3306bfb1">operator==</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorL&gt;</a> <span class="keyword">const</span> &amp;l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00244"></a>00244 {
+<a name="l00245"></a>00245 <span class="keywordflow">return</span> details::compare_text(l,r) == 0;
+<a name="l00246"></a>00246 }
+<a name="l00248"></a>00248 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> IteratorL,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00249"></a><a class="code" href="group__boundary.html#ga92e8bdaf8e347b65b711ef2437ad9348">00249</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga11ff477ceecc7cbc274d998c3676126e">operator!=</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorL&gt;</a> <span class="keyword">const</span> &amp;l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00250"></a>00250 {
+<a name="l00251"></a>00251 <span class="keywordflow">return</span> details::compare_text(l,r) != 0;
+<a name="l00252"></a>00252 }
+<a name="l00253"></a>00253
+<a name="l00255"></a>00255 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> IteratorL,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00256"></a><a class="code" href="group__boundary.html#ga3312b16b2a678780f2354e8addac83fd">00256</a> <span class="keywordtype">bool</span> operator&lt;(segment&lt;IteratorL&gt; <span class="keyword">const</span> &amp;l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00257"></a>00257 {
+<a name="l00258"></a>00258 <span class="keywordflow">return</span> details::compare_text(l,r) &lt; 0;
+<a name="l00259"></a>00259 }
+<a name="l00261"></a>00261 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> IteratorL,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00262"></a><a class="code" href="group__boundary.html#gaf36ebfa12ec261fd4425eafe49245009">00262</a> <span class="keywordtype">bool</span> operator&lt;=(segment&lt;IteratorL&gt; <span class="keyword">const</span> &amp;l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00263"></a>00263 {
+<a name="l00264"></a>00264 <span class="keywordflow">return</span> details::compare_text(l,r) &lt;= 0;
+<a name="l00265"></a>00265 }
+<a name="l00267"></a>00267 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> IteratorL,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00268"></a><a class="code" href="group__boundary.html#gac09337a84a82c4f366148c98a69dddd4">00268</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#gac09337a84a82c4f366148c98a69dddd4" title="Compare two segments.">operator&gt;</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorL&gt;</a> <span class="keyword">const</span> &amp;l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00269"></a>00269 {
+<a name="l00270"></a>00270 <span class="keywordflow">return</span> details::compare_text(l,r) &gt; 0;
+<a name="l00271"></a>00271 }
+<a name="l00273"></a>00273 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> IteratorL,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00274"></a><a class="code" href="group__boundary.html#ga4cb705d03b2611464478733338539430">00274</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga4cb705d03b2611464478733338539430" title="Compare two segments.">operator&gt;=</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorL&gt;</a> <span class="keyword">const</span> &amp;l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00275"></a>00275 {
+<a name="l00276"></a>00276 <span class="keywordflow">return</span> details::compare_text(l,r) &gt;= 0;
+<a name="l00277"></a>00277 }
+<a name="l00278"></a>00278
+<a name="l00280"></a>00280 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> Traits,<span class="keyword">typename</span> Alloc,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00281"></a><a class="code" href="group__boundary.html#gae7ac339ac890f13ae989589fd27b042a">00281</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga43283ecda927605b1b802a3c3306bfb1">operator==</a>(std::basic_string&lt;CharType,Traits,Alloc&gt; <span class="keyword">const</span> &amp;l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00282"></a>00282 {
+<a name="l00283"></a>00283 <span class="keywordflow">return</span> details::compare_text(l,r) == 0;
+<a name="l00284"></a>00284 }
+<a name="l00286"></a>00286 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> Traits,<span class="keyword">typename</span> Alloc,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00287"></a><a class="code" href="group__boundary.html#ga36e8f0b7bfc18651da1d5b85d097daf2">00287</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga11ff477ceecc7cbc274d998c3676126e">operator!=</a>(std::basic_string&lt;CharType,Traits,Alloc&gt; <span class="keyword">const</span> &amp;l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00288"></a>00288 {
+<a name="l00289"></a>00289 <span class="keywordflow">return</span> details::compare_text(l,r) != 0;
+<a name="l00290"></a>00290 }
+<a name="l00291"></a>00291
+<a name="l00293"></a>00293 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> Traits,<span class="keyword">typename</span> Alloc,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00294"></a><a class="code" href="group__boundary.html#ga0932175037e72b6988169afd0ae38e6e">00294</a> <span class="keywordtype">bool</span> operator&lt;(std::basic_string&lt;CharType,Traits,Alloc&gt; <span class="keyword">const</span> &amp;l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00295"></a>00295 {
+<a name="l00296"></a>00296 <span class="keywordflow">return</span> details::compare_text(l,r) &lt; 0;
+<a name="l00297"></a>00297 }
+<a name="l00299"></a>00299 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> Traits,<span class="keyword">typename</span> Alloc,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00300"></a><a class="code" href="group__boundary.html#ga81060e764be6d980bb0675fb9f5e9812">00300</a> <span class="keywordtype">bool</span> operator&lt;=(std::basic_string&lt;CharType,Traits,Alloc&gt; <span class="keyword">const</span> &amp;l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00301"></a>00301 {
+<a name="l00302"></a>00302 <span class="keywordflow">return</span> details::compare_text(l,r) &lt;= 0;
+<a name="l00303"></a>00303 }
+<a name="l00305"></a>00305 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> Traits,<span class="keyword">typename</span> Alloc,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00306"></a><a class="code" href="group__boundary.html#ga82536a8f6542277280e93b8f46537f8a">00306</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#gac09337a84a82c4f366148c98a69dddd4" title="Compare two segments.">operator&gt;</a>(std::basic_string&lt;CharType,Traits,Alloc&gt; <span class="keyword">const</span> &amp;l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00307"></a>00307 {
+<a name="l00308"></a>00308 <span class="keywordflow">return</span> details::compare_text(l,r) &gt; 0;
+<a name="l00309"></a>00309 }
+<a name="l00311"></a>00311 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> Traits,<span class="keyword">typename</span> Alloc,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00312"></a><a class="code" href="group__boundary.html#gafbcf10a14a62b789df75fa4223a2ff92">00312</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga4cb705d03b2611464478733338539430" title="Compare two segments.">operator&gt;=</a>(std::basic_string&lt;CharType,Traits,Alloc&gt; <span class="keyword">const</span> &amp;l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00313"></a>00313 {
+<a name="l00314"></a>00314 <span class="keywordflow">return</span> details::compare_text(l,r) &gt;= 0;
+<a name="l00315"></a>00315 }
+<a name="l00316"></a>00316
+<a name="l00318"></a>00318 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Iterator,<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> Traits,<span class="keyword">typename</span> Alloc&gt;
+<a name="l00319"></a><a class="code" href="group__boundary.html#ga46962dd62a6655fd34b9ec165af2d391">00319</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga43283ecda927605b1b802a3c3306bfb1">operator==</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;Iterator&gt;</a> <span class="keyword">const</span> &amp;l,std::basic_string&lt;CharType,Traits,Alloc&gt; <span class="keyword">const</span> &amp;r)
+<a name="l00320"></a>00320 {
+<a name="l00321"></a>00321 <span class="keywordflow">return</span> details::compare_text(l,r) == 0;
+<a name="l00322"></a>00322 }
+<a name="l00324"></a>00324 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Iterator,<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> Traits,<span class="keyword">typename</span> Alloc&gt;
+<a name="l00325"></a><a class="code" href="group__boundary.html#ga4932acde9903090a1d8451b2e8eb7cce">00325</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga11ff477ceecc7cbc274d998c3676126e">operator!=</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;Iterator&gt;</a> <span class="keyword">const</span> &amp;l,std::basic_string&lt;CharType,Traits,Alloc&gt; <span class="keyword">const</span> &amp;r)
+<a name="l00326"></a>00326 {
+<a name="l00327"></a>00327 <span class="keywordflow">return</span> details::compare_text(l,r) != 0;
+<a name="l00328"></a>00328 }
+<a name="l00329"></a>00329
+<a name="l00331"></a>00331 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Iterator,<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> Traits,<span class="keyword">typename</span> Alloc&gt;
+<a name="l00332"></a><a class="code" href="group__boundary.html#ga0a251376a40e702e33fd067d44df4aa7">00332</a> <span class="keywordtype">bool</span> operator&lt;(segment&lt;Iterator&gt; <span class="keyword">const</span> &amp;l,std::basic_string&lt;CharType,Traits,Alloc&gt; <span class="keyword">const</span> &amp;r)
+<a name="l00333"></a>00333 {
+<a name="l00334"></a>00334 <span class="keywordflow">return</span> details::compare_text(l,r) &lt; 0;
+<a name="l00335"></a>00335 }
+<a name="l00337"></a>00337 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Iterator,<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> Traits,<span class="keyword">typename</span> Alloc&gt;
+<a name="l00338"></a><a class="code" href="group__boundary.html#gaa261b02fb8190249aeabe9558422b510">00338</a> <span class="keywordtype">bool</span> operator&lt;=(segment&lt;Iterator&gt; <span class="keyword">const</span> &amp;l,std::basic_string&lt;CharType,Traits,Alloc&gt; <span class="keyword">const</span> &amp;r)
+<a name="l00339"></a>00339 {
+<a name="l00340"></a>00340 <span class="keywordflow">return</span> details::compare_text(l,r) &lt;= 0;
+<a name="l00341"></a>00341 }
+<a name="l00343"></a>00343 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Iterator,<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> Traits,<span class="keyword">typename</span> Alloc&gt;
+<a name="l00344"></a><a class="code" href="group__boundary.html#gacb4ee8e6dd72faa9a70a6200f1086083">00344</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#gac09337a84a82c4f366148c98a69dddd4" title="Compare two segments.">operator&gt;</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;Iterator&gt;</a> <span class="keyword">const</span> &amp;l,std::basic_string&lt;CharType,Traits,Alloc&gt; <span class="keyword">const</span> &amp;r)
+<a name="l00345"></a>00345 {
+<a name="l00346"></a>00346 <span class="keywordflow">return</span> details::compare_text(l,r) &gt; 0;
+<a name="l00347"></a>00347 }
+<a name="l00349"></a>00349 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Iterator,<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> Traits,<span class="keyword">typename</span> Alloc&gt;
+<a name="l00350"></a><a class="code" href="group__boundary.html#gaa83d2203efdaaa9ba0efdb5a4d8505c6">00350</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga4cb705d03b2611464478733338539430" title="Compare two segments.">operator&gt;=</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;Iterator&gt;</a> <span class="keyword">const</span> &amp;l,std::basic_string&lt;CharType,Traits,Alloc&gt; <span class="keyword">const</span> &amp;r)
+<a name="l00351"></a>00351 {
+<a name="l00352"></a>00352 <span class="keywordflow">return</span> details::compare_text(l,r) &gt;= 0;
+<a name="l00353"></a>00353 }
+<a name="l00354"></a>00354
+<a name="l00355"></a>00355
+<a name="l00357"></a>00357 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00358"></a><a class="code" href="group__boundary.html#gab6ee0e4f55fc5346b3824a43851d8aa8">00358</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga43283ecda927605b1b802a3c3306bfb1">operator==</a>(CharType <span class="keyword">const</span> *l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00359"></a>00359 {
+<a name="l00360"></a>00360 <span class="keywordflow">return</span> details::compare_string(l,r) == 0;
+<a name="l00361"></a>00361 }
+<a name="l00363"></a>00363 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00364"></a><a class="code" href="group__boundary.html#gadd8ef92312098f5301a04ead7e7820ee">00364</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga11ff477ceecc7cbc274d998c3676126e">operator!=</a>(CharType <span class="keyword">const</span> *l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00365"></a>00365 {
+<a name="l00366"></a>00366 <span class="keywordflow">return</span> details::compare_string(l,r) != 0;
+<a name="l00367"></a>00367 }
+<a name="l00368"></a>00368
+<a name="l00370"></a>00370 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00371"></a><a class="code" href="group__boundary.html#gacc75c28d1a9785f13bf8262f1ab16c42">00371</a> <span class="keywordtype">bool</span> operator&lt;(CharType const *l,segment&lt;IteratorR&gt; <span class="keyword">const</span> &amp;r)
+<a name="l00372"></a>00372 {
+<a name="l00373"></a>00373 <span class="keywordflow">return</span> details::compare_string(l,r) &lt; 0;
+<a name="l00374"></a>00374 }
+<a name="l00376"></a>00376 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00377"></a><a class="code" href="group__boundary.html#ga3c55926456f7174f26d4cb8d21827f5b">00377</a> <span class="keywordtype">bool</span> operator&lt;=(CharType const *l,segment&lt;IteratorR&gt; <span class="keyword">const</span> &amp;r)
+<a name="l00378"></a>00378 {
+<a name="l00379"></a>00379 <span class="keywordflow">return</span> details::compare_string(l,r) &lt;= 0;
+<a name="l00380"></a>00380 }
+<a name="l00382"></a>00382 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00383"></a><a class="code" href="group__boundary.html#ga0b8814055201ec3ea36f0a01d891ad3d">00383</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#gac09337a84a82c4f366148c98a69dddd4" title="Compare two segments.">operator&gt;</a>(CharType <span class="keyword">const</span> *l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00384"></a>00384 {
+<a name="l00385"></a>00385 <span class="keywordflow">return</span> details::compare_string(l,r) &gt; 0;
+<a name="l00386"></a>00386 }
+<a name="l00388"></a>00388 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> IteratorR&gt;
+<a name="l00389"></a><a class="code" href="group__boundary.html#ga7a101883e579432250960545a9cebc5b">00389</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga4cb705d03b2611464478733338539430" title="Compare two segments.">operator&gt;=</a>(CharType <span class="keyword">const</span> *l,<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;IteratorR&gt;</a> <span class="keyword">const</span> &amp;r)
+<a name="l00390"></a>00390 {
+<a name="l00391"></a>00391 <span class="keywordflow">return</span> details::compare_string(l,r) &gt;= 0;
+<a name="l00392"></a>00392 }
+<a name="l00393"></a>00393
+<a name="l00395"></a>00395 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Iterator,<span class="keyword">typename</span> CharType&gt;
+<a name="l00396"></a><a class="code" href="group__boundary.html#gae790fec4c9f079010027dc60cbfe7358">00396</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga43283ecda927605b1b802a3c3306bfb1">operator==</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;Iterator&gt;</a> <span class="keyword">const</span> &amp;l,CharType <span class="keyword">const</span> *r)
+<a name="l00397"></a>00397 {
+<a name="l00398"></a>00398 <span class="keywordflow">return</span> details::compare_string(l,r) == 0;
+<a name="l00399"></a>00399 }
+<a name="l00401"></a>00401 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Iterator,<span class="keyword">typename</span> CharType&gt;
+<a name="l00402"></a><a class="code" href="group__boundary.html#ga6664b475504a2396662bc3658b982e0c">00402</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga11ff477ceecc7cbc274d998c3676126e">operator!=</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;Iterator&gt;</a> <span class="keyword">const</span> &amp;l,CharType <span class="keyword">const</span> *r)
+<a name="l00403"></a>00403 {
+<a name="l00404"></a>00404 <span class="keywordflow">return</span> details::compare_string(l,r) != 0;
+<a name="l00405"></a>00405 }
+<a name="l00406"></a>00406
+<a name="l00408"></a>00408 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Iterator,<span class="keyword">typename</span> CharType&gt;
+<a name="l00409"></a><a class="code" href="group__boundary.html#ga313c2d3e6270e57dc48587f52833e111">00409</a> <span class="keywordtype">bool</span> operator&lt;(segment&lt;Iterator&gt; <span class="keyword">const</span> &amp;l,CharType <span class="keyword">const</span> *r)
+<a name="l00410"></a>00410 {
+<a name="l00411"></a>00411 <span class="keywordflow">return</span> details::compare_string(l,r) &lt; 0;
+<a name="l00412"></a>00412 }
+<a name="l00414"></a>00414 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Iterator,<span class="keyword">typename</span> CharType&gt;
+<a name="l00415"></a><a class="code" href="group__boundary.html#ga8736ae89a477d37d196e137e51f546f4">00415</a> <span class="keywordtype">bool</span> operator&lt;=(segment&lt;Iterator&gt; <span class="keyword">const</span> &amp;l,CharType <span class="keyword">const</span> *r)
+<a name="l00416"></a>00416 {
+<a name="l00417"></a>00417 <span class="keywordflow">return</span> details::compare_string(l,r) &lt;= 0;
+<a name="l00418"></a>00418 }
+<a name="l00420"></a>00420 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Iterator,<span class="keyword">typename</span> CharType&gt;
+<a name="l00421"></a><a class="code" href="group__boundary.html#ga46a945423c982c08c8143eaced7878bf">00421</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#gac09337a84a82c4f366148c98a69dddd4" title="Compare two segments.">operator&gt;</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;Iterator&gt;</a> <span class="keyword">const</span> &amp;l,CharType <span class="keyword">const</span> *r)
+<a name="l00422"></a>00422 {
+<a name="l00423"></a>00423 <span class="keywordflow">return</span> details::compare_string(l,r) &gt; 0;
+<a name="l00424"></a>00424 }
+<a name="l00426"></a>00426 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Iterator,<span class="keyword">typename</span> CharType&gt;
+<a name="l00427"></a><a class="code" href="group__boundary.html#gacd03bf4305835d4dc2db8e98a67d8e4c">00427</a> <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#ga4cb705d03b2611464478733338539430" title="Compare two segments.">operator&gt;=</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;Iterator&gt;</a> <span class="keyword">const</span> &amp;l,CharType <span class="keyword">const</span> *r)
+<a name="l00428"></a>00428 {
+<a name="l00429"></a>00429 <span class="keywordflow">return</span> details::compare_string(l,r) &gt;= 0;
+<a name="l00430"></a>00430 }
+<a name="l00431"></a>00431
+<a name="l00432"></a>00432
+<a name="l00433"></a>00433
+<a name="l00434"></a>00434
+<a name="l00435"></a>00435
+<a name="l00436"></a>00436
+<a name="l00437"></a><a class="code" href="group__boundary.html#gaac5031c17bd3f7ddc5138546af121064">00437</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;std::string::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">ssegment</a>;
+<a name="l00438"></a><a class="code" href="group__boundary.html#gaca0e28d417ee314f3035c7561ed5134a">00438</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;std::wstring::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">wssegment</a>;
+<a name="l00439"></a>00439 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR16_T</span>
+<a name="l00440"></a><a class="code" href="group__boundary.html#ga5084d9529f752361d18c2196f38df3c0">00440</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;std::u16string::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">u16ssegment</a>;
+<a name="l00441"></a>00441 <span class="preprocessor"> #endif</span>
+<a name="l00442"></a>00442 <span class="preprocessor"></span><span class="preprocessor"> #ifdef BOOST_HAS_CHAR32_T</span>
+<a name="l00443"></a><a class="code" href="group__boundary.html#gaffcc722694a39291a9ea7f68a95e1e27">00443</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;std::u32string::const_iterator&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">u32ssegment</a>;
+<a name="l00444"></a>00444 <span class="preprocessor"> #endif</span>
+<a name="l00445"></a>00445 <span class="preprocessor"></span>
+<a name="l00446"></a><a class="code" href="group__boundary.html#ga7a89ba0de6cad23a0f1b0b90ca5296f0">00446</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;char const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">csegment</a>;
+<a name="l00447"></a><a class="code" href="group__boundary.html#gab9d26aae843dad891a3bfa736871e843">00447</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;wchar_t const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">wcsegment</a>;
+<a name="l00448"></a>00448 <span class="preprocessor"> #ifdef BOOST_HAS_CHAR16_T</span>
+<a name="l00449"></a><a class="code" href="group__boundary.html#ga5ff9e98f81ad61dbcd480fc61780fee1">00449</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;char16_t const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">u16csegment</a>;
+<a name="l00450"></a>00450 <span class="preprocessor"> #endif</span>
+<a name="l00451"></a>00451 <span class="preprocessor"></span><span class="preprocessor"> #ifdef BOOST_HAS_CHAR32_T</span>
+<a name="l00452"></a><a class="code" href="group__boundary.html#gaf2077b28c5de700fb5bff9688fe410d6">00452</a> <span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;char32_t const *&gt;</a> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">u32csegment</a>;
+<a name="l00453"></a>00453 <span class="preprocessor"> #endif</span>
+<a name="l00454"></a>00454 <span class="preprocessor"></span>
+<a name="l00455"></a>00455
+<a name="l00456"></a>00456
+<a name="l00457"></a>00457
+<a name="l00458"></a>00458
+<a name="l00462"></a>00462 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> TraitsType,<span class="keyword">typename</span> Iterator&gt;
+<a name="l00463"></a><a class="code" href="group__boundary.html#ga52e8a81834c07879736a585f33af5de6">00463</a> std::basic_ostream&lt;CharType,TraitsType&gt; &amp;<a class="code" href="group__date__time.html#ga0055f16ba156eb9a3f333c2bf2eae815">operator&lt;&lt;</a>(
+<a name="l00464"></a>00464 std::basic_ostream&lt;CharType,TraitsType&gt; &amp;out,
+<a name="l00465"></a>00465 <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html" title="a segment object that represents a pair of two iterators that define the range where this segment exi...">segment&lt;Iterator&gt;</a> <span class="keyword">const</span> &amp;tok)
+<a name="l00466"></a>00466 {
+<a name="l00467"></a>00467 <span class="keywordflow">for</span>(Iterator p=tok.<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#a5428ff79bc05b78989f56519b58a6d9c">begin</a>(),e=tok.<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html#aaedd7bb4760bae3dcdb165b330806261">end</a>();p!=e;++p)
+<a name="l00468"></a>00468 out &lt;&lt; *p;
+<a name="l00469"></a>00469 <span class="keywordflow">return</span> out;
+<a name="l00470"></a>00470 }
+<a name="l00471"></a>00471
+<a name="l00473"></a>00473
+<a name="l00474"></a>00474 } <span class="comment">// boundary</span>
+<a name="l00475"></a>00475 } <span class="comment">// locale</span>
+<a name="l00476"></a>00476 } <span class="comment">// boost</span>
+<a name="l00477"></a>00477
+<a name="l00478"></a>00478 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00479"></a>00479 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l00480"></a>00480 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00481"></a>00481 <span class="preprocessor"></span>
+<a name="l00482"></a>00482 <span class="preprocessor">#endif</span>
+<a name="l00483"></a>00483 <span class="preprocessor"></span>
+<a name="l00484"></a>00484 <span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/special_thanks.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/special_thanks.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Special Thanks</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="appendix.html">Appendix</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Special Thanks </h1> </div>
+</div>
+<div class="contents">
+<p>(in alphabetical order)</p>
+<ul>
+<li>Chad Nelson - for volunteering to manage the formal review and for the great language corrections for this tutorial.</li>
+<li>Vladimir Prus - for development of Boost.Build support for Boost.Locale. </li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/status_of_cpp0x_characters_support.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/status_of_cpp0x_characters_support.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Status of C++0x char16_t/char32_t support</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="appendix.html">Appendix</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Status of C++0x char16_t/char32_t support </h1> </div>
+</div>
+<div class="contents">
+<p>The support of C++0x <code>char16_t</code> and <code>char32_t</code> is experimental, mostly does not work and not intended to be used in production with current latest compilers: GCC-4.5, MSVC10 till major compiler's flaws would be fixed.</p>
+<h2><a class="anchor" id="status_of_cpp0x_characters_support_gnu"></a>
+GNU GCC 4.5/C++0x Status</h2>
+<p>GNU C++ compiler provides decent support of C++0x characters however:</p>
+<ol type="1">
+<li>Standard library does not install any std::locale::facets for this support so any attempt to format numbers using <code>char16_t</code> or <code>char32_t</code> streams would just fail.</li>
+<li>Standard library misses specialization for required <code>char16_t/char32_t</code> locale facets, so "std" backends is not build-able as essential symbols missing, also <code>codecvt</code> facet can't be created as well.</li>
+</ol>
+<h2><a class="anchor" id="status_of_cpp0x_characters_support_msvc"></a>
+Visual Studio 2010 (MSVC10)/C++0x Status</h2>
+<p>MSVC provides all required facets however:</p>
+<ol type="1">
+<li>Standard library does not provide installations of std::locale::id for these facets in DLL so it is not usable with <code>/MD</code>, <code>/MDd</code> compiler flags and requires static link of the runtime library.</li>
+<li><code>char16_t</code> and <code>char32_t</code> are not distinct types but rather aliases of unsigned short and unsigned types which contradicts to C++0x requirements making it impossible to write <code>char16_t/char32_t</code> to stream and causing multiple faults. </li>
+</ol>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/std_locales.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/std_locales.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Introduction to C++ Standard Library localization support</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Introduction to C++ Standard Library localization support </h1> </div>
+</div>
+<div class="contents">
+<h2><a class="anchor" id="std_locales_basics"></a>
+Getting familiar with standard C++ Locales</h2>
+<p>The C++ standard library offers a simple and powerful way to provide locale-specific information. It is done via the <code>std::locale</code> class, the container that holds all the required information about a specific culture, such as number formatting patterns, date and time formatting, currency, case conversion etc.</p>
+<p>All this information is provided by facets, special classes derived from the <code>std::locale::facet</code> base class. Such facets are packed into the <code>std::locale</code> class and allow you to provide arbitrary information about the locale. The <code>std::locale</code> class keeps reference counters on installed facets and can be efficiently copied.</p>
+<p>Each facet that was installed into the <code>std::locale</code> object can be fetched using the <code>std::use_facet</code> function. For example, the <code>std::ctype&lt;Char&gt;</code> facet provides rules for case conversion, so you can convert a character to upper-case like this:</p>
+<div class="fragment"><pre class="fragment">std::ctype&lt;char&gt; <span class="keyword">const</span> &amp;ctype_facet = std::use_facet&lt;std::ctype&lt;char&gt; &gt;(some_locale);
+<span class="keywordtype">char</span> upper_a = ctype_facet.toupper(<span class="charliteral">&#39;a&#39;</span>);
+</pre></div><p>A locale object can be imbued into an <code>iostream</code> so it would format information according to the locale:</p>
+<div class="fragment"><pre class="fragment">cout.imbue(std::locale(<span class="stringliteral">&quot;en_US.UTF-8&quot;</span>));
+cout &lt;&lt; 1345.45 &lt;&lt; endl;
+cout.imbue(std::locale(<span class="stringliteral">&quot;ru_RU.UTF-8&quot;</span>));
+cout &lt;&lt; 1345.45 &lt;&lt; endl;
+</pre></div><p>Would display:</p>
+<div class="fragment"><pre class="fragment">
+ 1,345.45 1.345,45
+</pre></div><p>You can also create your own facets and install them into existing locale objects. For example:</p>
+<div class="fragment"><pre class="fragment"> <span class="keyword">class </span>measure : <span class="keyword">public</span> std::locale::facet {
+ <span class="keyword">public</span>:
+ <span class="keyword">typedef</span> <span class="keyword">enum</span> { inches, ... } measure_type;
+ measure(measure_type m,<span class="keywordtype">size_t</span> refs=0)
+ double from_metric(<span class="keywordtype">double</span> value) const;
+ std::<span class="keywordtype">string</span> name() const;
+ ...
+ };
+</pre></div><p> And now you can simply provide this information to a locale:</p>
+<div class="fragment"><pre class="fragment"> std::locale::global(std::locale(std::locale(<span class="stringliteral">&quot;en_US.UTF-8&quot;</span>),<span class="keyword">new</span> measure(measure::inches)));
+ <span class="comment">/// Create default locale built from en_US locale and add paper size facet.</span>
+</pre></div><p>Now you can print a distance according to the correct locale:</p>
+<div class="fragment"><pre class="fragment"> <span class="keywordtype">void</span> print_distance(std::ostream &amp;out,<span class="keywordtype">double</span> value)
+ {
+ measure <span class="keyword">const</span> &amp;m = std::use_facet&lt;measure&gt;(out.getloc());
+ <span class="comment">// Fetch locale information from stream</span>
+ out &lt;&lt; m.from_metric(value) &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; m.name();
+ }
+</pre></div><p>This technique was adopted by the Boost.Locale library in order to provide powerful and correct localization. Instead of using the very limited C++ standard library facets, it uses ICU under the hood to create its own much more powerful ones.</p>
+<h2><a class="anchor" id="std_locales_common"></a>
+Common Critical Problems with the Standard Library</h2>
+<p>There are numerous issues in the standard library that prevent the use of its full power, and there are several additional issues:</p>
+<ul>
+<li>Setting the global locale has bad side effects. <br/>
+ Consider following code: <br/>
+ <div class="fragment"><pre class="fragment"> <span class="keywordtype">int</span> main()
+ {
+ std::locale::global(std::locale(<span class="stringliteral">&quot;&quot;</span>));
+ <span class="comment">// Set system&#39;s default locale as global</span>
+ std::ofstream csv(<span class="stringliteral">&quot;test.csv&quot;</span>);
+ csv &lt;&lt; 1.1 &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; 1.3 &lt;&lt; std::endl;
+ }
+</pre></div> <br/>
+ What would be the content of <code>test.csv</code> ? It may be "1.1,1.3" or it may be "1,1,1,3" rather than what you had expected. <br/>
+ More than that it affects even <code>printf</code> and libraries like <code>boost::lexical_cast</code> giving incorrect or unexpected formatting. In fact many third-party libraries are broken in such a situation. <br/>
+ Unlike the standard localization library, Boost.Locale never changes the basic number formatting, even when it uses <code>std</code> based localization backends, so by default, numbers are always formatted using C-style locale. Localized number formatting requires specific flags. <br/>
+</li>
+<li>Number formatting is broken on some locales. <br/>
+ Some locales use the non-breakable space u00A0 character for thousands separator, thus in <code>ru_RU.UTF-8</code> locale number 1024 should be displayed as "1 024" where the space is a Unicode character with codepoint u00A0. Unfortunately many libraries don't handle this correctly, for example GCC and SunStudio display a "\xC2" character instead of the first character in the UTF-8 sequence "\xC2\xA0" that represents this code point, and actually generate invalid UTF-8. <br/>
+</li>
+<li>Locale names are not standardized. For example, under MSVC you need to provide the name <code>en-US</code> or <code>English_USA.1252</code> , when on POSIX platforms it would be <code>en_US.UTF-8</code> or <code>en_US.ISO-8859-1</code> <br/>
+ More than that, MSVC does not support UTF-8 locales at all. <br/>
+</li>
+<li>Many standard libraries provide only the C and POSIX locales, thus GCC supports localization only under Linux. On all other platforms, attempting to create locales other than "C" or "POSIX" would fail. </li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/structboost_1_1locale_1_1boundary_1_1break__info-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/structboost_1_1locale_1_1boundary_1_1break__info-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::boundary::break_info Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html">boost::locale::boundary::break_info</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a2ad400451f8cf8ca04924a26cb694043">break_info</a>()</td><td><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html">boost::locale::boundary::break_info</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#ab2012ba50dc8730bf7e2b448fff8be33">break_info</a>(size_t v)</td><td><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html">boost::locale::boundary::break_info</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a47cdf1764bf8e294ea8a1079501a8c44">offset</a></td><td><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html">boost::locale::boundary::break_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a6ef38e6f115ed9121e4d8f6189f6c4e2">operator&lt;</a>(break_info const &amp;other) const </td><td><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html">boost::locale::boundary::break_info</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a1a9b497daacb471f297682101696f4eb">rule</a></td><td><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html">boost::locale::boundary::break_info</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/structboost_1_1locale_1_1boundary_1_1break__info.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/structboost_1_1locale_1_1boundary_1_1break__info.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,202 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::boundary::break_info Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1boundary.html">boundary</a> </li>
+ <li><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html">boost::locale::boundary::break_info</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions &#124;
+Public Attributes </div>
+ <div class="headertitle">
+<h1>boost::locale::boundary::break_info Struct Reference<br/>
+<small>
+[<a class="el" href="group__boundary.html">Boundary Analysis</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::boundary::break_info" -->
+<p>This structure is used for representing boundary point that follows the offset.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="facets_8hpp_source.html">boost/locale/boundary/facets.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a2ad400451f8cf8ca04924a26cb694043">break_info</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#ab2012ba50dc8730bf7e2b448fff8be33">break_info</a> (size_t v)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a6ef38e6f115ed9121e4d8f6189f6c4e2">operator&lt;</a> (<a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html">break_info</a> const &amp;other) const </td></tr>
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a47cdf1764bf8e294ea8a1079501a8c44">offset</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a1a9b497daacb471f297682101696f4eb">rule</a></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This structure is used for representing boundary point that follows the offset. </p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a2ad400451f8cf8ca04924a26cb694043"></a><!-- doxytag: member="boost::locale::boundary::break_info::break_info" ref="a2ad400451f8cf8ca04924a26cb694043" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::boundary::break_info::break_info </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create empty break point at beginning </p>
+
+</div>
+</div>
+<a class="anchor" id="ab2012ba50dc8730bf7e2b448fff8be33"></a><!-- doxytag: member="boost::locale::boundary::break_info::break_info" ref="ab2012ba50dc8730bf7e2b448fff8be33" args="(size_t v)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::boundary::break_info::break_info </td>
+ <td>(</td>
+ <td class="paramtype">size_t&nbsp;</td>
+ <td class="paramname"> <em>v</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create empty break point at offset v. it is useful for order comparison with other points. </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a6ef38e6f115ed9121e4d8f6189f6c4e2"></a><!-- doxytag: member="boost::locale::boundary::break_info::operator&lt;" ref="a6ef38e6f115ed9121e4d8f6189f6c4e2" args="(break_info const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::boundary::break_info::operator&lt; </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html">break_info</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Compare two break points' offset. Allows to search with standard algorithms over the index. </p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a47cdf1764bf8e294ea8a1079501a8c44"></a><!-- doxytag: member="boost::locale::boundary::break_info::offset" ref="a47cdf1764bf8e294ea8a1079501a8c44" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">size_t <a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a47cdf1764bf8e294ea8a1079501a8c44">boost::locale::boundary::break_info::offset</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Offset from the beggining of the text where a break occurs. </p>
+
+</div>
+</div>
+<a class="anchor" id="a1a9b497daacb471f297682101696f4eb"></a><!-- doxytag: member="boost::locale::boundary::break_info::rule" ref="a1a9b497daacb471f297682101696f4eb" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> <a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html#a1a9b497daacb471f297682101696f4eb">boost::locale::boundary::break_info::rule</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The identification of this break point according to various break types </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>boost/locale/boundary/<a class="el" href="facets_8hpp_source.html">facets.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/structboost_1_1locale_1_1comparator-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/structboost_1_1locale_1_1comparator-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::comparator&lt; CharType, default_level &gt; Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structboost_1_1locale_1_1comparator.html">boost::locale::comparator&lt; CharType, default_level &gt;</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1comparator.html#af40ee48c6c93b6e5d91492a3e0cb96a8">comparator</a>(std::locale const &amp;l=std::locale(), collator_base::level_type level=default_level)</td><td><a class="el" href="structboost_1_1locale_1_1comparator.html">boost::locale::comparator&lt; CharType, default_level &gt;</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1comparator.html#abd62dbc2af0eb6e6c261a7c88e09f752">operator()</a>(std::basic_string&lt; CharType &gt; const &amp;left, std::basic_string&lt; CharType &gt; const &amp;right) const </td><td><a class="el" href="structboost_1_1locale_1_1comparator.html">boost::locale::comparator&lt; CharType, default_level &gt;</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/structboost_1_1locale_1_1comparator.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/structboost_1_1locale_1_1comparator.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::comparator&lt; CharType, default_level &gt; Struct Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="structboost_1_1locale_1_1comparator.html">boost::locale::comparator&lt; CharType, default_level &gt;</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions </div>
+ <div class="headertitle">
+<h1>boost::locale::comparator&lt; CharType, default_level &gt; Struct Template Reference<br/>
+<small>
+[<a class="el" href="group__collation.html">Collation</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::comparator" -->
+<p>This class can be used in STL algorithms and containers for comparison of strings with a level other than primary.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="collator_8hpp_source.html">boost/locale/collator.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1comparator.html#af40ee48c6c93b6e5d91492a3e0cb96a8">comparator</a> (std::locale const &amp;l=std::locale(), <a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">collator_base::level_type</a> level=default_level)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1comparator.html#abd62dbc2af0eb6e6c261a7c88e09f752">operator()</a> (std::basic_string&lt; CharType &gt; const &amp;left, std::basic_string&lt; CharType &gt; const &amp;right) const </td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;typename CharType, collator_base::level_type default_level = collator_base::identical&gt;<br/>
+ struct boost::locale::comparator&lt; CharType, default_level &gt;</h3>
+
+<p>This class can be used in STL algorithms and containers for comparison of strings with a level other than primary. </p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"> std::map&lt;std::string,std::string,comparator&lt;char,collator_base::secondary&gt; &gt; data;
+</pre></div><p>Would create a map the keys of which are sorted using secondary collation level </p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="af40ee48c6c93b6e5d91492a3e0cb96a8"></a><!-- doxytag: member="boost::locale::comparator::comparator" ref="af40ee48c6c93b6e5d91492a3e0cb96a8" args="(std::locale const &amp;l=std::locale(), collator_base::level_type level=default_level)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType , collator_base::level_type default_level = collator_base::identical&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1comparator.html">boost::locale::comparator</a>&lt; CharType, default_level &gt;::<a class="el" href="structboost_1_1locale_1_1comparator.html">comparator</a> </td>
+ <td>(</td>
+ <td class="paramtype">std::locale const &amp;&nbsp;</td>
+ <td class="paramname"> <em>l</em> = <code>std::locale()</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">collator_base::level_type</a>&nbsp;</td>
+ <td class="paramname"> <em>level</em> = <code>default_level</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a comparator class for locale <em>l</em> and with collation leval <em>level</em> </p>
+<dl class="note"><dt><b>Note:</b></dt><dd>throws std::bad_cast if l does not have <a class="el" href="classboost_1_1locale_1_1collator.html">collator</a> facet installed </dd></dl>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="abd62dbc2af0eb6e6c261a7c88e09f752"></a><!-- doxytag: member="boost::locale::comparator::operator()" ref="abd62dbc2af0eb6e6c261a7c88e09f752" args="(std::basic_string&lt; CharType &gt; const &amp;left, std::basic_string&lt; CharType &gt; const &amp;right) const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename CharType , collator_base::level_type default_level = collator_base::identical&gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="structboost_1_1locale_1_1comparator.html">boost::locale::comparator</a>&lt; CharType, default_level &gt;::operator() </td>
+ <td>(</td>
+ <td class="paramtype">std::basic_string&lt; CharType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">std::basic_string&lt; CharType &gt; const &amp;&nbsp;</td>
+ <td class="paramname"> <em>right</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Compare two strings -- equivalent to return left &lt; right according to collation rules </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="collator_8hpp_source.html">collator.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/structboost_1_1locale_1_1date__time__period-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/structboost_1_1locale_1_1date__time__period-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::date_time_period Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structboost_1_1locale_1_1date__time__period.html">boost::locale::date_time_period</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1date__time__period.html#a61b11b2243098412dddd804ca7e104af">date_time_period</a>(period::period_type f=period::period_type(), int v=1)</td><td><a class="el" href="structboost_1_1locale_1_1date__time__period.html">boost::locale::date_time_period</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1date__time__period.html#a219fa833071824e308a45dc44384fb99">operator+</a>() const </td><td><a class="el" href="structboost_1_1locale_1_1date__time__period.html">boost::locale::date_time_period</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1date__time__period.html#ab3937bd69fcfeac096dceeee0f13437e">operator-</a>() const </td><td><a class="el" href="structboost_1_1locale_1_1date__time__period.html">boost::locale::date_time_period</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1date__time__period.html#aa6511600eb5264c8597f700668e9c628">type</a></td><td><a class="el" href="structboost_1_1locale_1_1date__time__period.html">boost::locale::date_time_period</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1date__time__period.html#aec776b16ed46a22833308a4112886ca4">value</a></td><td><a class="el" href="structboost_1_1locale_1_1date__time__period.html">boost::locale::date_time_period</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/structboost_1_1locale_1_1date__time__period.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/structboost_1_1locale_1_1date__time__period.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,198 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::date_time_period Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="structboost_1_1locale_1_1date__time__period.html">boost::locale::date_time_period</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions &#124;
+Public Attributes </div>
+ <div class="headertitle">
+<h1>boost::locale::date_time_period Struct Reference<br/>
+<small>
+[<a class="el" href="group__date__time.html">Date, Time, Timezone and Calendar manipulations</a>]</small>
+</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::date_time_period" -->
+<p>This class represents a pair of period_type and the integer values that describes its amount. For example 3 days or 4 years.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="date__time_8hpp_source.html">boost/locale/date_time.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1date__time__period.html#a219fa833071824e308a45dc44384fb99">operator+</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1date__time__period.html#ab3937bd69fcfeac096dceeee0f13437e">operator-</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1date__time__period.html#a61b11b2243098412dddd804ca7e104af">date_time_period</a> (<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a> f=<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>(), int v=1)</td></tr>
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa6511600eb5264c8597f700668e9c628"></a><!-- doxytag: member="boost::locale::date_time_period::type" ref="aa6511600eb5264c8597f700668e9c628" args="" -->
+<a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1date__time__period.html#aa6511600eb5264c8597f700668e9c628">type</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The type of period, i.e. era, year, day etc. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1date__time__period.html#aec776b16ed46a22833308a4112886ca4">value</a></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This class represents a pair of period_type and the integer values that describes its amount. For example 3 days or 4 years. </p>
+<p>Usually obtained as product of period_type and integer or my calling a representative functions For example day()*3 == <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a>(day(),3) == day(3) </p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a61b11b2243098412dddd804ca7e104af"></a><!-- doxytag: member="boost::locale::date_time_period::date_time_period" ref="a61b11b2243098412dddd804ca7e104af" args="(period::period_type f=period::period_type(), int v=1)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::date_time_period::date_time_period </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>&nbsp;</td>
+ <td class="paramname"> <em>f</em> = <code><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html">period::period_type</a>()</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>v</em> = <code>1</code></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Constructor that creates <a class="el" href="structboost_1_1locale_1_1date__time__period.html" title="This class represents a pair of period_type and the integer values that describes its amount...">date_time_period</a> from period_type <em>f</em> and a value <em>v</em> -- default 1. </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a219fa833071824e308a45dc44384fb99"></a><!-- doxytag: member="boost::locale::date_time_period::operator+" ref="a219fa833071824e308a45dc44384fb99" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::date_time_period::operator+ </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Operator + returns copy of itself </p>
+
+</div>
+</div>
+<a class="anchor" id="ab3937bd69fcfeac096dceeee0f13437e"></a><!-- doxytag: member="boost::locale::date_time_period::operator&#45;" ref="ab3937bd69fcfeac096dceeee0f13437e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1date__time__period.html">date_time_period</a> boost::locale::date_time_period::operator- </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Operator -, switches the sign of period </p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="aec776b16ed46a22833308a4112886ca4"></a><!-- doxytag: member="boost::locale::date_time_period::value" ref="aec776b16ed46a22833308a4112886ca4" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="structboost_1_1locale_1_1date__time__period.html#aec776b16ed46a22833308a4112886ca4">boost::locale::date_time_period::value</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The value the actual number of <em>periods</em> </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="date__time_8hpp_source.html">date_time.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/structboost_1_1locale_1_1gnu__gettext_1_1messages__info-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/structboost_1_1locale_1_1gnu__gettext_1_1messages__info-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::gnu_gettext::messages_info Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a63bd8b01ca532a2657186bab3fa396a2">callback</a></td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4dfe37c5a392e5106e65b396a5288b76">callback_type</a> typedef</td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ae939e0c5dbabba7fb4cc2872f4e7dac2">country</a></td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a1ca79b90b4b8dbc924e5eb1b42188311">domains</a></td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ac3bfe22cf949ed3f87ee28fa0c983502">domains_type</a> typedef</td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4a7406581c6c7975c90db9d2d157d384">encoding</a></td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a1afc3be03d4848042e3208d4ca5aec85">language</a></td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a39ea1cfd018c7702d94d03e76042ff10">locale_category</a></td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><b>messages_info</b>() (defined in <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a>)</td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a263d9d2c359ae7730e6d5bba54bb3022">paths</a></td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#af543a11d3ff1d12e24c06306b30f8fb8">variant</a></td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,237 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::gnu_gettext::messages_info Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1gnu__gettext.html">gnu_gettext</a> </li>
+ <li><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Classes &#124;
+Public Types &#124;
+Public Attributes </div>
+ <div class="headertitle">
+<h1>boost::locale::gnu_gettext::messages_info Struct Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::gnu_gettext::messages_info" -->
+<p>This structure holds all information required for creating gnu-gettext message catalogs,.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="gnu__gettext_8hpp_source.html">boost/locale/gnu_gettext.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">domain</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This type represents GNU Gettext domain name for the messages. More...<br/></td></tr>
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">domain</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ac3bfe22cf949ed3f87ee28fa0c983502">domains_type</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef function&lt; std::vector<br class="typebreak"/>
+&lt; char &gt; std::string const <br class="typebreak"/>
+&amp;file_name, std::string const <br class="typebreak"/>
+&amp;<a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4a7406581c6c7975c90db9d2d157d384">encoding</a>) &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4dfe37c5a392e5106e65b396a5288b76">callback_type</a></td></tr>
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1afc3be03d4848042e3208d4ca5aec85"></a><!-- doxytag: member="boost::locale::gnu_gettext::messages_info::language" ref="a1afc3be03d4848042e3208d4ca5aec85" args="" -->
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a1afc3be03d4848042e3208d4ca5aec85">language</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The language we load the catalog for, like "ru", "en", "de". <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae939e0c5dbabba7fb4cc2872f4e7dac2"></a><!-- doxytag: member="boost::locale::gnu_gettext::messages_info::country" ref="ae939e0c5dbabba7fb4cc2872f4e7dac2" args="" -->
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ae939e0c5dbabba7fb4cc2872f4e7dac2">country</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The country we load the catalog for, like "US", "IL". <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af543a11d3ff1d12e24c06306b30f8fb8"></a><!-- doxytag: member="boost::locale::gnu_gettext::messages_info::variant" ref="af543a11d3ff1d12e24c06306b30f8fb8" args="" -->
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#af543a11d3ff1d12e24c06306b30f8fb8">variant</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Language variant, like "euro" so it would look for catalog like de_DE_at_euro. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4a7406581c6c7975c90db9d2d157d384">encoding</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a39ea1cfd018c7702d94d03e76042ff10">locale_category</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ac3bfe22cf949ed3f87ee28fa0c983502">domains_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a1ca79b90b4b8dbc924e5eb1b42188311">domains</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a263d9d2c359ae7730e6d5bba54bb3022">paths</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4dfe37c5a392e5106e65b396a5288b76">callback_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a63bd8b01ca532a2657186bab3fa396a2">callback</a></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This structure holds all information required for creating gnu-gettext message catalogs,. </p>
+<p>The user is expected to set its parameters to load these catalogs correctly. This structure also allows providing functions for charset conversion. Note, you need to provide them, so this structure is not useful for wide characters without subclassing and it will also ignore gettext catalogs that use a charset different from <em>encoding</em>. </p>
+<hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="a4dfe37c5a392e5106e65b396a5288b76"></a><!-- doxytag: member="boost::locale::gnu_gettext::messages_info::callback_type" ref="a4dfe37c5a392e5106e65b396a5288b76" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef function&lt; std::vector&lt;char&gt; std::string const &amp;file_name, std::string const &amp;<a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4a7406581c6c7975c90db9d2d157d384">encoding</a> ) &gt; <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4dfe37c5a392e5106e65b396a5288b76">boost::locale::gnu_gettext::messages_info::callback_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The callback for custom file system support. This callback should read the file named <em>file_name</em> encoded in <em>encoding</em> character set into std::vector&lt;char&gt; and return it.</p>
+<ul>
+<li>If the file does not exist, it should return an empty vector.</li>
+<li>If a error occurs during file read it should throw a error.</li>
+</ul>
+<dl class="note"><dt><b>Note:</b></dt><dd>The user should support only the encodings the locales are created for. So if the user uses only one encoding or the file system is encoding agnostic, he may ignore the <em>encoding</em> parameter. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ac3bfe22cf949ed3f87ee28fa0c983502"></a><!-- doxytag: member="boost::locale::gnu_gettext::messages_info::domains_type" ref="ac3bfe22cf949ed3f87ee28fa0c983502" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef std::vector&lt;<a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">domain</a>&gt; <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ac3bfe22cf949ed3f87ee28fa0c983502">boost::locale::gnu_gettext::messages_info::domains_type</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Type that defines a list of domains that are loaded The first one is the default one </p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a63bd8b01ca532a2657186bab3fa396a2"></a><!-- doxytag: member="boost::locale::gnu_gettext::messages_info::callback" ref="a63bd8b01ca532a2657186bab3fa396a2" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4dfe37c5a392e5106e65b396a5288b76">callback_type</a> <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a63bd8b01ca532a2657186bab3fa396a2">boost::locale::gnu_gettext::messages_info::callback</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>The callback for handling custom file systems, if it is empty, the real OS file-system is being used. </p>
+
+</div>
+</div>
+<a class="anchor" id="a1ca79b90b4b8dbc924e5eb1b42188311"></a><!-- doxytag: member="boost::locale::gnu_gettext::messages_info::domains" ref="a1ca79b90b4b8dbc924e5eb1b42188311" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#ac3bfe22cf949ed3f87ee28fa0c983502">domains_type</a> <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a1ca79b90b4b8dbc924e5eb1b42188311">boost::locale::gnu_gettext::messages_info::domains</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Message domains - application name, like my_app. So files named my_app.mo would be loaded </p>
+
+</div>
+</div>
+<a class="anchor" id="a4a7406581c6c7975c90db9d2d157d384"></a><!-- doxytag: member="boost::locale::gnu_gettext::messages_info::encoding" ref="a4a7406581c6c7975c90db9d2d157d384" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a4a7406581c6c7975c90db9d2d157d384">boost::locale::gnu_gettext::messages_info::encoding</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Required target charset encoding. Ignored for wide characters. For narrow, should specify the correct encoding required for this catalog </p>
+
+</div>
+</div>
+<a class="anchor" id="a39ea1cfd018c7702d94d03e76042ff10"></a><!-- doxytag: member="boost::locale::gnu_gettext::messages_info::locale_category" ref="a39ea1cfd018c7702d94d03e76042ff10" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::string <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a39ea1cfd018c7702d94d03e76042ff10">boost::locale::gnu_gettext::messages_info::locale_category</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Locale category, is set by default to LC_MESSAGES, but may be changed </p>
+
+</div>
+</div>
+<a class="anchor" id="a263d9d2c359ae7730e6d5bba54bb3022"></a><!-- doxytag: member="boost::locale::gnu_gettext::messages_info::paths" ref="a263d9d2c359ae7730e6d5bba54bb3022" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">std::vector&lt;std::string&gt; <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html#a263d9d2c359ae7730e6d5bba54bb3022">boost::locale::gnu_gettext::messages_info::paths</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Paths to search files in. Under MS Windows it uses encoding parameter to convert them to wide OS specific paths. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="gnu__gettext_8hpp_source.html">gnu_gettext.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::gnu_gettext::messages_info::domain Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">boost::locale::gnu_gettext::messages_info::domain</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><b>domain</b>() (defined in <a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">boost::locale::gnu_gettext::messages_info::domain</a>)</td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">boost::locale::gnu_gettext::messages_info::domain</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a08bbb38698a079239430066b688d28ab">domain</a>(std::string const &amp;n)</td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">boost::locale::gnu_gettext::messages_info::domain</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a7004c3d4bb7ff1ebdba50535723d84a5">encoding</a></td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">boost::locale::gnu_gettext::messages_info::domain</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#ae2d68e6e122c01aa07e60142d8af54fc">name</a></td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">boost::locale::gnu_gettext::messages_info::domain</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a26442fe81a0ce8c51775b1267455ecbe">operator!=</a>(domain const &amp;other) const </td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">boost::locale::gnu_gettext::messages_info::domain</a></td><td><code> [inline]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a4a361b37db81571d440f0ec4d1e9038f">operator==</a>(domain const &amp;other) const </td><td><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">boost::locale::gnu_gettext::messages_info::domain</a></td><td><code> [inline]</code></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,181 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::gnu_gettext::messages_info::domain Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="namespaceboost_1_1locale_1_1gnu__gettext.html">gnu_gettext</a> </li>
+ <li><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html">boost::locale::gnu_gettext::messages_info</a> </li>
+ <li><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">boost::locale::gnu_gettext::messages_info::domain</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Member Functions &#124;
+Public Attributes </div>
+ <div class="headertitle">
+<h1>boost::locale::gnu_gettext::messages_info::domain Struct Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::gnu_gettext::messages_info::domain" -->
+<p>This type represents GNU Gettext domain name for the messages.
+More...</p>
+
+<p><code>#include &lt;<a class="el" href="gnu__gettext_8hpp_source.html">boost/locale/gnu_gettext.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a08bbb38698a079239430066b688d28ab">domain</a> (std::string const &amp;n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a4a361b37db81571d440f0ec4d1e9038f">operator==</a> (<a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">domain</a> const &amp;other) const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a26442fe81a0ce8c51775b1267455ecbe">operator!=</a> (<a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">domain</a> const &amp;other) const </td></tr>
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae2d68e6e122c01aa07e60142d8af54fc"></a><!-- doxytag: member="boost::locale::gnu_gettext::messages_info::domain::name" ref="ae2d68e6e122c01aa07e60142d8af54fc" args="" -->
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#ae2d68e6e122c01aa07e60142d8af54fc">name</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The name of the domain. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7004c3d4bb7ff1ebdba50535723d84a5"></a><!-- doxytag: member="boost::locale::gnu_gettext::messages_info::domain::encoding" ref="a7004c3d4bb7ff1ebdba50535723d84a5" args="" -->
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html#a7004c3d4bb7ff1ebdba50535723d84a5">encoding</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The character encoding for the domain. <br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>This type represents GNU Gettext domain name for the messages. </p>
+<p>It consists of two parameters:</p>
+<ul>
+<li>name - the name of the domain - used for opening the file name</li>
+<li>encoding - the encoding of the keys in the sources, default - UTF-8 </li>
+</ul>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a08bbb38698a079239430066b688d28ab"></a><!-- doxytag: member="boost::locale::gnu_gettext::messages_info::domain::domain" ref="a08bbb38698a079239430066b688d28ab" args="(std::string const &amp;n)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">boost::locale::gnu_gettext::messages_info::domain::domain </td>
+ <td>(</td>
+ <td class="paramtype">std::string const &amp;&nbsp;</td>
+ <td class="paramname"> <em>n</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Create a domain object from the name that can hold an encoding after symbol "/" such that if n is "hello/cp1255" then the name would be "hello" and "encoding" would be "cp1255" and if n is "hello" then the name would be the same but encoding would be "UTF-8" </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a26442fe81a0ce8c51775b1267455ecbe"></a><!-- doxytag: member="boost::locale::gnu_gettext::messages_info::domain::operator!=" ref="a26442fe81a0ce8c51775b1267455ecbe" args="(domain const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::gnu_gettext::messages_info::domain::operator!= </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">domain</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Check whether two objects are distinct, only names are compared, encoding is ignored </p>
+
+</div>
+</div>
+<a class="anchor" id="a4a361b37db81571d440f0ec4d1e9038f"></a><!-- doxytag: member="boost::locale::gnu_gettext::messages_info::domain::operator==" ref="a4a361b37db81571d440f0ec4d1e9038f" args="(domain const &amp;other) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool boost::locale::gnu_gettext::messages_info::domain::operator== </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html">domain</a> const &amp;&nbsp;</td>
+ <td class="paramname"> <em>other</em></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Check whether two objects are equivalent, only names are compared, encoding is ignored </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="gnu__gettext_8hpp_source.html">gnu_gettext.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/structboost_1_1locale_1_1posix__time-members.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/structboost_1_1locale_1_1posix__time-members.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost::locale::posix_time Member List</h1> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="structboost_1_1locale_1_1posix__time.html">boost::locale::posix_time</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1posix__time.html#aaa1f72a3f4313cd079b08375132c794d">nanoseconds</a></td><td><a class="el" href="structboost_1_1locale_1_1posix__time.html">boost::locale::posix_time</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="structboost_1_1locale_1_1posix__time.html#a8209978ee423c6396d8179505ec5fa78">seconds</a></td><td><a class="el" href="structboost_1_1locale_1_1posix__time.html">boost::locale::posix_time</a></td><td></td></tr>
+</table></div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/structboost_1_1locale_1_1posix__time.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/structboost_1_1locale_1_1posix__time.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost::locale::posix_time Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li class="current">Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>Class List</li>
+ <li>Class Hierarchy</li>
+ <li>Class Members</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><b>boost</b> </li>
+ <li><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
+ <li><a class="el" href="structboost_1_1locale_1_1posix__time.html">boost::locale::posix_time</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+Public Attributes </div>
+ <div class="headertitle">
+<h1>boost::locale::posix_time Struct Reference</h1> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="boost::locale::posix_time" -->
+<p><code>#include &lt;<a class="el" href="date__time__facet_8hpp_source.html">boost/locale/date_time_facet.hpp</a>&gt;</code></p>
+
+<p>List of all members.</p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8209978ee423c6396d8179505ec5fa78"></a><!-- doxytag: member="boost::locale::posix_time::seconds" ref="a8209978ee423c6396d8179505ec5fa78" args="" -->
+int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1posix__time.html#a8209978ee423c6396d8179505ec5fa78">seconds</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Seconds since epoch. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaa1f72a3f4313cd079b08375132c794d"></a><!-- doxytag: member="boost::locale::posix_time::nanoseconds" ref="aaa1f72a3f4313cd079b08375132c794d" args="" -->
+uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1locale_1_1posix__time.html#aaa1f72a3f4313cd079b08375132c794d">nanoseconds</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nanoseconds resolution. <br/></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Structure that define POSIX time, seconds and milliseconds since Jan 1, 1970, 00:00 not including leap seconds. </p>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>boost/locale/<a class="el" href="date__time__facet_8hpp_source.html">date_time_facet.hpp</a></li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/tab_a.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/tab_b.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/tab_h.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/tab_s.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/html/tabs.css
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/tabs.css 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,59 @@
+.tabs, .tabs2, .tabs3 {
+ background-image: url('tab_b.png');
+ width: 100%;
+ z-index: 101;
+ font-size: 13px;
+}
+
+.tabs2 {
+ font-size: 10px;
+}
+.tabs3 {
+ font-size: 9px;
+}
+
+.tablist {
+ margin: 0;
+ padding: 0;
+ display: table;
+}
+
+.tablist li {
+ float: left;
+ display: table-cell;
+ background-image: url('tab_b.png');
+ line-height: 36px;
+ list-style: none;
+}
+
+.tablist a {
+ display: block;
+ padding: 0 20px;
+ font-weight: bold;
+ background-image:url('tab_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color: #283A5D;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+ outline: none;
+}
+
+.tabs3 .tablist a {
+ padding: 0 10px;
+}
+
+.tablist a:hover {
+ background-image: url('tab_h.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+ text-decoration: none;
+}
+
+.tablist li.current a {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}

Added: trunk/libs/locale/doc/html/tested_compilers_and_paltforms.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/tested_compilers_and_paltforms.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Tested Compilers and Platforms</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="appendix.html">Appendix</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Tested Compilers and Platforms </h1> </div>
+</div>
+<div class="contents">
+<table border="1" cellpadding="5" cellspacing="3">
+<tr>
+<th>Platform</th><th>Compiler</th><th>Backends</th><th>ICU version</th><th>Notes </th></tr>
+<tr>
+<td>Linux 2.6 x86_64</td><td>GCC-4.3</td><td>icu/posix/std</td><td>3.8, 4.4, 4.6</td><td>- </td></tr>
+<tr>
+<td>Linux 2.6 x86</td><td>GCC-4.1</td><td>icu/posix/std</td><td>3.6</td><td>(not tested recently) </td></tr>
+<tr>
+<td>Linux 2.6 x86_64</td><td>GCC-4.4</td><td>icu/posix/std</td><td>4.2</td><td>- </td></tr>
+<tr>
+<td>Linux 2.6 x86_64</td><td>GCC-4.5/C++0x</td><td>icu/posix/std</td><td>3.8</td><td>- </td></tr>
+<tr>
+<td>Linux 2.6 x86_64</td><td>GCC-4.6</td><td>icu/posix/std</td><td>4.2, 4.6</td><td>- </td></tr>
+<tr>
+<td>Linux 2.6 x86_64</td><td>GCC-4.6/C++0x</td><td>icu/posix/std</td><td>4.2, 4.6</td><td>- </td></tr>
+<tr>
+<td>Linux 2.6 x86_64</td><td>GCC-4.5/C++0x with char16_t/char32_t</td><td>icu</td><td>3.8 </td><td>Some charXX_t faults in formatting<br/>
+ std backend can't be build<br/>
+ Standard library issues </td></tr>
+<tr>
+<td>Linux 2.6 x86_64</td><td>Intel 11.0</td><td>icu/posix/std</td><td>3.8</td><td>- </td></tr>
+<tr>
+<td>Windows 7 32bit</td><td>MSVC 2010</td><td>icu/winapi/std</td><td>4.6</td><td>- </td></tr>
+<tr>
+<td>Windows 7 32bit</td><td>MSVC 2010/C++0x with char16_t/char32_t</td><td>icu/winapi/std</td><td>4.6 </td><td>Multiple test faults, because char16_t/char32_t are not defined as distinct types as required by C++ standard. </td></tr>
+<tr>
+<td>Windows XP 32bit</td><td>MSVC 2008</td><td>icu/winapi/std</td><td>4.2</td><td>- </td></tr>
+<tr>
+<td>Windows XP 32bit</td><td>MinGW/GCC 4.5</td><td>icu/winapi/std</td><td>4.2</td><td>- </td></tr>
+<tr>
+<td>Cygwin 1.7</td><td>GCC 4.3</td><td>icu/winapi/std</td><td>3.8</td><td>- </td></tr>
+<tr>
+<td>Mac OS X 10.6.4</td><td>GCC-4.2</td><td>icu/posix/std</td><td>4.4</td><td>- </td></tr>
+<tr>
+<td>FreeBSD 8.0</td><td>GCC-4.2.1</td><td>icu/std</td><td>3.8</td><td>- </td></tr>
+<tr>
+<td>OpenSolaris/SunOS 5.11</td><td>GCC-3.4</td><td>icu/std</td><td>4.2</td><td>iconv is disabled </td></tr>
+<tr>
+<td>OpenSolaris/SunOS 5.11</td><td>SunCC 5.10/STLport4</td><td>icu</td><td>4.2 </td><td>Some faults in collation, STLport issue<br/>
+ iconv is disabled<br/>
+ Boost-1.46.x requires patch for Boost.Thread, can be found in <code>libs/locale/build</code> </td></tr>
+</table>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/time__zone_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/time__zone_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/time_zone.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/time_zone.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_TIME_ZONE_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_TIME_ZONE_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00018"></a>00018
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020 <span class="keyword">namespace </span>boost {
+<a name="l00021"></a>00021 <span class="keyword">namespace </span>locale {
+<a name="l00026"></a>00026
+<a name="l00031"></a><a class="code" href="namespaceboost_1_1locale_1_1time__zone.html">00031</a> <span class="keyword">namespace </span><a class="code" href="group__manipulators.html#gad51fbdc634fe0c81e5183915e9eeb238">time_zone</a> {
+<a name="l00035"></a>00035 BOOST_LOCALE_DECL std::string <a class="code" href="namespaceboost_1_1locale_1_1time__zone.html#a41f0e37ead92b29f6d09377070bbe398">global</a>();
+<a name="l00039"></a>00039 BOOST_LOCALE_DECL std::string <a class="code" href="namespaceboost_1_1locale_1_1time__zone.html#a41f0e37ead92b29f6d09377070bbe398">global</a>(std::string <span class="keyword">const</span> &amp;new_tz);
+<a name="l00040"></a>00040 }
+<a name="l00041"></a>00041
+<a name="l00043"></a>00043
+<a name="l00044"></a>00044 } <span class="comment">// locale</span>
+<a name="l00045"></a>00045 } <span class="comment">// boost</span>
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00050"></a>00050 <span class="preprocessor"></span>
+<a name="l00051"></a>00051
+<a name="l00052"></a>00052 <span class="preprocessor">#endif</span>
+<a name="l00053"></a>00053 <span class="preprocessor"></span>
+<a name="l00054"></a>00054 <span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/tree.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/tree.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,245 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+ <meta http-equiv="Content-Style-Type" content="text/css" />
+ <meta http-equiv="Content-Language" content="en" />
+ <link rel="stylesheet" href="doxygen.css"/>
+ <title>TreeView</title>
+ <script type="text/javascript">
+ <!-- // Hide script from old browsers
+
+ function toggleFolder(id, imageNode)
+ {
+ var folder = document.getElementById(id);
+ var l = imageNode.src.length;
+ if (imageNode.src.substring(l-20,l)=="ftv2folderclosed.png" ||
+ imageNode.src.substring(l-18,l)=="ftv2folderopen.png")
+ {
+ imageNode = imageNode.previousSibling;
+ l = imageNode.src.length;
+ }
+ if (folder == null)
+ {
+ }
+ else if (folder.style.display == "block")
+ {
+ if (imageNode != null)
+ {
+ imageNode.nextSibling.src = "ftv2folderclosed.png";
+ if (imageNode.src.substring(l-13,l) == "ftv2mnode.png")
+ {
+ imageNode.src = "ftv2pnode.png";
+ }
+ else if (imageNode.src.substring(l-17,l) == "ftv2mlastnode.png")
+ {
+ imageNode.src = "ftv2plastnode.png";
+ }
+ }
+ folder.style.display = "none";
+ }
+ else
+ {
+ if (imageNode != null)
+ {
+ imageNode.nextSibling.src = "ftv2folderopen.png";
+ if (imageNode.src.substring(l-13,l) == "ftv2pnode.png")
+ {
+ imageNode.src = "ftv2mnode.png";
+ }
+ else if (imageNode.src.substring(l-17,l) == "ftv2plastnode.png")
+ {
+ imageNode.src = "ftv2mlastnode.png";
+ }
+ }
+ folder.style.display = "block";
+ }
+ }
+
+ // End script hiding -->
+ </script>
+ </head>
+
+ <body class="ftvtree">
+ <div class="directory">
+ <h3 class="swap"><span>Boost.Locale</span></h3>
+ <div style="display: block;">
+ <p><img src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('folder1', this)"/><img src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('folder1', this)"/><a class="el" href="main.html" target="basefrm">Boost.Locale</a></p>
+ <div id="folder1">
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="std_locales.html" target="basefrm">Introduction to C++ Standard Library localization support</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('folder2', this)"/><img src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('folder2', this)"/><a class="el" href="using_boost_locale.html" target="basefrm">Using Boost.Locale</a></p>
+ <div id="folder2">
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="locale_gen.html" target="basefrm">Locale Generation</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="collation.html" target="basefrm">Collation</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="conversions.html" target="basefrm">Text Conversions</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="formatting_and_parsing.html" target="basefrm">Numbers, Time and Currency formatting and parsing</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="messages_formatting.html" target="basefrm">Messages Formatting (Translation)</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="charset_handling.html" target="basefrm">Character Set Conversions</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="boundary_analysys.html" target="basefrm">Boundary analysis</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="localized_text_formatting.html" target="basefrm">Localized Text Formatting</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dates_times_timezones.html" target="basefrm">Working with dates, times, timezones and calendars.</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="locale_information.html" target="basefrm">Getting information about the current locale</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="working_with_multiple_locales.html" target="basefrm">Working with multiple locales</a></p>
+ </div>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="using_localization_backends.html" target="basefrm">Using Localization Backends</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="recommendations_and_myths.html" target="basefrm">Recommendations and Myths</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="building_boost_locale.html" target="basefrm">Building The library</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('folder3', this)"/><img src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('folder3', this)"/><a class="el" href="appendix.html" target="basefrm">Appendix</a></p>
+ <div id="folder3">
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rationale.html" target="basefrm">Design Rationale</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="faq.html" target="basefrm">Frequently Asked Questions</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="default_encoding_under_windows.html" target="basefrm">Default Encoding under Microsoft Windows</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="running_examples_under_windows.html" target="basefrm">Running Examples under Microsoft Windows</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="gettext_for_windows.html" target="basefrm">Using Gettext Tools on Windows</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="glossary.html" target="basefrm">Glossary</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="tested_compilers_and_paltforms.html" target="basefrm">Tested Compilers and Platforms</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="status_of_cpp0x_characters_support.html" target="basefrm">Status of C++0x char16_t/char32_t support</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="special_thanks.html" target="basefrm">Special Thanks</a></p>
+ </div>
+ </div>
+ <p><img src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('folder4', this)"/><img src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('folder4', this)"/><a class="el" href="modules.html" target="basefrm">Modules</a></p>
+ <div id="folder4">
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="group__collation.html" target="basefrm">Collation</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="group__convert.html" target="basefrm">Text Conversions</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="group__date__time.html" target="basefrm">Date, Time, Timezone and Calendar manipulations</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="group__codepage.html" target="basefrm">Character conversion functions</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="group__format.html" target="basefrm">Format</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="group__manipulators.html" target="basefrm">I/O Stream manipulators</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="group__message.html" target="basefrm">Message Formatting (translation)</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="group__boundary.html" target="basefrm">Boundary Analysis</a></p>
+ </div>
+ <p><img src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('folder5', this)"/><img src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('folder5', this)"/><a class="el" href="annotated.html" target="basefrm">Class List</a></p>
+ <div id="folder5">
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html" target="basefrm">boost::locale::abstract_calendar</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html" target="basefrm">boost::locale::util::base_converter</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1basic__format.html" target="basefrm">boost::locale::basic_format&lt; CharType &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1basic__message.html" target="basefrm">boost::locale::basic_message&lt; CharType &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html" target="basefrm">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" target="basefrm">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" target="basefrm">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html" target="basefrm">boost::locale::boundary::break_info</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1calendar.html" target="basefrm">boost::locale::calendar</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1calendar__facet.html" target="basefrm">boost::locale::calendar_facet</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1collator.html" target="basefrm">boost::locale::collator&lt; CharType &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1collator__base.html" target="basefrm">boost::locale::collator_base</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="structboost_1_1locale_1_1comparator.html" target="basefrm">boost::locale::comparator&lt; CharType, default_level &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1conv_1_1conversion__error.html" target="basefrm">boost::locale::conv::conversion_error</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1converter.html" target="basefrm">boost::locale::converter&lt; Char &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1converter__base.html" target="basefrm">boost::locale::converter_base</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1date__time.html" target="basefrm">boost::locale::date_time</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1date__time__duration.html" target="basefrm">boost::locale::date_time_duration</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1date__time__error.html" target="basefrm">boost::locale::date_time_error</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="structboost_1_1locale_1_1date__time__period.html" target="basefrm">boost::locale::date_time_period</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html" target="basefrm">boost::locale::date_time_period_set</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html" target="basefrm">boost::locale::gnu_gettext::messages_info::domain</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1generator.html" target="basefrm">boost::locale::generator</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1hold__ptr.html" target="basefrm">boost::locale::hold_ptr&lt; T &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1info.html" target="basefrm">boost::locale::info</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html" target="basefrm">boost::locale::conv::invalid_charset_error</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1ios__info.html" target="basefrm">boost::locale::ios_info</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1localization__backend.html" target="basefrm">boost::locale::localization_backend</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html" target="basefrm">boost::locale::localization_backend_manager</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1message__format.html" target="basefrm">boost::locale::message_format&lt; CharType &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html" target="basefrm">boost::locale::gnu_gettext::messages_info</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" target="basefrm">boost::locale::period::period_type</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="structboost_1_1locale_1_1posix__time.html" target="basefrm">boost::locale::posix_time</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html" target="basefrm">boost::locale::boundary::segment&lt; IteratorType &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" target="basefrm">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></p>
+ </div>
+ <p><img src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('folder6', this)"/><img src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('folder6', this)"/><a class="el" href="hierarchy.html" target="basefrm">Class Hierarchy</a></p>
+ <div id="folder6">
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1abstract__calendar.html" target="basefrm">boost::locale::abstract_calendar</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1util_1_1base__converter.html" target="basefrm">boost::locale::util::base_converter</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1basic__format.html" target="basefrm">boost::locale::basic_format&lt; CharType &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1basic__message.html" target="basefrm">boost::locale::basic_message&lt; CharType &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__indexing.html" target="basefrm">boost::locale::boundary::boundary_indexing&lt; Char &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html" target="basefrm">boost::locale::boundary::boundary_point&lt; IteratorType &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html" target="basefrm">boost::locale::boundary::boundary_point_index&lt; BaseIterator &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="structboost_1_1locale_1_1boundary_1_1break__info.html" target="basefrm">boost::locale::boundary::break_info</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1calendar.html" target="basefrm">boost::locale::calendar</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1calendar__facet.html" target="basefrm">boost::locale::calendar_facet</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('folder7', this)"/><img src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('folder7', this)"/><a class="el" href="classboost_1_1locale_1_1collator__base.html" target="basefrm">boost::locale::collator_base</a></p>
+ <div id="folder7">
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1collator.html" target="basefrm">boost::locale::collator&lt; CharType &gt;</a></p>
+ </div>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="structboost_1_1locale_1_1comparator.html" target="basefrm">boost::locale::comparator&lt; CharType, default_level &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1conv_1_1conversion__error.html" target="basefrm">boost::locale::conv::conversion_error</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('folder8', this)"/><img src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('folder8', this)"/><a class="el" href="classboost_1_1locale_1_1converter__base.html" target="basefrm">boost::locale::converter_base</a></p>
+ <div id="folder8">
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1converter.html" target="basefrm">boost::locale::converter&lt; Char &gt;</a></p>
+ </div>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1date__time.html" target="basefrm">boost::locale::date_time</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1date__time__duration.html" target="basefrm">boost::locale::date_time_duration</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1date__time__error.html" target="basefrm">boost::locale::date_time_error</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="structboost_1_1locale_1_1date__time__period.html" target="basefrm">boost::locale::date_time_period</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1date__time__period__set.html" target="basefrm">boost::locale::date_time_period_set</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain.html" target="basefrm">boost::locale::gnu_gettext::messages_info::domain</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1generator.html" target="basefrm">boost::locale::generator</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1hold__ptr.html" target="basefrm">boost::locale::hold_ptr&lt; T &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1info.html" target="basefrm">boost::locale::info</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1conv_1_1invalid__charset__error.html" target="basefrm">boost::locale::conv::invalid_charset_error</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1ios__info.html" target="basefrm">boost::locale::ios_info</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1localization__backend.html" target="basefrm">boost::locale::localization_backend</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html" target="basefrm">boost::locale::localization_backend_manager</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1message__format.html" target="basefrm">boost::locale::message_format&lt; CharType &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="structboost_1_1locale_1_1gnu__gettext_1_1messages__info.html" target="basefrm">boost::locale::gnu_gettext::messages_info</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1period_1_1period__type.html" target="basefrm">boost::locale::period::period_type</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="structboost_1_1locale_1_1posix__time.html" target="basefrm">boost::locale::posix_time</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment.html" target="basefrm">boost::locale::boundary::segment&lt; IteratorType &gt;</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" target="basefrm">boost::locale::boundary::segment_index&lt; BaseIterator &gt;</a></p>
+ </div>
+ <p><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="functions.html" target="basefrm">Class Members</a></p>
+ <p><img src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('folder9', this)"/><img src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('folder9', this)"/><a class="el" href="namespaces.html" target="basefrm">Namespace List</a></p>
+ <div id="folder9">
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="namespaceboost_1_1locale.html" target="basefrm">boost::locale</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="namespaceboost_1_1locale_1_1as.html" target="basefrm">boost::locale::as</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="namespaceboost_1_1locale_1_1boundary.html" target="basefrm">boost::locale::boundary</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="namespaceboost_1_1locale_1_1conv.html" target="basefrm">boost::locale::conv</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="namespaceboost_1_1locale_1_1flags.html" target="basefrm">boost::locale::flags</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="namespaceboost_1_1locale_1_1gnu__gettext.html" target="basefrm">boost::locale::gnu_gettext</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="namespaceboost_1_1locale_1_1period.html" target="basefrm">boost::locale::period</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="namespaceboost_1_1locale_1_1period_1_1marks.html" target="basefrm">boost::locale::period::marks</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="namespaceboost_1_1locale_1_1time__zone.html" target="basefrm">boost::locale::time_zone</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="namespaceboost_1_1locale_1_1util.html" target="basefrm">boost::locale::util</a></p>
+ </div>
+ <p><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="namespacemembers.html" target="basefrm">Namespace Members</a></p>
+ <p><img src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('folder10', this)"/><img src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('folder10', this)"/><a class="el" href="files.html" target="basefrm">File List</a></p>
+ <div id="folder10">
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/boundary.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/collator.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/config.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/conversion.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/date_time.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/date_time_facet.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/encoding.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/format.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/formatting.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/generator.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/gnu_gettext.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/hold_ptr.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/info.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/localization_backend.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/message.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/time_zone.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/util.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/boundary/boundary_point.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/boundary/facets.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/boundary/index.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/boundary/segment.hpp</b></p>
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><b>boost/locale/boundary/types.hpp</b></p>
+ </div>
+ <p><img src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('folder11', this)"/><img src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('folder11', this)"/><a class="el" href="examples.html" target="basefrm">Examples</a></p>
+ <div id="folder11">
+ <p><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="boundary_8cpp-example.html" target="basefrm">boundary.cpp</a></p>
+ <p><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="calendar_8cpp-example.html" target="basefrm">calendar.cpp</a></p>
+ <p><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="collate_8cpp-example.html" target="basefrm">collate.cpp</a></p>
+ <p><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="conversions_8cpp-example.html" target="basefrm">conversions.cpp</a></p>
+ <p><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="hello_8cpp-example.html" target="basefrm">hello.cpp</a></p>
+ <p><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="wboundary_8cpp-example.html" target="basefrm">wboundary.cpp</a></p>
+ <p><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="wconversions_8cpp-example.html" target="basefrm">wconversions.cpp</a></p>
+ <p><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="whello_8cpp-example.html" target="basefrm">whello.cpp</a></p>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>

Added: trunk/libs/locale/doc/html/types_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/types_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,166 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/boundary/types.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/boundary/types.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_BOUNDARY_TYPES_HPP_INCLUDED</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_BOUNDARY_TYPES_HPP_INCLUDED</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#include &lt;boost/cstdint.hpp&gt;</span>
+<a name="l00013"></a>00013 <span class="preprocessor">#include &lt;boost/assert.hpp&gt;</span>
+<a name="l00014"></a>00014 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span>
+<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span>
+<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00018"></a>00018 <span class="preprocessor"></span>
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020 <span class="keyword">namespace </span>boost {
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022 <span class="keyword">namespace </span>locale {
+<a name="l00023"></a>00023
+<a name="l00027"></a>00027 <span class="keyword">namespace </span>boundary {
+<a name="l00035"></a>00035
+<a name="l00039"></a><a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">00039</a> <span class="keyword">enum</span> <a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> {
+<a name="l00040"></a><a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641ae80c964112541d88af9b875dafb6605d">00040</a> character,
+<a name="l00041"></a><a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6">00041</a> word,
+<a name="l00042"></a><a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a88aa1509eace7589f5df87d4694871e9">00042</a> sentence,
+<a name="l00043"></a><a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a72895419fdd7219b3695cf0abd602ea4">00043</a> <a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a72895419fdd7219b3695cf0abd602ea4" title="Analyse the text for positions suitable for line breaks.">line</a>
+<a name="l00044"></a>00044 };
+<a name="l00045"></a>00045
+<a name="l00051"></a><a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">00051</a> <span class="keyword">typedef</span> uint32_t rule_type;
+<a name="l00052"></a>00052
+<a name="l00057"></a>00057 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a>
+<a name="l00058"></a><a class="code" href="group__boundary.html#ga90cf4f01b95658f659685377226677e7">00058</a> <a class="code" href="group__boundary.html#ga90cf4f01b95658f659685377226677e7" title="Not a word, like white space or punctuation mark.">word_none</a> = 0x0000F,
+<a name="l00059"></a><a class="code" href="group__boundary.html#gaac78a3a6b9e671e253a2591cb56a479b">00059</a> <a class="code" href="group__boundary.html#gaac78a3a6b9e671e253a2591cb56a479b" title="Word that appear to be a number.">word_number</a> = 0x000F0,
+<a name="l00060"></a><a class="code" href="group__boundary.html#ga8b7e6ce2fcb185845fa85a1a4c42b3c4">00060</a> <a class="code" href="group__boundary.html#ga8b7e6ce2fcb185845fa85a1a4c42b3c4" title="Word that contains letters, excluding kana and ideographic characters.">word_letter</a> = 0x00F00,
+<a name="l00061"></a><a class="code" href="group__boundary.html#ga52d8c63e1f3f8c898c645352206a78ef">00061</a> <a class="code" href="group__boundary.html#ga52d8c63e1f3f8c898c645352206a78ef" title="Word that contains kana characters.">word_kana</a> = 0x0F000,
+<a name="l00062"></a><a class="code" href="group__boundary.html#ga705ab96f9e62810c8ed977c90d404ef8">00062</a> <a class="code" href="group__boundary.html#ga705ab96f9e62810c8ed977c90d404ef8" title="Word that contains ideographic characters.">word_ideo</a> = 0xF0000,
+<a name="l00063"></a><a class="code" href="group__boundary.html#ga3ab98808dbb1cc4a346dcc2554c9d8dc">00063</a> <a class="code" href="group__boundary.html#ga3ab98808dbb1cc4a346dcc2554c9d8dc" title="Any word including numbers, 0 is special flag, equivalent to 15.">word_any</a> = 0xFFFF0,
+<a name="l00064"></a><a class="code" href="group__boundary.html#gae412d31a918dc793500fed7278663047">00064</a> <a class="code" href="group__boundary.html#gae412d31a918dc793500fed7278663047" title="Any word, excluding numbers but including letters, kana and ideograms.">word_letters</a> = 0xFFF00,
+<a name="l00065"></a><a class="code" href="group__boundary.html#ga5de65589628267ab7f2a51f4147d43f9">00065</a> <a class="code" href="group__boundary.html#ga5de65589628267ab7f2a51f4147d43f9" title="Word that includes kana or ideographic characters.">word_kana_ideo</a> = 0xFF000,
+<a name="l00066"></a><a class="code" href="group__boundary.html#gad11031065617b6be9d4662d2c06afd52">00066</a> <a class="code" href="group__boundary.html#gad11031065617b6be9d4662d2c06afd52">word_mask</a> = 0xFFFFF;
+<a name="l00067"></a>00067
+<a name="l00068"></a>00068
+<a name="l00073"></a>00073 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a>
+<a name="l00074"></a><a class="code" href="group__boundary.html#gaa6a7b6ea3c63a1101a945b82eb10ebd0">00074</a> <a class="code" href="group__boundary.html#gaa6a7b6ea3c63a1101a945b82eb10ebd0" title="Soft line break: optional but not required.">line_soft</a> = 0x0F,
+<a name="l00075"></a><a class="code" href="group__boundary.html#ga04faac8129ca14e4e5a789652ee8ecab">00075</a> <a class="code" href="group__boundary.html#ga04faac8129ca14e4e5a789652ee8ecab" title="Hard line break: like break is required (as per CR/LF).">line_hard</a> = 0xF0,
+<a name="l00076"></a><a class="code" href="group__boundary.html#ga33fb765abbab27ee07cf70bfab8f47e0">00076</a> <a class="code" href="group__boundary.html#ga33fb765abbab27ee07cf70bfab8f47e0" title="Soft or Hard line break.">line_any</a> = 0xFF,
+<a name="l00077"></a><a class="code" href="group__boundary.html#gad5d8f2ac695f14b58d5df277aa5939f9">00077</a> <a class="code" href="group__boundary.html#gad5d8f2ac695f14b58d5df277aa5939f9" title="Select all types of line breaks.">line_mask</a> = 0xFF;
+<a name="l00078"></a>00078
+<a name="l00080"></a>00080
+<a name="l00086"></a>00086 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a>
+<a name="l00087"></a><a class="code" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b">00087</a> <a class="code" href="group__boundary.html#ga3befefe67f79691c117bf5588741355b" title="The sentence was terminated with a sentence terminator like &amp;quot;.&amp;quot;, &amp;quot;!&amp;quot; possible fol...">sentence_term</a> = 0x0F,
+<a name="l00088"></a>00088
+<a name="l00089"></a><a class="code" href="group__boundary.html#gaf67883341dd3d8f786e7281d40790000">00089</a> <a class="code" href="group__boundary.html#gaf67883341dd3d8f786e7281d40790000" title="The sentence does not contain terminator like &amp;quot;.&amp;quot;, &amp;quot;!&amp;quot; but ended with hard separa...">sentence_sep</a> = 0xF0,
+<a name="l00090"></a>00090
+<a name="l00091"></a><a class="code" href="group__boundary.html#gae2042518b20123ec14fbf71458ec9c79">00091</a> <a class="code" href="group__boundary.html#gae2042518b20123ec14fbf71458ec9c79" title="Either first or second sentence break type;.">sentence_any</a> = 0xFF,
+<a name="l00092"></a><a class="code" href="group__boundary.html#gacd2a521edb550e75c624000a1089934c">00092</a> <a class="code" href="group__boundary.html#gacd2a521edb550e75c624000a1089934c" title="Select all sentence breaking points.">sentence_mask</a> = 0xFF;
+<a name="l00093"></a>00093
+<a name="l00095"></a>00095
+<a name="l00102"></a>00102 <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a>
+<a name="l00103"></a><a class="code" href="group__boundary.html#ga9f9e97f7d234139cabe4c4df92a6d4b5">00103</a> <a class="code" href="group__boundary.html#ga9f9e97f7d234139cabe4c4df92a6d4b5" title="Not in use, just for consistency.">character_any</a> = 0xF,
+<a name="l00104"></a><a class="code" href="group__boundary.html#gad151135cfe341d3c1f63bf459f6a1f4c">00104</a> <a class="code" href="group__boundary.html#gad151135cfe341d3c1f63bf459f6a1f4c" title="Select all character breaking points.">character_mask</a> = 0xF;
+<a name="l00105"></a>00105
+<a name="l00107"></a>00107
+<a name="l00111"></a><a class="code" href="group__boundary.html#ga99daacb708289fe81def9f1ce4486515">00111</a> <span class="keyword">inline</span> <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095" title="Flags used with word boundary analysis -- the type of the word, line or sentence boundary found...">rule_type</a> <a class="code" href="group__boundary.html#ga99daacb708289fe81def9f1ce4486515">boundary_rule</a>(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> t)
+<a name="l00112"></a>00112 {
+<a name="l00113"></a>00113 <span class="keywordflow">switch</span>(t) {
+<a name="l00114"></a>00114 <span class="keywordflow">case</span> <a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641ae80c964112541d88af9b875dafb6605d" title="Analyse the text for character boundaries.">character</a>: <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#gad151135cfe341d3c1f63bf459f6a1f4c" title="Select all character breaking points.">character_mask</a>;
+<a name="l00115"></a>00115 <span class="keywordflow">case</span> <a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6" title="Analyse the text for word boundaries.">word</a>: <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#gad11031065617b6be9d4662d2c06afd52">word_mask</a>;
+<a name="l00116"></a>00116 <span class="keywordflow">case</span> <a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a88aa1509eace7589f5df87d4694871e9" title="Analyse the text for Find sentence boundaries.">sentence</a>: <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#gacd2a521edb550e75c624000a1089934c" title="Select all sentence breaking points.">sentence_mask</a>;
+<a name="l00117"></a>00117 <span class="keywordflow">case</span> <a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a72895419fdd7219b3695cf0abd602ea4" title="Analyse the text for positions suitable for line breaks.">line</a>: <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#gad5d8f2ac695f14b58d5df277aa5939f9" title="Select all types of line breaks.">line_mask</a>;
+<a name="l00118"></a>00118 <span class="keywordflow">default</span>: <span class="keywordflow">return</span> 0;
+<a name="l00119"></a>00119 }
+<a name="l00120"></a>00120 }
+<a name="l00121"></a>00121
+<a name="l00125"></a>00125
+<a name="l00126"></a>00126 } <span class="comment">// boundary</span>
+<a name="l00127"></a>00127 } <span class="comment">// locale</span>
+<a name="l00128"></a>00128 } <span class="comment">// boost</span>
+<a name="l00129"></a>00129
+<a name="l00130"></a>00130
+<a name="l00131"></a>00131 <span class="preprocessor">#ifdef BOOST_MSVC</span>
+<a name="l00132"></a>00132 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span>
+<a name="l00133"></a>00133 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00134"></a>00134 <span class="preprocessor"></span>
+<a name="l00135"></a>00135 <span class="preprocessor">#endif</span>
+<a name="l00136"></a>00136 <span class="preprocessor"></span><span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/using_boost_locale.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/using_boost_locale.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Using Boost.Locale</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Using Boost.Locale </h1> </div>
+</div>
+<div class="contents">
+<p>In this section we'll talk mostly about the ICU backend, as it is both the default and the most powerful localization backend provided by this library. In later sections we will note the features that are supported by other localization backends.</p>
+<ul>
+<li><a class="el" href="locale_gen.html">Locale Generation</a></li>
+<li><a class="el" href="collation.html">Collation</a></li>
+<li><a class="el" href="conversions.html">Text Conversions</a></li>
+<li><a class="el" href="formatting_and_parsing.html">Numbers, Time and Currency formatting and parsing</a></li>
+<li><a class="el" href="messages_formatting.html">Messages Formatting (Translation)</a></li>
+<li><a class="el" href="charset_handling.html">Character Set Conversions</a></li>
+<li><a class="el" href="boundary_analysys.html">Boundary analysis</a></li>
+<li><a class="el" href="localized_text_formatting.html">Localized Text Formatting</a></li>
+<li><a class="el" href="dates_times_timezones.html">Working with dates, times, timezones and calendars.</a></li>
+<li><a class="el" href="locale_information.html">Getting information about the current locale</a></li>
+<li><a class="el" href="working_with_multiple_locales.html">Working with multiple locales</a> </li>
+</ul>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/using_localization_backends.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/using_localization_backends.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,179 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Using Localization Backends</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Using Localization Backends </h1> </div>
+</div>
+<div class="contents">
+<p>By default, Boost.Locale uses ICU for all localization and text manipulation tasks. This is the most powerful library available, but sometimes we don't need the full power of this library or we want to reduce dependencies from third-party libraries, and ICU is by no means a small library.</p>
+<p>Boost.Locale provides an option to use non-ICU based localization backends. Although usually less powerful, these often provide all you need: message formatting, currency, date, time, number formatting, basic collation and case manipulation. They are implemented using the standard OS API or a C or C++ library.</p>
+<h2><a class="anchor" id="when_to_use_non_icu_backends"></a>
+When to use non-ICU backends</h2>
+<p>There are situations when using non-ICU based localization is appropriate:</p>
+<ul>
+<li>Embedded systems, where the ICU library is very hefty.</li>
+<li>Applications where only basic features like message, date, and time formatting and basic collation are required, and using a third-party library like ICU would be too complicated.</li>
+<li>Performance. ICU is a very powerful library, but it is generally slower than the standard library. Sometimes it's better to use a simpler but faster localization backend.</li>
+</ul>
+<h2><a class="anchor" id="non_icu_backends"></a>
+Non-ICU Backends</h2>
+<p>All of the alternate backends have these limitations:</p>
+<ul>
+<li>Only the Gregorian calendar is supported and it is based on capabilites of mktime functionality (including dates range)</li>
+<li>No boundary analysis.</li>
+<li>Case handling is very simple and based on single codepoint conversions, though they still handle UTF-8 better than the standard library.</li>
+<li>Time zone specification is very limited: either local time or a time zone in the format "GMT+HH:MM".</li>
+<li>No percent formatting, no spellout or ordinal number formatting.</li>
+<li>Collation, with exception of the <code>winapi</code> backend, is limited to a single level, similar to what is done by <code>strcoll</code>.</li>
+</ul>
+<h3><a class="anchor" id="std_backend"></a>
+std - The standard C++ library backend</h3>
+<p>This localization backend is based on the standard C++ library.</p>
+<p>It is supported on all platforms, but is only actually useful on platforms where the standard library supports locales besides "C" and "POSIX": on Linux with GCC or Intel compilers, and under the MSVC compiler.</p>
+<p>It works around some common standard library bugs like invalid UTF-8 generation for numeric formatting, and it gives otherwise-absent POSIX locales names and UTF-8 support under MSVC.</p>
+<p>It is very useful when the compiler and the library actually give fine localization support, like GCC under Linux or MSVC under Windows.</p>
+<h3><a class="anchor" id="posix_backend"></a>
+posix - POSIX 2008 C library</h3>
+<p>This backend is based on the latest POSIX 2008 standards, and uses POSIX api functions like <code>newlocale</code>, <code>freelocale</code>, <code>strftime_l</code> etc. It is available on the Linux and Mac OS X platforms.</p>
+<p>It gives you simple and ready-made localization support, most notably under Mac OS X where GCC's <code>libstdc++</code> does not support locales.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd>The POSIX backend only supports UTF-8, single-byte, and double-byte encodings.</dd></dl>
+<h3><a class="anchor" id="winapi_backend"></a>
+winapi - Win32 API.</h3>
+<p>The Win32API-based localization backend provides decent UTF-8/UTF-16 locale support. It is based on Windows API functions like <code>GetLocaleInfoW</code>, <code>LCMapStringW</code>, <code>GetDateFormatW</code> etc and provides good localization support even on the MinGW and Cygwin platforms, which normally have problems with this.</p>
+<dl class="note"><dt><b>Note:</b></dt><dd></dd></dl>
+<ul>
+<li>If you using GCC compiler under Windows you need GCC-4.x series to use it, GCC-3.4 is not supported</li>
+<li>Only UTF-8 as narrow locale encoding and UTF-16 as wide encoding are supported.</li>
+</ul>
+<h2><a class="anchor" id="supported_features_by_backends"></a>
+Supported Features</h2>
+<table border="1" sellpadding="5" sellspacing="3">
+<tr>
+<th>Backend </th><th>icu</th><th>posix</th><th>winapi</th><th>std </th></tr>
+<tr>
+<th>Message Formatting </th><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes </td></tr>
+<tr>
+<th>Non UTF-8 encodings </th><td>Yes</td><td>Yes</td><td>No</td><td>Yes </td></tr>
+<tr>
+<th>Date/Time Formatting/Parsing </th><td>Yes</td><td>Formatting Only</td><td>Formatting Only</td><td>Formatting Only </td></tr>
+<tr>
+<th>Monetary Formatting/Parsing </th><td>Yes</td><td>Formatting Only</td><td>Formatting Only</td><td>Yes </td></tr>
+<tr>
+<th>Number Formatting/Parsing </th><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes </td></tr>
+<tr>
+<th>Numbers as Percent, Spelled Out </th><td>Yes</td><td>No</td><td>No</td><td>No </td></tr>
+<tr>
+<th>Case Manipulation </th><td>Yes</td><td>Basic</td><td>Basic</td><td>Basic </td></tr>
+<tr>
+<th>Collation </th><td>Full</td><td>Linux - 1 level<br/>
+Mac OS X - broken</td><td>3 levels</td><td>1 level </td></tr>
+<tr>
+<th>Calendar </th><td>Yes</td><td>Gregorian Only</td><td>Gregorian Only</td><td>Gregorian Only </td></tr>
+<tr>
+<th>Boundary Analysis </th><td>Yes</td><td>No</td><td>No</td><td>No </td></tr>
+<tr>
+<th>Unicode Normalization </th><td>Yes</td><td>No</td><td>Vista and above</td><td>No </td></tr>
+<tr>
+<th>C++0x characters </th><td>Yes</td><td>No</td><td>No</td><td>Yes </td></tr>
+<tr>
+<th>OS Support </th><td>Any</td><td>Linux, Mac OS X</td><td>Windows, Cygwin</td><td>Any </td></tr>
+<tr>
+<th>Useful on </th><td>Any Platform</td><td>Linux and Mac OS X</td><td>Windows/MinGW/Cygwin</td><td>Linux with GCC or Intel<br/>
+Windows with MSVC </td></tr>
+</table>
+<h2><a class="anchor" id="using_localization_backends"></a>
+Using Localization Backends</h2>
+<p>Accessing a localization backend is done via the <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">boost::locale::localization_backend_manager</a> class.</p>
+<p>You can create your own <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html" title="Localization backend manager is a class that holds various backend and allows creation of their combi...">boost::locale::localization_backend_manager</a> by starting with a global backend via the <a class="el" href="classboost_1_1locale_1_1localization__backend__manager.html#a65649bc161a0cc160da9b40a9ad14e20">boost::locale::localization_backend_manager::global</a> static member function and modifying it.</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"> localization_backend_manager my = localization_backend_manager::global();
+ <span class="comment">// Get global backend</span>
+
+ my.select(<span class="stringliteral">&quot;std&quot;</span>);
+ <span class="comment">// select std backend as default</span>
+
+ generator gen(my);
+ <span class="comment">// create a generator that uses this backend.</span>
+
+ localization_backend_manager::global(my);
+ <span class="comment">// set this backend globally</span>
+
+ generator gen2();
+ <span class="comment">// now this one would use the new global backend.</span>
+</pre></div><p>You can also create a mixture of several backends, using for example <code>icu</code> for one kind of operation and <code>std</code> for all others:</p>
+<div class="fragment"><pre class="fragment"> localization_backend_manager my = localization_backend_manager::global();
+ <span class="comment">// Get global backend</span>
+
+ my.select(<span class="stringliteral">&quot;std&quot;</span>);
+ <span class="comment">// select std backend as default for all categories</span>
+ my.select(<span class="stringliteral">&quot;icu&quot;</span>,boundary_facet);
+ <span class="comment">// select icu backend for boundary analysis (since it is not supported by \c std)</span>
+</pre></div> </div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/util_8hpp_source.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/util_8hpp_source.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: boost/locale/util.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="tabs2">
+ <ul class="tablist">
+ <li>File List</li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<h1>boost/locale/util.hpp</h1> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
+<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<a name="l00003"></a>00003 <span class="comment">//</span>
+<a name="l00004"></a>00004 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<a name="l00005"></a>00005 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00006"></a>00006 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<a name="l00007"></a>00007 <span class="comment">//</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#ifndef BOOST_LOCALE_UTIL_HPP</span>
+<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_UTIL_HPP</span>
+<a name="l00010"></a>00010 <span class="preprocessor"></span><span class="preprocessor">#include &lt;locale&gt;</span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;typeinfo&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#include &lt;boost/cstdint.hpp&gt;</span>
+<a name="l00013"></a>00013 <span class="preprocessor">#include &lt;boost/locale/generator.hpp&gt;</span>
+<a name="l00014"></a>00014 <span class="preprocessor">#include &lt;boost/assert.hpp&gt;</span>
+<a name="l00015"></a>00015
+<a name="l00016"></a>00016 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00017"></a>00017 <span class="keyword">namespace </span>boost {
+<a name="l00018"></a>00018 <span class="keyword">namespace </span>locale {
+<a name="l00023"></a><a class="code" href="namespaceboost_1_1locale_1_1util.html">00023</a> <span class="keyword">namespace </span>util {
+<a name="l00024"></a>00024
+<a name="l00038"></a>00038 BOOST_LOCALE_DECL
+<a name="l00039"></a>00039 std::string <a class="code" href="namespaceboost_1_1locale_1_1util.html#ad9737569d0e2d6b08885b01aba308365" title="Return default system locale name in POSIX format.">get_system_locale</a>(<span class="keywordtype">bool</span> use_utf8_on_windows = <span class="keyword">false</span>);
+<a name="l00040"></a>00040
+<a name="l00058"></a>00058 BOOST_LOCALE_DECL
+<a name="l00059"></a>00059 std::locale <a class="code" href="namespaceboost_1_1locale_1_1util.html#a8322299021a4af3cdbb8b31e775e77f4" title="Installs information facet to locale in based on locale name name.">create_info</a>(std::locale <span class="keyword">const</span> &amp;in,std::string <span class="keyword">const</span> &amp;name);
+<a name="l00060"></a>00060
+<a name="l00061"></a>00061
+<a name="l00076"></a><a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html">00076</a> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html" title="This class represent a simple stateless converter from UCS-4 and to UCS-4 for each single code point...">base_converter</a> {
+<a name="l00077"></a>00077 <span class="keyword">public</span>:
+<a name="l00078"></a>00078
+<a name="l00084"></a><a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa02e2dfd8ddc2b40a8705c6ea7fa8d48">00084</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa02e2dfd8ddc2b40a8705c6ea7fa8d48">illegal</a>=0xFFFFFFFF;
+<a name="l00085"></a>00085
+<a name="l00090"></a><a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa78dd2bae2783e31a00849a4e74aeb1e">00090</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32_t <a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa78dd2bae2783e31a00849a4e74aeb1e">incomplete</a>=0xFFFFFFFE;
+<a name="l00091"></a>00091
+<a name="l00092"></a>00092 <span class="keyword">virtual</span> ~<a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html" title="This class represent a simple stateless converter from UCS-4 and to UCS-4 for each single code point...">base_converter</a>()
+<a name="l00093"></a>00093 {
+<a name="l00094"></a>00094 }
+<a name="l00099"></a><a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#ab2332b78e3e0c0b94ea3f6dafd123d60">00099</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#ab2332b78e3e0c0b94ea3f6dafd123d60">max_len</a>()<span class="keyword"> const </span>
+<a name="l00100"></a>00100 <span class="keyword"> </span>{
+<a name="l00101"></a>00101 <span class="keywordflow">return</span> 1;
+<a name="l00102"></a>00102 }
+<a name="l00112"></a><a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#aadcc2c1a767f9d24972c6995e81c1315">00112</a> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#aadcc2c1a767f9d24972c6995e81c1315">is_thread_safe</a>()<span class="keyword"> const </span>
+<a name="l00113"></a>00113 <span class="keyword"> </span>{
+<a name="l00114"></a>00114 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00115"></a>00115 }
+<a name="l00119"></a><a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#a702b31840be6f5c540cd22ac75cb2349">00119</a> <span class="keyword">virtual</span> <a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html" title="This class represent a simple stateless converter from UCS-4 and to UCS-4 for each single code point...">base_converter</a> *<a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#a702b31840be6f5c540cd22ac75cb2349">clone</a>()<span class="keyword"> const </span>
+<a name="l00120"></a>00120 <span class="keyword"> </span>{
+<a name="l00121"></a>00121 BOOST_ASSERT(<span class="keyword">typeid</span>(*<span class="keyword">this</span>)==<span class="keyword">typeid</span>(<a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html" title="This class represent a simple stateless converter from UCS-4 and to UCS-4 for each single code point...">base_converter</a>));
+<a name="l00122"></a>00122 <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html" title="This class represent a simple stateless converter from UCS-4 and to UCS-4 for each single code point...">base_converter</a>();
+<a name="l00123"></a>00123 }
+<a name="l00124"></a>00124
+<a name="l00140"></a><a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#a27181b314e09f62ae9ea8fcd30d4e7c4">00140</a> <span class="keyword">virtual</span> uint32_t <a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#a27181b314e09f62ae9ea8fcd30d4e7c4">to_unicode</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *&amp;begin,<span class="keywordtype">char</span> <span class="keyword">const</span> *end)
+<a name="l00141"></a>00141 {
+<a name="l00142"></a>00142 <span class="keywordflow">if</span>(begin == end)
+<a name="l00143"></a>00143 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa78dd2bae2783e31a00849a4e74aeb1e">incomplete</a>;
+<a name="l00144"></a>00144 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> cp = *begin;
+<a name="l00145"></a>00145 <span class="keywordflow">if</span>(cp &lt;= 0x7F) {
+<a name="l00146"></a>00146 begin++;
+<a name="l00147"></a>00147 <span class="keywordflow">return</span> cp;
+<a name="l00148"></a>00148 }
+<a name="l00149"></a>00149 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa02e2dfd8ddc2b40a8705c6ea7fa8d48">illegal</a>;
+<a name="l00150"></a>00150 }
+<a name="l00162"></a>00162
+<a name="l00163"></a><a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#afeecf1ee2699c26960cbf2d7d6d71d41">00163</a> <span class="keyword">virtual</span> uint32_t <a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#afeecf1ee2699c26960cbf2d7d6d71d41">from_unicode</a>(uint32_t u,<span class="keywordtype">char</span> *begin,<span class="keywordtype">char</span> <span class="keyword">const</span> *end)
+<a name="l00164"></a>00164 {
+<a name="l00165"></a>00165 <span class="keywordflow">if</span>(begin==end)
+<a name="l00166"></a>00166 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa78dd2bae2783e31a00849a4e74aeb1e">incomplete</a>;
+<a name="l00167"></a>00167 <span class="keywordflow">if</span>(u &gt;= 0x80)
+<a name="l00168"></a>00168 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1locale_1_1util_1_1base__converter.html#aa02e2dfd8ddc2b40a8705c6ea7fa8d48">illegal</a>;
+<a name="l00169"></a>00169 *begin = <span class="keyword">static_cast&lt;</span><span class="keywordtype">char</span><span class="keyword">&gt;</span>(u);
+<a name="l00170"></a>00170 <span class="keywordflow">return</span> 1;
+<a name="l00171"></a>00171 }
+<a name="l00172"></a>00172 };
+<a name="l00173"></a>00173
+<a name="l00178"></a>00178 BOOST_LOCALE_DECL std::auto_ptr&lt;base_converter&gt; <a class="code" href="namespaceboost_1_1locale_1_1util.html#aa8e8480ddadc3e972aeb4d468446db64">create_utf8_converter</a>();
+<a name="l00186"></a>00186 BOOST_LOCALE_DECL std::auto_ptr&lt;base_converter&gt; <a class="code" href="namespaceboost_1_1locale_1_1util.html#a79624ad8d782ad41d5edf90b6c830631">create_simple_converter</a>(std::string <span class="keyword">const</span> &amp;encoding);
+<a name="l00187"></a>00187
+<a name="l00188"></a>00188
+<a name="l00200"></a>00200 BOOST_LOCALE_DECL
+<a name="l00201"></a>00201 std::locale <a class="code" href="namespaceboost_1_1locale_1_1util.html#a3e6728910dc947c3062c6bfd28b70fc4">create_codecvt</a>(std::locale <span class="keyword">const</span> &amp;in,std::auto_ptr&lt;base_converter&gt; cvt,<a class="code" href="namespaceboost_1_1locale.html#a8c993aaf15e683e97d062560ccf914d8" title="type that specifies the character type that locales can be generated for">character_facet_type</a> type);
+<a name="l00202"></a>00202
+<a name="l00203"></a>00203 } <span class="comment">// util</span>
+<a name="l00204"></a>00204 } <span class="comment">// locale </span>
+<a name="l00205"></a>00205 } <span class="comment">// boost</span>
+<a name="l00206"></a>00206
+<a name="l00207"></a>00207 <span class="preprocessor">#endif</span>
+<a name="l00208"></a>00208 <span class="preprocessor"></span><span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/wboundary_8cpp-example.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/wboundary_8cpp-example.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: wboundary.cpp</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>wboundary.cpp</h1> </div>
+</div>
+<div class="contents">
+<p>Example of using segment_index over wide strings</p>
+<div class="fragment"><pre class="fragment"><span class="comment">//</span>
+<span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<span class="comment">//</span>
+<span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<span class="comment">//</span>
+
+<span class="comment">//</span>
+<span class="comment">// ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !</span>
+<span class="comment">//</span>
+<span class="comment">// BIG FAT WARNING FOR Microsoft Visual Studio Users</span>
+<span class="comment">//</span>
+<span class="comment">// YOU NEED TO CONVERT THIS SOURCE FILE ENCODING TO UTF-8 WITH BOM ENCODING.</span>
+<span class="comment">//</span>
+<span class="comment">// Unfortunately MSVC understands that the source code is encoded as</span>
+<span class="comment">// UTF-8 only if you add useless BOM in the beginning.</span>
+<span class="comment">//</span>
+<span class="comment">// So, before you compile &quot;wide&quot; examples with MSVC, please convert them to text</span>
+<span class="comment">// files with BOM. There are two very simple ways to do it:</span>
+<span class="comment">//</span>
+<span class="comment">// 1. Open file with Notepad and save it from there. It would convert </span>
+<span class="comment">// it to file with BOM.</span>
+<span class="comment">// 2. In Visual Studio go File-&gt;Advances Save Options... and select</span>
+<span class="comment">// Unicode (UTF-8 with signature) Codepage 65001</span>
+<span class="comment">//</span>
+<span class="comment">// Note: once converted to UTF-8 with BOM, this source code would not</span>
+<span class="comment">// compile with other compilers, because no-one uses BOM with UTF-8 today</span>
+<span class="comment">// because it is absolutely meaningless in context of UTF-8.</span>
+<span class="comment">//</span>
+<span class="comment">// ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !</span>
+<span class="comment">//</span>
+<span class="preprocessor">#include &lt;boost/locale.hpp&gt;</span>
+<span class="preprocessor">#include &lt;iostream&gt;</span>
+<span class="preprocessor">#include &lt;cassert&gt;</span>
+<span class="preprocessor">#include &lt;ctime&gt;</span>
+
+<span class="keywordtype">int</span> main()
+{
+ <span class="keyword">using namespace </span>boost::locale;
+ <span class="keyword">using namespace </span>std;
+
+ <span class="comment">// Create system default locale</span>
+ <a name="_a0"></a><a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">generator</a> gen;
+ locale loc=gen(<span class="stringliteral">&quot;&quot;</span>);
+ locale::global(loc);
+ wcout.imbue(loc);
+
+ <span class="comment">// This is needed to prevent C library to</span>
+ <span class="comment">// convert strings to narrow </span>
+ <span class="comment">// instead of C++ on some platforms</span>
+ std::ios_base::sync_with_stdio(<span class="keyword">false</span>);
+
+
+ wstring text=L<span class="stringliteral">&quot;Hello World! あにま! Linux2.6 and Windows7 is word and number. שָלוֹם עוֹלָם!&quot;</span>;
+
+ wcout&lt;&lt;text&lt;&lt;endl;
+
+ <a name="_a1"></a><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html" title="This class holds an index of segments in the text range and allows to iterate over them...">boundary::wssegment_index</a> index(<a name="a2"></a><a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a99aad8b8a5e25baa9f695abe5e574bb6" title="Analyse the text for word boundaries.">boundary::word</a>,text.begin(),text.end());
+ <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">boundary::wssegment_index::iterator</a> p,e;
+
+ <span class="keywordflow">for</span>(p=index.begin(),e=index.end();p!=e;++p) {
+ wcout&lt;&lt;L<span class="stringliteral">&quot;Part [&quot;</span>&lt;&lt;*p&lt;&lt;L<span class="stringliteral">&quot;] has &quot;</span>;
+ <span class="keywordflow">if</span>(p-&gt;rule() &amp; <a name="a3"></a><a class="code" href="group__boundary.html#gaac78a3a6b9e671e253a2591cb56a479b" title="Word that appear to be a number.">boundary::word_number</a>)
+ wcout&lt;&lt;L<span class="stringliteral">&quot;number(s) &quot;</span>;
+ <span class="keywordflow">if</span>(p-&gt;rule() &amp; <a name="a4"></a><a class="code" href="group__boundary.html#ga8b7e6ce2fcb185845fa85a1a4c42b3c4" title="Word that contains letters, excluding kana and ideographic characters.">boundary::word_letter</a>)
+ wcout&lt;&lt;L<span class="stringliteral">&quot;letter(s) &quot;</span>;
+ <span class="keywordflow">if</span>(p-&gt;rule() &amp; <a name="a5"></a><a class="code" href="group__boundary.html#ga52d8c63e1f3f8c898c645352206a78ef" title="Word that contains kana characters.">boundary::word_kana</a>)
+ wcout&lt;&lt;L<span class="stringliteral">&quot;kana character(s) &quot;</span>;
+ <span class="keywordflow">if</span>(p-&gt;rule() &amp; <a name="a6"></a><a class="code" href="group__boundary.html#ga705ab96f9e62810c8ed977c90d404ef8" title="Word that contains ideographic characters.">boundary::word_ideo</a>)
+ wcout&lt;&lt;L<span class="stringliteral">&quot;ideographic character(s) &quot;</span>;
+ <span class="keywordflow">if</span>(p-&gt;rule() &amp; <a name="a7"></a><a class="code" href="group__boundary.html#ga90cf4f01b95658f659685377226677e7" title="Not a word, like white space or punctuation mark.">boundary::word_none</a>)
+ wcout&lt;&lt;L<span class="stringliteral">&quot;no word characters&quot;</span>;
+ wcout&lt;&lt;endl;
+ }
+
+ index.map(<a name="a8"></a><a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641ae80c964112541d88af9b875dafb6605d" title="Analyse the text for character boundaries.">boundary::character</a>,text.begin(),text.end());
+
+ <span class="keywordflow">for</span>(p=index.begin(),e=index.end();p!=e;++p) {
+ wcout&lt;&lt;L<span class="stringliteral">&quot;|&quot;</span> &lt;&lt;*p ;
+ }
+ wcout&lt;&lt;L<span class="stringliteral">&quot;|\n\n&quot;</span>;
+
+ index.map(<a name="a9"></a><a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a72895419fdd7219b3695cf0abd602ea4" title="Analyse the text for positions suitable for line breaks.">boundary::line</a>,text.begin(),text.end());
+
+ <span class="keywordflow">for</span>(p=index.begin(),e=index.end();p!=e;++p) {
+ wcout&lt;&lt;L<span class="stringliteral">&quot;|&quot;</span> &lt;&lt;*p ;
+ }
+ wcout&lt;&lt;L<span class="stringliteral">&quot;|\n\n&quot;</span>;
+
+ index.map(<a name="a10"></a><a class="code" href="group__boundary.html#gga15de9963ce9bb6037c8525901dfbf641a88aa1509eace7589f5df87d4694871e9" title="Analyse the text for Find sentence boundaries.">boundary::sentence</a>,text.begin(),text.end());
+
+ <span class="keywordflow">for</span>(p=index.begin(),e=index.end();p!=e;++p) {
+ wcout&lt;&lt;L<span class="stringliteral">&quot;|&quot;</span> &lt;&lt;*p ;
+ }
+ wcout&lt;&lt;<span class="stringliteral">&quot;|\n\n&quot;</span>;
+
+}
+
+
+<span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div> </div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/wconversions_8cpp-example.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/wconversions_8cpp-example.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: wconversions.cpp</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>wconversions.cpp</h1> </div>
+</div>
+<div class="contents">
+<p>Example of using various text conversion functions with wide strings.</p>
+<div class="fragment"><pre class="fragment"><span class="comment">//</span>
+<span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<span class="comment">//</span>
+<span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<span class="comment">//</span>
+
+<span class="comment">//</span>
+<span class="comment">// ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !</span>
+<span class="comment">//</span>
+<span class="comment">// BIG FAT WARNING FOR Microsoft Visual Studio Users</span>
+<span class="comment">//</span>
+<span class="comment">// YOU NEED TO CONVERT THIS SOURCE FILE ENCODING TO UTF-8 WITH BOM ENCODING.</span>
+<span class="comment">//</span>
+<span class="comment">// Unfortunately MSVC understands that the source code is encoded as</span>
+<span class="comment">// UTF-8 only if you add useless BOM in the beginning.</span>
+<span class="comment">//</span>
+<span class="comment">// So, before you compile &quot;wide&quot; examples with MSVC, please convert them to text</span>
+<span class="comment">// files with BOM. There are two very simple ways to do it:</span>
+<span class="comment">//</span>
+<span class="comment">// 1. Open file with Notepad and save it from there. It would convert </span>
+<span class="comment">// it to file with BOM.</span>
+<span class="comment">// 2. In Visual Studio go File-&gt;Advances Save Options... and select</span>
+<span class="comment">// Unicode (UTF-8 with signature) Codepage 65001</span>
+<span class="comment">//</span>
+<span class="comment">// Note: once converted to UTF-8 with BOM, this source code would not</span>
+<span class="comment">// compile with other compilers, because no-one uses BOM with UTF-8 today</span>
+<span class="comment">// because it is absolutely meaningless in context of UTF-8.</span>
+<span class="comment">//</span>
+<span class="comment">// ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !</span>
+<span class="comment">//</span>
+<span class="preprocessor">#include &lt;boost/locale.hpp&gt;</span>
+<span class="preprocessor">#include &lt;boost/algorithm/string/case_conv.hpp&gt;</span>
+<span class="preprocessor">#include &lt;iostream&gt;</span>
+
+<span class="preprocessor">#include &lt;ctime&gt;</span>
+
+
+<span class="keywordtype">int</span> main()
+{
+ <span class="keyword">using namespace </span>boost::locale;
+ <span class="keyword">using namespace </span>std;
+ <span class="comment">// Create system default locale</span>
+ <a name="_a0"></a><a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">generator</a> gen;
+ locale loc=gen(<span class="stringliteral">&quot;&quot;</span>);
+ locale::global(loc);
+ wcout.imbue(loc);
+
+ <span class="comment">// This is needed to prevent C library to</span>
+ <span class="comment">// convert strings to narrow </span>
+ <span class="comment">// instead of C++ on some platforms</span>
+ std::ios_base::sync_with_stdio(<span class="keyword">false</span>);
+
+
+ wcout&lt;&lt;L<span class="stringliteral">&quot;Correct case conversion can&#39;t be done by simple, character by character conversion&quot;</span>&lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot;because case conversion is context sensitive and not 1-to-1 conversion&quot;</span>&lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot;For example:&quot;</span>&lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot; German grüßen correctly converted to &quot;</span>&lt;&lt;<a name="a1"></a><a class="code" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">to_upper</a>(L<span class="stringliteral">&quot;grüßen&quot;</span>)&lt;&lt;L<span class="stringliteral">&quot;, instead of incorrect &quot;</span>
+ &lt;&lt;boost::to_upper_copy(std::wstring(L<span class="stringliteral">&quot;grüßen&quot;</span>))&lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot; where ß is replaced with SS&quot;</span>&lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot; Greek ὈΔΥΣΣΕΎΣ is correctly converted to &quot;</span>&lt;&lt;<a name="a2"></a><a class="code" href="group__convert.html#ga33de83f16ff2c09cac780977c6f67099">to_lower</a>(L<span class="stringliteral">&quot;ὈΔΥΣΣΕΎΣ&quot;</span>)&lt;&lt;L<span class="stringliteral">&quot;, instead of incorrect &quot;</span>
+ &lt;&lt;boost::to_lower_copy(std::wstring(L<span class="stringliteral">&quot;ὈΔΥΣΣΕΎΣ&quot;</span>))&lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot; where Σ is converted to σ or to ς, according to position in the word&quot;</span>&lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot;Such type of conversion just can be done using std::toupper that work on character base, also std::toupper is &quot;</span>&lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot;not fully applicable when working with variable character length like in UTF-8 or UTF-16 limiting the correct &quot;</span>&lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot;behavoir to BMP or ASCII only&quot;</span>&lt;&lt;endl;
+
+}
+
+<span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div> </div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/whello_8cpp-example.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/whello_8cpp-example.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: whello.cpp</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>whello.cpp</h1> </div>
+</div>
+<div class="contents">
+<p>Basic example of using various functions with wide strings provided by this library</p>
+<div class="fragment"><pre class="fragment"><span class="comment">//</span>
+<span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span>
+<span class="comment">//</span>
+<span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
+<span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
+<span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
+<span class="comment">//</span>
+<span class="preprocessor">#include &lt;boost/locale.hpp&gt;</span>
+<span class="preprocessor">#include &lt;iostream&gt;</span>
+
+<span class="preprocessor">#include &lt;ctime&gt;</span>
+
+<span class="keywordtype">int</span> main()
+{
+ <span class="keyword">using namespace </span>boost::locale;
+ <span class="keyword">using namespace </span>std;
+
+ <span class="comment">// Create system default locale</span>
+ <a name="_a0"></a><a class="code" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">generator</a> gen;
+ locale loc=gen(<span class="stringliteral">&quot;&quot;</span>);
+ locale::global(loc);
+ wcout.imbue(loc);
+
+ <span class="comment">// This is needed to prevent C library to</span>
+ <span class="comment">// convert strings to narrow </span>
+ <span class="comment">// instead of C++ on some platforms</span>
+ std::ios_base::sync_with_stdio(<span class="keyword">false</span>);
+
+
+ wcout &lt;&lt;<a name="a1"></a><a class="code" href="group__format.html#ga610f3ae827801febc962019cf82a2227">wformat</a>(L<span class="stringliteral">&quot;Today {1,date} at {1,time} we had run our first localization example&quot;</span>) % <a name="a2"></a><a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">time</a>(0)
+ &lt;&lt;endl;
+
+ wcout&lt;&lt;L<span class="stringliteral">&quot;This is how we show numbers in this locale &quot;</span>&lt;&lt;<a name="a3"></a><a class="code" href="group__manipulators.html#gaee05db73f5525d9a010cdc3aa02f634f">as::number</a> &lt;&lt; 103.34 &lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot;This is how we show currency in this locale &quot;</span>&lt;&lt;<a name="a4"></a><a class="code" href="group__manipulators.html#ga97c4997f9692834ea7b5ed3e8137d5fd">as::currency</a> &lt;&lt; 103.34 &lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot;This is typical date in the locale &quot;</span>&lt;&lt;<a name="a5"></a><a class="code" href="group__manipulators.html#gae05b82e6658dc573521518fed5f5c77f">as::date</a> &lt;&lt; <a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">std::time</a>(0) &lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot;This is typical time in the locale &quot;</span>&lt;&lt;<a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">as::time</a> &lt;&lt; <a class="code" href="group__manipulators.html#gae669b101cbeaed6f6d246ebdcaa8f39c">std::time</a>(0) &lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot;This is upper case &quot;</span>&lt;&lt;<a name="a6"></a><a class="code" href="group__convert.html#ga7889a57e1bc1059fbb107db0781d0b6d">to_upper</a>(L<span class="stringliteral">&quot;Hello World!&quot;</span>)&lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot;This is lower case &quot;</span>&lt;&lt;<a name="a7"></a><a class="code" href="group__convert.html#ga33de83f16ff2c09cac780977c6f67099">to_lower</a>(L<span class="stringliteral">&quot;Hello World!&quot;</span>)&lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot;This is title case &quot;</span>&lt;&lt;<a name="a8"></a><a class="code" href="group__convert.html#ga646f42adb01baf395d632c32f556a5b9">to_title</a>(L<span class="stringliteral">&quot;Hello World!&quot;</span>)&lt;&lt;endl;
+ wcout&lt;&lt;L<span class="stringliteral">&quot;This is fold case &quot;</span>&lt;&lt;<a name="a9"></a><a class="code" href="group__convert.html#gabd1bc157122a5b9392487126fd0fffe5">fold_case</a>(L<span class="stringliteral">&quot;Hello World!&quot;</span>)&lt;&lt;endl;
+
+}
+
+
+<span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span>
+</pre></div> </div>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/html/working_with_multiple_locales.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/html/working_with_multiple_locales.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale: Working with multiple locales</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+<!--
+ Switch the lines for stand alone version
+ <link rel="stylesheet" type="text/css" href="http://www.boost.org/style-v2/section-basic.css">
+-->
+<link rel="stylesheet" type="text/css" href="../style/section-basic.css">
+</head>
+<body>
+<div id="boost-common-heading-doc">
+ <div class="heading-inner">
+ <div class="heading-placard"></div>
+
+ <h1 class="heading-title">
+ <a href="http://www.boost.org/">
+ <!--
+ Switch the lines for stand alone version
+ <img src="http://www.boost.org/gfx/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ -->
+ <img src="../style/space.png" alt= "Boost C++ Libraries" class="heading-logo" />
+ <span class="heading-boost">Boost</span>
+ <span class="heading-cpplibraries">C++ Libraries</span>
+ </a>
+ </h1>
+
+ <p class="heading-quote">
+
+ <q>...one of the most highly
+ regarded and expertly designed C++ library projects in the
+ world.</q>
+
+ <span class="heading-attribution">&mdash; <a href=
+ "http://www.gotw.ca/" class="external">Herb Sutter</a> and <a href=
+ "http://en.wikipedia.org/wiki/Andrei_Alexandrescu" class="external">Andrei
+ Alexandrescu</a>, <a href=
+ "http://safari.awprofessional.com/?XmlId=0321113586" class="external">C++
+ Coding Standards</a></span>
+ </p>
+ </div>
+</div>
+
+<div id="boost-common-heading-doc-spacer"></div>
+<!-- Generated by Doxygen 1.7.1 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul class="tablist">
+ <li>Main Page</li>
+ <li>Modules</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li>Files</li>
+ <li>Examples</li>
+ </ul>
+ </div>
+ <div class="navpath">
+ <ul>
+ <li><a class="el" href="main.html">Boost.Locale</a> </li>
+ <li><a class="el" href="using_boost_locale.html">Using Boost.Locale</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<h1>Working with multiple locales </h1> </div>
+</div>
+<div class="contents">
+<p>Boost.Locale allows you to work safely with multiple locales in the same process. As we mentioned before, the locale generation process is not a cheap one. Thus, when we work with multiple locales and need to switch between them, we recommend that you create all the locales you need when the program starts.</p>
+<p>To simplify this process, the <a class="el" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">boost::locale::generator</a> class has an option to cache all generated locales. With this option, when you create a locale that was previously generated, it would be fetched from the existing locale set instead. This operation is thread safe.</p>
+<p>This option must be explicitly enabled by calling the <a class="el" href="classboost_1_1locale_1_1generator.html#ac2d152e2803cd96f4acc646943f2df51">locale_cache_enabled</a> member function of <a class="el" href="classboost_1_1locale_1_1generator.html" title="the major class used for locale generation">boost::locale::generator</a> with <code>true</code> as the parameter.</p>
+<p>For example:</p>
+<div class="fragment"><pre class="fragment"> generator gen;
+ gen.locale_cache_enabled(<span class="keyword">true</span>);
+ gen(<span class="stringliteral">&quot;en_US.UTF-8&quot;</span>);
+ gen(<span class="stringliteral">&quot;de_DE.UTF-8&quot;</span>);
+ gen(<span class="stringliteral">&quot;ja_JP.UTF-8&quot;</span>);
+ <span class="comment">// Create all locales</span>
+
+ std::locale en=gen(<span class="stringliteral">&quot;en_US.UTF-8&quot;</span>);
+ <span class="comment">// Fetch an existing locale from the cache</span>
+ std::locale ar=gen(<span class="stringliteral">&quot;ar_EG.UTF-8&quot;</span>);
+ <span class="comment">// Because ar_EG not in the cache, a new locale is generated (and cached)</span>
+</pre></div><p>Then these locales can be imbued to <code>iostreams</code> or used directly as parameters to various functions. </p>
+</div>
+<hr class="footer"/><address class="footer"><small>
+&copy; 2009-2011 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.
+</small></address>
+</body>
+</html>

Added: trunk/libs/locale/doc/index.template.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/index.template.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,16 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Boost.Locale</title>
+</head>
+<frameset cols="*,250">
+ <frame src="main.html" name="basefrm"/>
+ <frame src="tree.html" name="treefrm"/>
+ <noframes>
+ <body>
+ Frames are disabled. Click here to go to the main page.
+ </body>
+ </noframes>
+</frameset>
+</html>

Added: trunk/libs/locale/doc/locale_gen.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/locale_gen.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,102 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page locale_gen Locale Generation
+
+Each locale is defined by a specific locale identifier, which contains a mandatory part (Language) and several optional parts
+(Country, Variant, keywords and character encoding of \c std::string). Boost.Locale uses the POSIX naming convention for locales,
+i.e. a locale is defined as <tt>language[_COUNTRY][.encoding][\@variant]</tt>, where lang is ISO-639 language name like "en" or "ru",
+COUNTRY is the ISO-3166 country identifier like "US" or "DE", encoding is the eight-bit character encoding like \c UTF-8 or \c ISO-8859-1,
+and variant is additional options for specializing the locale, like \c euro or \c calendar=hebrew, see \ref locale_gen_variant.
+
+Note that each locale should include the encoding in order to handle \c char based strings correctly.
+
+\section locale_gen_basics Basics
+
+The class \ref boost::locale::generator "generator" provides tools to generate the locales we need. The simplest way to use
+\c generator is to create a locale and set it as the global one:
+
+\code
+ #include <boost/locale.hpp>
+
+ using namespace boost::locale;
+ int main()
+ {
+ generator gen;
+ // Create locale generator
+ std::locale::global(gen(""));
+ // "" - the system default locale, set
+ // it globally
+ }
+\endcode
+
+Of course we can also specify the locale manually
+
+\code
+ std::locale loc = gen("en_US.UTF-8");
+ // Use English, United States locale
+\endcode
+
+\note
+
+- Even if your application uses wide strings everywhere, you should specify the
+ 8-bit encoding to use for 8-bit stream IO operations like \c cout or \c fstream.
+ \n
+- The default locale is defined by the environment variables \c LC_CTYPE , \c LC_ALL , and \c LANG
+ in that order (i.e. \c LC_CTYPE first and \c LANG last). On Windows, the library
+ also queries the \c LOCALE_USER_DEFAULT option in the Win32 API when these variables
+ are not set.
+
+\b Tip: Prefer using UTF-8 Unicode encoding over 8-bit encodings like the ISO-8859-X ones.
+
+By default the generated locales include all supported categories and character types. However, if your
+application uses only 8-bit encodings, only wide-character encodings, or only specific facets, you can
+limit the facet generation to specific categories and character types by calling the
+\ref boost::locale::generator::categories() "categories" and \ref boost::locale::generator::characters() "characters"
+member functions of the \ref boost::locale::generator "generator" class.
+
+For example:
+
+\code
+ generator gen;
+ gen.characters(wchar_t_facet);
+ gen.categories(collation_facet | formatting_facet);
+ std::locale::global(gen("de_DE.UTF-8"));
+\endcode
+
+\section locale_gen_variant Variant
+
+The variant part of the locale (the part that comes after \@ symbol) is localization \ref using_localization_backends "back-end" dependent.
+
+\subsection locale_gen_variant_non_icu Non ICU Backends
+
+\ref posix_backend "POSIX" and \ref std_backend "std" back-ends use their own OS specific naming conventions and
+depend on the current OS configuration. For example typical Linux distribution provides \c euro for currency selection,
+\c cyrillic and \c latin for specification of language script.
+
+\ref winapi_backend "winapi" back-end does not support any variants.
+
+\subsection locale_gen_variant_icu ICU Backend
+
+ICU provides wide range of locale variant options. For detailed instructions read this
+ICU manual pages.
+
+However in general it is represented as set of key=value pairs separated with a semicolon ";" For example:
+"@collation=phonebook;calendar=islamic-civil".
+
+Currently ICU supports following keys:
+
+- \c calendar - the calendar used for the current locale. For example: \c gregorian, \c japanese,
+ \c buddhist, \c islamic, \c hebrew, \c chinese, \c islamic-civil.
+- \c collation - the collation order used for this locales, for example \c phonebook, \c pinyin, \c traditional,
+ \c stroke, \c direct, \c posix.
+- \c currency - the currency used in this locale, the standard 3 letter code like USD or JPY.
+- \c numbers - the numbering system used, for example: \c latn, \c arab, \c thai.
+
+Please refer to CLDR and ICU documentation for exact list of keys and values:
+
+- ICU User Guide/Locale/Keywords
+- Unicode Locale Data Markup Language
+
+
+*/
+

Added: trunk/libs/locale/doc/locale_information.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/locale_information.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,27 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page locale_information Getting information about the current locale
+
+The \c std::locale::name function provides very limited information about a locale. Such a name is platform-
+and compiler-dependent, and is useless for Boost.Locale. There is no way to change it, so for all locales
+created by Boost.Locale, \c name() returns the same value as \c name() for \c std::locale::classic().
+
+Thus an additional facet was created, giving more precise information: boost::locale::info. It has the following member functions:
+
+- \ref boost::locale::info::name() "std::string name()" -- the full name of the locale, for example \c en_US.UTF-8
+- \ref boost::locale::info::language() "std::string language()" -- the ISO-639 language code of the current locale, for example "en".
+- \ref boost::locale::info::country() "std::string country()" -- the ISO-3199 country code of the current locale, for example "US".
+- \ref boost::locale::info::variant() "std::string variant()" -- the variant of current locale, for example "euro".
+- \ref boost::locale::info::encoding() "std::string encoding()" -- the encoding used for \c char based strings, for example "UTF-8"
+- \ref boost::locale::info::utf8() "bool utf8()" -- a fast way to check whether the encoding is UTF-8.
+
+For example:
+
+\code
+ cout << "The language code is " << std::use_facet<boost::locale::info>(some_locale).language() << endl;
+\endcode
+
+
+*/
+
+

Added: trunk/libs/locale/doc/localized_text_formatting.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/localized_text_formatting.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,160 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page localized_text_formatting Localized Text Formatting
+
+The \c iostream manipulators are very useful, but when we create a messages for the user, sometimes we need something
+like good old \c printf or \c boost::format.
+
+Unfortunately \c boost::format has several limitations in context of localization:
+
+-# It renders all parameters using global locale rather than target \c ostream locale. For example:
+ \n
+ \code
+ std::locale::global(std::locale("en_US.UTF-8"));
+ output.imbue(std::locale("de_DE.UTF-8"))
+ output << boost::format("%1%") % 1234.345;
+ \endcode
+ \n
+ This would write "1,234.235" to output, instead of the "1.234,234" that is expected for "de_DE" locale
+-# It knows nothing about the new Boost.Locale manipulators.
+-# The \c printf-like syntax is very limited for formatting complex localized data, not allowing
+ the formatting of dates, times, or currencies
+
+Thus a new class, boost::locale::format, was introduced. For example:
+
+\code
+ wcout << wformat(L"Today {1,date} I would meet {2} at home") % time(0) % name <<endl;
+\endcode
+
+Each format specifier is enclosed within \c {} brackets, is separated with a comma "," and
+may have an additional option after an equals symbol '='. This option may be simple ASCII text or single-quoted localized text.
+If a single-quote should be inserted within the text, it may be represented with a pair of single-quote characters.
+
+Here is an example of a format string:
+
+\verbatim
+ "Ms. {1} had arrived at {2,ftime='%I o''clock'} at home. The exact time is {2,time=full}"
+\endverbatim
+
+The syntax is described by following grammar:
+
+\verbatim
+ format : '{' parameters '}'
+ parameters: parameter | parameter ',' parameters;
+ parameter : key ["=" value] ;
+ key : [0-9a-zA-Z<>]+ ;
+ value : ascii-string-excluding-"}"-and="," | local-string ;
+ local-string : quoted-text | quoted-text local-string;
+ quoted-text : '[^']*' ;
+\endverbatim
+
+
+You can include literal '{' and '}' by inserting double "{{" or "}}"
+to the text.
+
+\code
+cout << format(translate("Unexpected `{{' in line {1} in file {2}")) % pos % file;
+\endcode
+
+Would display something like
+
+\verbatim
+Unexpected `{' in line 5 in file source.cpp
+\endverbatim
+
+The following format key-value pairs are supported:
+
+- <tt>[0-9]+</tt> -- digits, the index of the formatted parameter -- required.
+- \c num or \c number -- format a number. Options are:
+ \n
+ - \c hex -- display in hexadecimal format
+ - \c oct -- display in octal format
+ - \c sci or \c scientific -- display in scientific format
+ - \c fix or \c fixed -- display in fixed format
+ \n
+ For example, \c number=sci
+- \c cur or \c currency -- format currency. Options are:
+ \n
+ - \c iso -- display using ISO currency symbol.
+ - \c nat or \c national -- display using national currency symbol.
+ \n
+- \c per or \c percent -- format a percentage value.
+- \c date, \c time, \c datetime or \c dt -- format a date, a time, or a date and time. Options are:
+ \n
+ - \c s or \c short -- display in short format.
+ - \c m or \c medium -- display in medium format.
+ - \c l or \c long -- display in long format.
+ - \c f or \c full -- display in full format.
+- \c ftime with string (quoted) parameter -- display as with \c strftime. See \c as::ftime manipulator.
+- \c spell or \c spellout -- spell the number.
+- \c ord or \c ordinal -- format an ordinal number (1st, 2nd... etc)
+- \c left or \c < -- align-left.
+- \c right or \c > -- align-right.
+- \c width or \c w -- set field width (requires parameter).
+- \c precision or \c p -- set precision (requires parameter).
+- \c locale -- with parameter -- switch locales for the current operation. This command generates a locale
+ with formatting facets, giving more fine grained control of formatting. For example:
+ \n
+ \code
+ cout << format("This article was published at {1,date=l} (Gregorian) {1,locale=he_IL_at_calendar=hebrew,date=l} (Hebrew)") % date;
+ \endcode
+- \c timezone or \c tz -- the name of the timezone to display the time in. For example:\n
+ \code
+ cout << format("Time is: Local {1,time}, ({1,time,tz=EET} Eastern European Time)") % date;
+ \endcode
+- \c local - display the time in local time
+- \c gmt - display the time in UTC time scale
+ \code
+ cout << format("Local time is: {1,time,local}, universal time is {1,time,gmt}") % time;
+ \endcode
+
+The constructor for the \ref boost::locale::format "format" class can take an object of type \ref boost::locale::message "message", simplifying integration with message translation code.
+
+For example:
+
+\code
+ cout<< format(translate("Adding {1} to {2}, we get {3}")) % a % b % (a+b) << endl;
+\endcode
+
+A formatted string can be fetched directly by using the \ref boost::locale::format::str() "str(std::locale const &loc=std::locale())" member function. For example:
+
+\code
+ std::wstring de = (wformat(translate("Adding {1} to {2}, we get {3}")) % a % b % (a+b)).str(de_locale);
+ std::wstring fr = (wformat(translate("Adding {1} to {2}, we get {3}")) % a % b % (a+b)).str(fr_locale);
+\endcode
+
+
+\note There is one significant difference between \c boost::format and \c boost::locale::format: Boost.Locale's format converts its
+parameters only when written to an \c ostream or when the `str()` member function is called. It only saves references to the objects that
+can be written to a stream.
+
+This is generally not a problem when all operations are done in one statement, such as:
+
+\code
+ cout << format("Adding {1} to {2}, we get {3}") % a % b % (a+b);
+\endcode
+
+Because the temporary value of \c (a+b) exists until the formatted data is actually written to the stream. But following code is wrong:
+
+\code
+ format fmt("Adding {1} to {2}, we get {3}");
+ fmt % a;
+ fmt % b;
+ fmt % (a+b);
+ cout << fmt;
+\endcode
+
+Because the temporary value of \c (a+b) no longer exists when \c fmt is written to the stream. A correct solution would be:
+
+\code
+ format fmt("Adding {1} to {2}, we get {3}");
+ fmt % a;
+ fmt % b;
+ int a_plus_b = a+b;
+ fmt % a_plus_b;
+ cout << fmt;
+\endcode
+
+*/
+
+

Added: trunk/libs/locale/doc/main.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/main.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,84 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+
+/*!
+
+\mainpage Boost.Locale
+
+\section main_intro What is Boost.Locale?
+
+Boost.Locale is a library that provides high quality
+localization facilities in a C++ way.
+
+It gives powerful tools for development of cross platform
+localized software - the software that talks to user
+in its language.
+
+Provided Features:
+
+- Correct case conversion, case folding and normalization.
+- Collation (sorting), including support for 4 Unicode
+ collation levels.
+- Date, time, timezone and calendar manipulations,
+ formatting and parsing, including transparent support
+ for calendars other than Gregorian.
+- Boundary analysis for characters, words, sentences and
+ line-breaks.
+- Number formatting, spelling and parsing.
+- Monetary formatting and parsing.
+- Powerful message formatting (string translation)
+ including support for plural forms, using GNU catalogs.
+- Character set conversion.
+- Transparent support for 8-bit character sets like Latin1
+- Support for \c char and \c wchar_t
+- Experimental support for C++0x \c char16_t and \c char32_t
+ strings and streams.
+
+Boost.Locale enhances and unifies the standard library's API
+the way it becomes useful and convenient for development
+of cross platform and "cross-culture" software.
+
+In order to achieve this goal Boost.Locale uses
+the-state-of-the-art Unicode and Localization
+library: ICU - International Components for Unicode.
+
+Boost.Locale creates the natural glue between the C++ locales
+framework, iostreams, and the powerful ICU library.
+
+Boost.Locale provides non-ICU based localization support as well.
+It is based on the operating system native API or on the standard
+C++ library support. Sacrificing some less important features,
+Boost.Locale becomes less powerful but lighter and easier to deploy
+and use library.
+
+
+\section main_tutorial Tutorials
+
+- \subpage std_locales
+- \subpage using_boost_locale
+ - \ref locale_gen
+ - \ref collation
+ - \ref conversions
+ - \ref formatting_and_parsing
+ - \ref messages_formatting
+ - \ref charset_handling
+ - \ref boundary_analysys
+ - \ref localized_text_formatting
+ - \ref dates_times_timezones
+ - \ref locale_information
+ - \ref working_with_multiple_locales
+- \subpage using_localization_backends
+- \subpage recommendations_and_myths
+- \subpage building_boost_locale
+- \subpage appendix
+ - \ref rationale
+ - \ref faq
+ - \ref default_encoding_under_windows
+ - \ref running_examples_under_windows
+ - \ref gettext_for_windows
+ - \ref glossary
+ - \ref tested_compilers_and_paltforms
+ - \ref status_of_cpp0x_characters_support
+ - \ref special_thanks
+
+*/
+

Added: trunk/libs/locale/doc/messages_formatting.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/messages_formatting.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,558 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page messages_formatting Messages Formatting (Translation)
+
+- \ref messages_formatting_into
+- \ref msg_loading_dictionaries
+- \ref message_translation
+ - \ref indirect_message_translation
+ - \ref plural_forms
+ - \ref multiple_gettext_domain
+ - \ref direct_message_translation
+- \ref extracting_messages_from_code
+- \ref custom_file_system_support
+- \ref msg_non_ascii_keys
+- \ref msg_qna
+
+\section messages_formatting_into Introduction
+
+Messages formatting is probably the most important part of
+the localization - making your application speak in the user's language.
+
+Boost.Locale uses the GNU Gettext localization model.
+We recommend you read the general documentation
+of GNU Gettext, as it is outside the scope of this document.
+
+The model is following:
+
+- First, our application \c foo is prepared for localization by calling the \ref boost::locale::translate() "translate" function
+ for each message used in user interface.
+ \n
+ For example:
+ \code
+ cout << "Hello World" << endl;
+ \endcode
+ Is changed to
+ \n
+ \code
+ cout << translate("Hello World") << endl;
+ \endcode
+- Then all messages are extracted from the source code and a special \c foo.po file is generated that contains all of the
+ original English strings.
+ \n
+ \verbatim
+ ...
+ msgid "Hello World"
+ msgstr ""
+ ...
+ \endverbatim
+- The \c foo.po file is translated for the supported locales. For example, \c de.po, \c ar.po, \c en_CA.po , and \c he.po.
+ \n
+ \verbatim
+ ...
+ msgid "Hello World"
+ msgstr "שלום עולם"
+ \endverbatim
+ And then compiled to the binary \c mo format and stored in the following file structure:
+ \n
+ \verbatim
+ de
+ de/LC_MESSAGES
+ de/LC_MESSAGES/foo.mo
+ en_CA/
+ en_CA/LC_MESSAGES
+ en_CA/LC_MESSAGES/foo.mo
+ ...
+ \endverbatim
+ \n
+ When the application starts, it loads the required dictionaries. Then when the \c translate function is called and the message is written
+ to an output stream, a dictionary lookup is performed and the localized message is written out instead.
+
+\section msg_loading_dictionaries Loading dictionaries
+
+All the dictionaries are loaded by the \ref boost::locale::generator "generator" class.
+Using localized strings in the application, requires specification
+of the following parameters:
+
+-# The search path of the dictionaries
+-# The application domain (or name)
+
+This is done by calling the following member functions of the \ref boost::locale::generator "generator" class:
+
+- \ref boost::locale::generator::add_messages_path() "add_messages_path" - add the root path to the dictionaries.
+ \n
+ For example: if the dictionary is located at \c /usr/share/locale/ar/LC_MESSAGES/foo.mo, then path should be \c /usr/share/locale.
+ \n
+- \ref boost::locale::generator::add_messages_domain() "add_messages_domain" - add the domain (name) of the application. In the above case it would be "foo".
+
+\note At least one domain and one path should be specified in order to load dictionaries.
+
+This is an example of our first fully localized program:
+
+\code
+#include <boost/locale.hpp>
+#include <iostream>
+
+using namespace std;
+using namespace boost::locale;
+
+int main()
+{
+ generator gen;
+
+ // Specify location of dictionaries
+ gen.add_messages_path(".");
+ gen.add_messages_domain("hello");
+
+ // Generate locales and imbue them to iostream
+ locale::global(gen(""));
+ cout.imbue(locale());
+
+ // Display a message using current system locale
+ cout << translate("Hello World") << endl;
+}
+\endcode
+
+
+\section message_translation Message Translation
+
+There are two ways to translate messages:
+
+- using \ref boost_locale_translate_family "boost::locale::translate()" family of functions:
+ \n
+ These functions create a special proxy object \ref boost::locale::basic_message "basic_message"
+ that can be converted to string according to given locale or written to \c std::ostream
+ formatting the message in the \c std::ostream's locale.
+ \n
+ It is very convenient for working with \c std::ostream object and for postponing message
+ translation
+- Using \ref boost_locale_gettext_family "boost::locale::gettext()" family of functions:
+ \n
+ These are functions that are used for direct message translation: they receive as a parameter
+ an original message or a key and convert it to the \c std::basic_string in given locale.
+ \n
+ These functions have similar names to thous used in the GNU Gettext library.
+
+\subsection indirect_message_translation Indirect Message Translation
+
+The basic function that allows us to translate a message is \ref boost_locale_translate_family "boost::locale::translate()" family of functions.
+
+These functions use a character type \c CharType as template parameter and receive either <tt>CharType const *</tt> or <tt>std::basic_string<CharType></tt> as input.
+
+These functions receive an original message and return a special proxy
+object - \ref boost::locale::basic_message "basic_message<CharType>".
+This object holds all the required information for the message formatting.
+
+When this object is written to an output \c ostream, it performs a dictionary lookup of the message according to the locale
+imbued in \c iostream.
+
+If the message is found in the dictionary it is written to the output stream,
+otherwise the original string is written to the stream.
+
+For example:
+
+\code
+// Translate a simple message "Hello World!"
+std::cout << boost::locale::translate("Hello World!") << std::endl;
+\endcode
+
+This allows the program to postpone translation of the message until the translation is actually needed, even to different
+locale targets.
+
+\code
+// Several output stream that we write a message to
+// English, Japanese, Hebrew etc.
+// Each one them has installed std::locale object that represents
+// their specific locale
+std::ofstream en,ja,he,de,ar;
+
+// Send single message to multiple streams
+void send_to_all(message const &msg)
+{
+ // in each of the cases below
+ // the message is translated to different
+ // language
+ en << msg;
+ ja << msg;
+ he << msg;
+ de << msg;
+ ar << msg;
+}
+
+int main()
+{
+ ...
+ send_to_all(translate("Hello World"));
+}
+\endcode
+
+\note
+
+- \ref boost::locale::basic_message "basic_message" can be implicitly converted
+ to an apopriate std::basic_string using
+ the global locale:
+ \n
+ \code
+ std::wstring msg = translate(L"Do you want to open the file?");
+ \endcode
+- \ref boost::locale::basic_message "basic_message" can be explicitly converted
+ to a string using the \ref boost::locale::basic_message::str() "str()" member function for a specific locale.
+ \n
+ \code
+ std::locale ru_RU = ... ;
+ std::string msg = translate("Do you want to open the file?").str(ru_RU);
+ \endcode
+
+
+\subsection plural_forms Plural Forms
+
+GNU Gettext catalogs have simple, robust and yet powerful plural forms support. We recommend to read the
+original GNU documentation here.
+
+Let's try to solve a simple problem, displaying a message to the user:
+
+\code
+ if(files == 1)
+ cout << translate("You have 1 file in the directory") << endl;
+ else
+ cout << format(translate("You have {1} files in the directory")) % files << endl;
+\endcode
+
+This very simple task becomes quite complicated when we deal with languages other than English. Many languages have more
+than two plural forms. For example, in Hebrew there are special forms for single, double, plural, and plural above 10.
+They can't be distinguished by the simple rule "is n 1 or not"
+
+The correct solution is to give a translator an ability to choose a plural form on its own. Thus the translate
+function can receive two additional parameters English plural form a number: <tt>translate(single,plural,count)</tt>
+
+For example:
+
+\code
+cout << format(translate( "You have {1} file in the directory",
+ "You have {1} files in the directory",
+ files)) % files << endl;
+\endcode
+
+A special entry in the dictionary specifies the rule to choose the correct plural form in the target language.
+For example, the Slavic language family has 3 plural forms, that can be chosen using following equation:
+
+\code
+ plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
+\endcode
+
+Such equation is stored in the message catalog itself and it is evaluated during translation to supply the correct form.
+
+So the code above would display 3 different forms in Russian locale for values of 1, 3 and 5:
+
+\verbatim
+У вас есть 1 файл в каталоге
+У вас есть 3 файла в каталоге
+У вас есть 5 файлов в каталоге
+\endverbatim
+
+And for Japanese that does not have plural forms at all it would display the same message
+for any numeric value.
+
+For more detailed information please refer to GNU Gettext: 11.2.6 Additional functions for plural forms
+
+
+\subsection adding_context_information Adding Context Information
+
+In many cases it is not sufficient to provide only the original English string to get the correct translation.
+You sometimes need to provide some context information. In German, for example, a button labeled "open" is translated to
+"öffnen" in the context of "opening a file", or to "aufbauen" in the context of opening an internet connection.
+
+In these cases you must add some context information to the original string, by adding a comment.
+
+\code
+button->setLabel(translate("File","open"));
+\endcode
+
+The context information is provided as the first parameter to the \ref boost::locale::translate() "translate"
+function in both singular and plural forms. The translator would see this context information and would be able to translate the
+"open" string correctly.
+
+For example, this is how the \c po file would look:
+
+\code
+msgctxt "File"
+msgid "open"
+msgstr "öffnen"
+
+msgctxt "Internet Connection"
+msgid "open"
+msgstr "aufbauen"
+\endcode
+
+\note Context information requires more recent versions of the gettext tools (>=0.15) for extracting strings and
+formatting message catalogs.
+
+
+\subsection multiple_gettext_domain Working with multiple messages domains
+
+In some cases it is useful to work with multiple message domains.
+
+For example, if an application consists of several independent modules, it may
+have several domains - a separate domain for each module.
+
+For example, developing a FooBar office suite we might have:
+
+- a FooBar Word Processor, using the "foobarwriter" domain
+- a FooBar Spreadsheet, using the "foobarspreadsheet" domain
+- a FooBar Spell Checker, using the "foobarspell" domain
+- a FooBar File handler, using the "foobarodt" domain
+
+There are three ways to use non-default domains:
+
+- When working with \c iostream, you can use the parameterized manipulator \ref
+ boost::locale::as::domain "as::domain(std::string const &)", which allows switching domains in a stream:
+ \n
+ \code
+ cout << as::domain("foo") << translate("Hello") << as::domain("bar") << translate("Hello");
+ // First translation is taken from dictionary foo and the other from dictionary bar
+ \endcode
+- You can specify the domain explicitly when converting a \c message object to a string:
+ \code
+ std::wstring foo_msg = translate(L"Hello World").str("foo");
+ std::wstring bar_msg = translate(L"Hello World").str("bar");
+ \endcode
+- You can specify the domain directly using a \ref direct_message_translation "convenience" interface:
+ \code
+ MessageBox(dgettext("gui","Error Occurred"));
+ \endcode
+
+\subsection direct_message_translation Direct translation (Convenience Interface)
+
+Many applications do not write messages directly to an output stream or use only one locale in the process, so
+calling <tt>translate("Hello World").str()</tt> for a single message would be annoying. Thus Boost.Locale provides
+GNU Gettext-like localization functions for direct translation of the messages. However, unlike the GNU Gettext functions,
+the Boost.Locale translation functions provide an additional optional parameter (locale), and support wide, u16 and u32 strings.
+
+The GNU Gettext like functions prototypes can be found \ref boost_locale_gettext_family "in this section".
+
+
+All of these functions can have different prefixes for different forms:
+
+- \c d - translation in specific domain
+- \c n - plural form translation
+- \c p - translation in specific context
+
+\code
+ MessageBoxW(0,pgettext(L"File Dialog",L"Open?").c_str(),gettext(L"Question").c_str(),MB_YESNO);
+\endcode
+
+
+\section extracting_messages_from_code Extracting messages from the source code
+
+There are many tools to extract messages from the source code into the \c .po file format. The most
+popular and "native" tool is \c xgettext which is installed by default on most Unix systems and freely downloadable
+for Windows (see \ref gettext_for_windows).
+
+For example, we have a source file called \c dir.cpp that prints:
+
+\code
+ cout << translate("Listing of catalog {1}:") % file_name << endl;
+ cout << translate("Catalog {1} contains 1 file","Catalog {1} contains {2,num} files",files_no)
+ % file_name % files_no << endl;
+\endcode
+
+Now we run:
+
+\verbatim
+xgettext --keyword=translate:1,1t --keyword=translate:1,2,3t dir.cpp
+\endverbatim
+
+And a file called \c messages.po created that looks like this (approximately):
+
+\code
+#: dir.cpp:1
+msgid "Listing of catalog {1}:"
+msgstr ""
+
+#: dir.cpp:2
+msgid "Catalog {1} contains 1 file"
+msgid_plural "Catalog {1} contains {2,num} files"
+msgstr[0] ""
+msgstr[1] ""
+\endcode
+
+This file can be given to translators to adapt it to specific languages.
+
+We used the \c --keyword parameter of \c xgettext to make it suitable for extracting messages from
+source code localized with Boost.Locale, searching for <tt>translate()</tt> function calls instead of the default <tt>gettext()</tt>
+and <tt>ngettext()</tt> ones.
+The first parameter <tt>--keyword=translate:1,1t</tt> provides the template for basic messages: a \c translate function that is
+called with 1 argument (1t) and the first message is taken as the key. The second one <tt>--keyword=translate:1,2,3t</tt> is used
+for plural forms.
+It tells \c xgettext to use a <tt>translate()</tt> function call with 3 parameters (3t) and take the 1st and 2nd parameter as keys. An
+additional marker \c Nc can be used to mark context information.
+
+The full set of xgettext parameters suitable for Boost.Locale is:
+
+\code
+xgettext --keyword=translate:1,1t --keyword=translate:1c,2,2t \
+ --keyword=translate:1,2,3t --keyword=translate:1c,2,3,4t \
+ --keyword=gettext:1 --keyword=pgettext:1c,2 \
+ --keyword=ngettext:1,2 --keyword=npgettext:1c,2,3 \
+ source_file_1.cpp ... source_file_N.cpp
+\endcode
+
+Of course, if you do not use "gettext" like translation you
+may ignore some of these parameters.
+
+\subsection custom_file_system_support Custom Filesystem Support
+
+When the access to actual file system is limited like in ActiveX controls or
+when the developer wants to ship all-in-one executable file,
+it is useful to be able to load \c gettext catalogs from a custom location -
+a custom file system.
+
+Boost.Locale provides an option to install boost::locale::message_format facet
+with customized options provided in boost::locale::gnu_gettext::messages_info structure.
+
+This structure contains \c boost::function based
+\ref boost::locale::gnu_gettext::messages_info::callback_type "callback"
+that allows user to provide custom functionality to load message catalog files.
+
+For example:
+
+\code
+// Configure all options for message catalog
+namespace blg = boost::locale::gnu_gettext;
+blg::messages_info info;
+info.language = "he";
+info.country = "IL";
+info.encoding="UTF-8";
+info.paths.push_back(""); // You need some even empty path
+info.domains.push_back(blg::messages_info::domain("my_app"));
+info.callback = some_file_loader; // Provide a callback
+
+// Create a basic locale without messages support
+boost::locale::generator gen;
+std::locale base_locale = gen("he_IL.UTF-8");
+
+// Install messages catalogs for "char" support to the final locale
+// we are going to use
+std::locale real_locale(base_locale,blg::create_messages_facet<char>(info));
+\endcode
+
+In order to setup \ref boost::locale::gnu_gettext::messages_info::language "language", \ref boost::locale::gnu_gettext::messages_info::country "country" and other members you may use \ref boost::locale::info facet for convenience,
+
+\code
+// Configure all options for message catalog
+namespace blg = boost::locale::gnu_gettext;
+blg::messages_info info;
+
+info.paths.push_back(""); // You need some even empty path
+info.domains.push_back(blg::messages_info::domain("my_app"));
+info.callback = some_file_loader; // Provide a callback
+
+// Create an object with default locale
+std::locale base_locale = gen("");
+
+// Use boost::locale::info to configure all parameters
+
+boost::locale::info const &properties = std::use_facet<boost::locale::info>(base_locale);
+info.language = properties.language();
+info.country = properties.country();
+info.encoding = properties.encoding();
+info.variant = properties.variant();
+
+// Install messages catalogs to the final locale
+std::locale real_locale(base_locale,blg::create_messages_facet<char>(info));
+\endcode
+
+\section msg_non_ascii_keys Non US-ASCII Keys
+
+Boost.Locale assumes that you use English for original text messages. And the best
+practice is to use US-ASCII characters for original keys.
+
+However in some cases it us useful in insert some Unicode characters in text like
+for example Copyright "©" character.
+
+As long as your narrow character string encoding is UTF-8 nothing further should be done.
+
+Boost.Locale assumes that your sources are encoded in UTF-8 and the input narrow
+string use UTF-8 - which is the default for most compilers around (with notable
+exception of Microsoft Visual C++).
+
+However if your narrow strings encoding in the source file is not UTF-8 but some other
+encoding like windows-1252, the string would be misinterpreted.
+
+You can specify the character set of the original strings when you specify the
+domain name for the application.
+
+\code
+#include <boost/locale.hpp>
+#include <iostream>
+
+using namespace std;
+using namespace boost::locale;
+
+int main()
+{
+ generator gen;
+
+ // Specify location of dictionaries
+ gen.add_messages_path(".");
+ // Specify the encoding of the source string
+ gen.add_messages_domain("copyrighted/windows-1255");
+
+ // Generate locales and imbue them to iostream
+ locale::global(gen(""));
+ cout.imbue(locale());
+
+ // In Windows 1255 (C) symbol is encoded as 0xA9
+ cout << translate("© 2001 All Rights Reserved") << endl;
+}
+\endcode
+
+Thus if the programs runs in UTF-8 locale the copyright symbol would
+be automatically converted to an appropriate UTF-8 sequence if the
+key is missing in the dictionary.
+
+
+\subsection msg_qna Questions and Answers
+
+- Do I need GNU Gettext to use Boost.Locale?
+ \n
+ Boost.Locale provides a run-time environment to load and use GNU Gettext message catalogs, but it does
+ not provide tools for generation, translation, compilation and management of these catalogs.
+ Boost.Locale only reimplements the GNU Gettext libintl.
+ \n
+ You would probably need:
+ \n
+ -# Boost.Locale itself -- for runtime.
+ -# A tool for extracting strings from source code, and managing them: GNU Gettext provides good tools, but other
+ implementations are available as well.
+ -# A good translation program like Lokalize, Pedit or GTranslator.
+
+- Why doesn't Boost.Locale provide tools for extracting and management of message catalogs. Why should
+ I use GPL-ed software? Are my programs or message catalogs affected by its license?
+ \n
+ -# Boost.Locale does not link to or use any of the GNU Gettext code, so you need not worry about your code as
+ the runtime library is fully reimplemented.
+ -# You may freely use GPL-ed software for extracting and managing catalogs, the same way as you are free to use
+ a GPL-ed editor. It does not affect your message catalogs or your code.
+ -# I see no reason to reimplement well debugged, working tools like \c xgettext, \c msgfmt, \c msgmerge that
+ do a very fine job, especially as they are freely available for download and support almost any platform.
+ All Linux distributions, BSD Flavors, Mac OS X and other Unix like operating systems provide GNU Gettext tools
+ as a standard package.\n
+ Windows users can get GNU Gettext utilities via MinGW project. See \ref gettext_for_windows.
+
+
+- Is there any reason to prefer the Boost.Locale implementation to the original GNU Gettext runtime library?
+ In either case I would probably need some of the GNU tools.
+ \n
+ There are two important differences between the GNU Gettext runtime library and the Boost.Locale implementation:
+ \n
+ -# The GNU Gettext runtime supports only one locale per process. It is not thread-safe to use multiple locales
+ and encodings in the same process. This is perfectly fine for applications that interact directly with
+ a single user like most GUI applications, but is problematic for services and servers.
+ -# The GNU Gettext API supports only 8-bit encodings, making it irrelevant in environments that natively use
+ wide strings.
+ -# The GNU Gettext runtime library distributed under LGPL license which may be not convenient for some users.
+
+*/
+
+

Added: trunk/libs/locale/doc/rationale.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/rationale.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,230 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+
+\page rationale Design Rationale
+
+- \ref rationale_why
+- \ref why_icu
+- \ref why_icu_wrapper
+- \ref why_icu_api_is_hidden
+- \ref why_gnu_gettext
+- \ref why_posix_names
+- \ref why_linear_chunks
+- \ref why_abstract_api
+- \ref why_no_special_character_type
+
+\section rationale_why Why is it needed?
+
+Why do we need a localization library, when standard C++ facets (should) provide most of the required functionality:
+
+- Case conversion is done using the \c std::ctype facet
+- Collation is supported by \c std::collate and has nice integration with \c std::locale
+- There are \c std::num_put , \c std::num_get , \c std::money_put , \c std::money_get , \c std::time_put and \c std::time_get for numbers,
+ time, and currency formatting and parsing.
+- There is a \c std::messages class that supports localized message formatting.
+
+So why do we need such library if we have all the functionality within the standard library?
+
+Almost every(!) facet has design flaws:
+
+- \c std::collate supports only one level of collation, not allowing you to choose whether case- or accent-sensitive comparisons
+ should be performed.
+
+- \c std::ctype, which is responsible for case conversion, assumes that all conversions can be done on a per-character basis. This is
+ probably correct for many languages but it isn't correct in general.
+ \n
+ -# Case conversion may change a string's length. For example, the German word "grüßen" should be converted to "GRÜSSEN" in upper
+ case: the letter "ß" should be converted to "SS", but the \c toupper function works on a single-character basis.
+ -# Case conversion is context-sensitive. For example, the Greek word "ὈΔΥΣΣΕΎΣ" should be converted to "ὀδυσσεύς", where the Greek letter
+ "Σ" is converted to "σ" or to "ς", depending on its position in the word.
+ -# Case conversion cannot assume that a character is a single code point, which is incorrect for both the UTF-8 and UTF-16 encodings,
+ where individual code-points are represented by up to 4 \c char 's or two \c wchar_t 's on the Windows platform. This makes
+ \c std::ctype totally useless with these encodings.
+- \c std::numpunct and \c std::moneypunct do not specify the code points for digit representation at all,
+ so they cannot format numbers with the digits used under Arabic locales. For example,
+ the number "103" is expected to be displayed as "١٠٣" in the \c ar_EG locale.
+ \n
+ \c std::numpunct and \c std::moneypunct assume that the thousands separator is a single character. This is untrue
+ for the UTF-8 encoding where only Unicode 0-0x7F range can be represented as a single character. As a result, localized numbers can't be
+ represented correctly under locales that use the Unicode "EN SPACE" character for the thousands separator, such as Russian.
+ \n
+ This actually causes real problems under GCC and SunStudio compilers, where formatting numbers under a Russian locale creates invalid
+ UTF-8 sequences.
+- \c std::time_put and \c std::time_get have several flaws:
+ -# They assume that the calendar is always Gregorian, by using \c std::tm for time representation, ignoring the fact that in many
+ countries dates may be displayed using different calendars.
+ -# They always use a global time zone, not allowing specification of the time zone for formatting. The standard \c std::tm doesn't
+ even include a timezone field at all.
+ -# \c std::time_get is not symmetric with \c std::time_put, so you cannot parse dates and times created with \c std::time_put .
+ (This issue is addressed in C++0x and some STL implementation like the Apache standard C++ library.)
+- \c std::messages does not provide support for plural forms, making it impossible to correctly localize such simple strings as
+ "There are X files in the directory".
+
+Also, many features are not really supported by \c std::locale at all: timezones (as mentioned above), text boundary analysis, number
+spelling, and many others. So it is clear that the standard C++ locales are problematic for real-world applications.
+
+\section why_icu Why use an ICU wrapper instead of ICU?
+
+ICU is a very good localization library, but it has several serious flaws:
+
+- It is absolutely unfriendly to C++ developers. It ignores popular C++ idioms (the STL, RTTI, exceptions, etc), instead
+mostly mimicking the Java API.
+- It provides support for only one kind of string, UTF-16, when some users may want other Unicode encodings.
+For example, for XML or HTML processing UTF-8 is much more convenient and UTF-32 easier to use. Also there is no support for
+"narrow" encodings that are still very popular, such as the ISO-8859 encodings.
+
+For example: Boost.Locale provides direct integration with \c iostream allowing a more natural way of data formatting. For example:
+
+\code
+ cout << "You have "<<as::currency << 134.45 << " in your account as of "<<as::datetime << std::time(0) << endl;
+\endcode
+
+\section why_icu_wrapper Why an ICU wrapper and not an implementation-from-scratch?
+
+ICU is one of the best localization/Unicode libraries available. It consists of about half a million lines of well-tested,
+production-proven source code that today provides state-of-the art localization tools.
+
+Reimplementing of even a small part of ICU's abilities is an infeasible project which would require many man-years. So the
+question is not whether we need to reimplement the Unicode and localization algorithms from scratch, but "Do we need a good
+localization library in Boost?"
+
+Thus Boost.Locale wraps ICU with a modern C++ interface, allowing future reimplementation of parts with better alternatives,
+but bringing localization support to Boost today and not in the not-so-near-if-at-all future.
+
+
+\section why_icu_api_is_hidden Why is the ICU API not exposed to the user?
+
+Yes, the entire ICU API is hidden behind opaque pointers and users have no access to it. This is done for several reasons:
+
+- At some point, better localization tools may be accepted by future upcoming C++ standards, so they may not use ICU directly.
+- At some point, it should be possible to switch the underlying localization engine to something else, maybe the native operating
+system API or some other toolkit such as GLib or Qt that provides similar functionality.
+- Not all localization is done within ICU. For example, message formatting uses GNU Gettext message catalogs. In the future more
+functionality may be reimplemented directly in the Boost.Locale library.
+- Boost.Locale was designed with ABI stability in mind, as this library is being developed not only for Boost but also
+for the needs of the CppCMS C++ Web framework.
+
+
+\section why_gnu_gettext Why use GNU Gettext catalogs for message formatting?
+
+There are many available localization formats. The most popular so far are OASIS XLIFF, GNU gettext po/mo files, POSIX catalogs, Qt ts/tm files, Java properties, and Windows resources. However, the last three are useful only in their specific areas, and POSIX catalogs are too simple and limited, so there are only two reasonable options:
+
+-# Standard localization format OASIS XLIFF.
+-# GNU Gettext binary catalogs.
+
+The first one generally seems like a more correct localization solution, but it requires XML parsing for loading documents,
+it is very complicated format, and even ICU requires preliminary compilation of it into ICU resource bundles.
+
+On the other hand:
+
+- GNU Gettext binary catalogs have a very simple, robust and yet very useful file format.
+- It is at present the most popular and de-facto standard localization format (at least in the Open Source world).
+- It has very simple and powerful support for plural forms.
+- It uses the original English text as the key, making the process of internationalization much easier because at least
+one basic translation is always available.
+- There are many tools for editing and managing gettext catalogs, such as Poedit, kbabel etc.
+
+So, even though the GNU Gettext mo catalog format is not an officially approved file format:
+
+- It is a de-facto standard and the most popular one.
+- Its implementation is much easier and does not require XML parsing and validation.
+
+
+\note Boost.Locale does not use any of the GNU Gettext code, it just reimplements the tool for reading and using mo-files,
+eliminating the biggest GNU Gettext flaw at present -- thread safety when using multiple locales.
+
+\section why_plain_number Why is a plain number used for the representation of a date-time, instead of a Boost.DateTime date or Boost.DateTime ptime?
+
+There are several reasons:
+
+-# A Gregorian Date by definition can't be used to represent locale-independent dates, because not all
+ calendars are Gregorian.
+-# \c ptime -- definitely could be used, but it has several problems:
+ \n
+ - It is created in GMT or Local time clock, when `time()` gives a representation that is independent of time zones
+ (usually GMT time), and only later should it be represented in a time zone that the user requests.
+ \n
+ The timezone is not a property of time itself, but it is rather a property of time formatting.
+ \n
+ - \c ptime already defines \c operator<< and \c operator>> for time formatting and parsing.
+ - The existing facets for \c ptime formatting and parsing were not designed in a way that the user can override.
+ The major formatting and parsing functions are not virtual. This makes it impossible to reimplement the formatting and
+ parsing functions of \c ptime unless the developers of the Boost.DateTime library decide to change them.
+ \n
+ Also, the facets of \c ptime are not "correctly" designed in terms of division of formatting information and
+ locale information. Formatting information should be stored within \c std::ios_base and information about
+ locale-specific formatting should be stored in the facet itself.
+ \n
+ The user of the library should not have to create new facets to change simple formatting information like "display only
+ the date" or "display both date and time."
+
+Thus, at this point, \c ptime is not supported for formatting localized dates and times.
+
+\section why_posix_names Why are POSIX locale names used and not something like the BCP-47 IETF language tag?
+
+There are several reasons:
+
+- POSIX locale names have a very important feature: character encoding. When you specify for example fr-FR, you
+do not actually know how the text should be encoded -- UTF-8, ISO-8859-1, ISO-8859-15 or maybe Windows-1252.
+This may vary between different operating systems and depends on the current installation. So it is critical
+to provide all the required information.
+- ICU fully understands POSIX locales and knows how to treat them correctly.
+- They are native locale names for most operating system APIs (with the exception of Windows)
+
+\section why_linear_chunks Why most parts of Boost.Locale work only on linear/contiguous chunks of text
+
+There are two reasons:
+
+- Boost.Locale relies heavily on the third-party APIs like ICU, POSIX or Win32 API, all of them
+ work only on linear chunks of text, so providing non-linear API would just hide the
+ real situation and would not bring real performance advantage.
+- In fact, all known libraries that work with Unicode: ICU, Qt, Glib, Win32 API, POSIX API
+ and others accept an input as single linear chunk of text and there is a good reason for this:
+ \n
+ -# Most of supported operations on text like collation, case handling usually work on small
+ chunks of text. For example: you probably would never want to compare two chapters of a book, but rather
+ their titles.
+ -# We should remember that even very large texts require quite a small amount of memory, for example
+ the entire book "War and Peace" takes only about 3MB of memory.
+ \n
+
+However:
+
+- There are API's that support stream processing. For example: character set conversion using
+\c std::codecvt API works on streams of any size without problems.
+- When new API is introduced into Boost.Locale in future, such that it likely works
+ on large chunks of text, will provide an interface for non-linear text handling.
+
+
+\section why_abstract_api Why all Boost.Locale implementation is hidden behind abstract interfaces and does not use template metaprogramming?
+
+There are several major reasons:
+
+- This is how the C++'s \c std::locale class is build. Each feature is represented using a subclass of
+ \c std::locale::facet that provides an abstract API for specific operations it works on, see \ref std_locales.
+- This approach allows to switch underlying API without changing the actual application code even in run-time depending
+ on performance and localization requirements.
+- This approach reduces compilation times significantly. This is very important for library that may be
+ used in almost every part of specific program.
+
+\section why_no_special_character_type Why Boost.Locale does not provide char16_t/char32_t for non-C++0x platforms.
+
+There are several reasons:
+
+- C++0x defines \c char16_t and \c char32_t as distinct types, so substituting is with something like \c uint16_t or \c uint32_t
+ would not work as for example writing \c uint16_t to \c uint32_t stream would write a number to stream.
+- The C++ locales system would work only if standard facets like \c std::num_put are installed into the
+ existing instance of \c std::locale, however in the many standard C++ libraries these facets are specialized for each
+ specific character that the standard library supports, so an attempt to create a new facet would
+ fail as it is not specialized.
+
+These are exactly the reasons why Boost.Locale fails with current limited C++0x characters support on GCC-4.5 (the second reason)
+and MSVC-2010 (the first reason)
+
+So basically it is impossible to use non-C++ characters with the C++'s locales framework.
+
+The best and the most portable solution is to use the C++'s \c char type and UTF-8 encodings.
+
+*/
+
+

Added: trunk/libs/locale/doc/recommendations_and_myths.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/recommendations_and_myths.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,48 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page recommendations_and_myths Recommendations and Myths
+
+\section recommendations Recommendations
+
+- The first and most important recommendation: prefer UTF-8 encoding for narrow strings --- it represents all
+ supported Unicode characters and is more convenient for general use than encodings like Latin1.
+- Remember, there are many different cultures. You can assume very little about the user's language. His calendar
+ may not have "January". It may be not possible to convert strings to integers using \c atoi because
+ they may not use the "ordinary" digits 0..9 at all. You can't assume that "space" characters are frequent
+ because in Chinese the space character does not separate words. The text may be written from Right-to-Left or
+ from Up-to-Down, and so on.
+- Using message formatting, try to provide as much context information as you can. Prefer translating entire
+ sentences over single words. When translating words, \b always add some context information.
+
+
+\section myths Myths
+
+\subsection myths_wide To use Unicode in my application I should use wide strings everywhere.
+
+Unicode is not limited to wide strings. Both \c std::string and \c std::wstring
+can hold and process Unicode text. More than that, the semantics of \c std::string
+are much cleaner in multi-platform applications, because all "Unicode" strings are
+UTF-8. "Wide" strings may be encoded in "UTF-16" or "UTF-32", depending
+on the platform, so they may be even less convenient when dealing with Unicode than
+\c char based strings.
+
+\subsection myths_utf16 UTF-16 is the best encoding to work with.
+
+There is common assumption that UTF-16 is the best encoding for storing information because it gives "shortest" representation
+of strings.
+
+In fact, it is probably the most error-prone encoding to work with. The biggest issue is code points that lay outside of the BMP,
+which must be represented with surrogate pairs. These characters are very rare and many applications are not tested with them.
+
+For example:
+
+- Qt3 could not deal with characters outside of the BMP.
+- Editing a character with a codepoint above 0xFFFF often shows an unpleasant bug: for example, to erase
+ such a character in Windows Notepad you have to press backspace twice.
+
+So UTF-16 can be used for Unicode, in fact ICU and many other applications use UTF-16 as their internal Unicode representation, but
+you should be very careful and never assume one-code-point == one-utf16-character.
+
+*/
+
+

Added: trunk/libs/locale/doc/running_examples_under_windows.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/running_examples_under_windows.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,28 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page running_examples_under_windows Running Examples under Microsoft Windows
+
+All of the examples that come with Boost.Locale are designed for UTF-8 and it is
+the default encoding used by Boost.Locale.
+
+However, the default narrow encoding under Microsoft Windows is not UTF-8 and
+the output of the applications would not be displayed correctly in the console.
+
+So in order to use UTF-8 encoding under the Windows console and see the output correctly, do the following:
+
+-# Open a \c cmd window
+-# Change the default font to a TrueType font: go to properties-\>font (right click on title-bar-\>properties-\>font) and
+change the font to a TrueType font like Lucida Console
+-# Change the default codepage to 65001 (UTF-8) by running <tt>chcp 65001</tt>
+
+Now all of the examples should display UTF-8 characters correctly (if the font supports them).
+
+<b>Note for Visual Studio users:</b> Microsoft Visual Studio assumes that all source files are encoded using an "ANSI" codepage
+like 1252. However all examples use UTF-8 encoding by default, so wide character examples would
+not work under MSVC as-is. In order to force it to treat source files as UTF-8 you need to
+convert the files to UTF-8 with BOM, which can be done easily by re-saving them from Notepad,
+which adds a BOM to UTF-8 files by default.
+
+
+*/
+

Added: trunk/libs/locale/doc/special_thanks.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/special_thanks.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,12 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page special_thanks Special Thanks
+
+(in alphabetical order)
+
+- Chad Nelson - for volunteering to manage the formal review and for the great language corrections
+ for this tutorial.
+- Vladimir Prus - for development of Boost.Build support for Boost.Locale.
+
+
+*/

Added: trunk/libs/locale/doc/status_of_cpp0x_characters_support.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/status_of_cpp0x_characters_support.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,31 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page status_of_cpp0x_characters_support Status of C++0x char16_t/char32_t support
+
+The support of C++0x \c char16_t and \c char32_t is experimental, mostly does not work and not
+intended to be used in production with current latest compilers: GCC-4.5, MSVC10 till major
+compiler's flaws would be fixed.
+
+\section status_of_cpp0x_characters_support_gnu GNU GCC 4.5/C++0x Status
+
+GNU C++ compiler provides decent support of C++0x characters however:
+
+-# Standard library does not install any std::locale::facets for this support so any attempt
+ to format numbers using \c char16_t or \c char32_t streams would just fail.
+-# Standard library misses specialization for required \c char16_t/char32_t locale facets,
+ so "std" backends is not build-able as essential symbols missing, also \c codecvt facet
+ can't be created as well.
+
+\section status_of_cpp0x_characters_support_msvc Visual Studio 2010 (MSVC10)/C++0x Status
+
+MSVC provides all required facets however:
+
+-# Standard library does not provide installations of std::locale::id for these facets
+ in DLL so it is not usable with \c /MD, \c /MDd compiler flags and requires static link of the runtime
+ library.
+-# \c char16_t and \c char32_t are not distinct types but rather aliases of unsigned short and unsigned
+ types which contradicts to C++0x requirements making it impossible to write \c char16_t/char32_t to stream
+ and causing multiple faults.
+
+*/
+

Added: trunk/libs/locale/doc/std_locales.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/std_locales.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,122 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page std_locales Introduction to C++ Standard Library localization support
+
+\section std_locales_basics Getting familiar with standard C++ Locales
+
+The C++ standard library offers a simple and powerful way to provide locale-specific information. It is done via the \c
+std::locale class, the container that holds all the required information about a specific culture, such as number formatting
+patterns, date and time formatting, currency, case conversion etc.
+
+All this information is provided by facets, special classes derived from the \c std::locale::facet base class. Such facets are
+packed into the \c std::locale class and allow you to provide arbitrary information about the locale. The \c std::locale class
+keeps reference counters on installed facets and can be efficiently copied.
+
+Each facet that was installed into the \c std::locale object can be fetched using the \c std::use_facet function. For example,
+the \c std::ctype<Char> facet provides rules for case conversion, so you can convert a character to upper-case like this:
+
+\code
+std::ctype<char> const &ctype_facet = std::use_facet<std::ctype<char> >(some_locale);
+char upper_a = ctype_facet.toupper('a');
+\endcode
+
+A locale object can be imbued into an \c iostream so it would format information according to the locale:
+
+\code
+cout.imbue(std::locale("en_US.UTF-8"));
+cout << 1345.45 << endl;
+cout.imbue(std::locale("ru_RU.UTF-8"));
+cout << 1345.45 << endl;
+\endcode
+
+Would display:
+
+\verbatim
+ 1,345.45 1.345,45
+\endverbatim
+
+You can also create your own facets and install them into existing locale objects. For example:
+
+\code
+ class measure : public std::locale::facet {
+ public:
+ typedef enum { inches, ... } measure_type;
+ measure(measure_type m,size_t refs=0)
+ double from_metric(double value) const;
+ std::string name() const;
+ ...
+ };
+\endcode
+And now you can simply provide this information to a locale:
+
+\code
+ std::locale::global(std::locale(std::locale("en_US.UTF-8"),new measure(measure::inches)));
+ /// Create default locale built from en_US locale and add paper size facet.
+\endcode
+
+
+Now you can print a distance according to the correct locale:
+
+\code
+ void print_distance(std::ostream &out,double value)
+ {
+ measure const &m = std::use_facet<measure>(out.getloc());
+ // Fetch locale information from stream
+ out << m.from_metric(value) << " " << m.name();
+ }
+\endcode
+
+This technique was adopted by the Boost.Locale library in order to provide powerful and correct localization. Instead of using
+the very limited C++ standard library facets, it uses ICU under the hood to create its own much more powerful ones.
+
+\section std_locales_common Common Critical Problems with the Standard Library
+
+There are numerous issues in the standard library that prevent the use of its full power, and there are several
+additional issues:
+
+- Setting the global locale has bad side effects.
+ \n
+ Consider following code:
+ \n
+ \code
+ int main()
+ {
+ std::locale::global(std::locale(""));
+ // Set system's default locale as global
+ std::ofstream csv("test.csv");
+ csv << 1.1 << "," << 1.3 << std::endl;
+ }
+ \endcode
+ \n
+ What would be the content of \c test.csv ? It may be "1.1,1.3" or it may be "1,1,1,3"
+ rather than what you had expected.
+ \n
+ More than that it affects even \c printf and libraries like \c boost::lexical_cast giving
+ incorrect or unexpected formatting. In fact many third-party libraries are broken in such a
+ situation.
+ \n
+ Unlike the standard localization library, Boost.Locale never changes the basic number formatting,
+ even when it uses \c std based localization backends, so by default, numbers are always
+ formatted using C-style locale. Localized number formatting requires specific flags.
+ \n
+- Number formatting is broken on some locales.
+ \n
+ Some locales use the non-breakable space u00A0 character for thousands separator, thus
+ in \c ru_RU.UTF-8 locale number 1024 should be displayed as "1 024" where the space
+ is a Unicode character with codepoint u00A0. Unfortunately many libraries don't handle
+ this correctly, for example GCC and SunStudio display a "\xC2" character instead of
+ the first character in the UTF-8 sequence "\xC2\xA0" that represents this code point, and
+ actually generate invalid UTF-8.
+ \n
+- Locale names are not standardized. For example, under MSVC you need to provide the name
+ \c en-US or \c English_USA.1252 , when on POSIX platforms it would be \c en_US.UTF-8
+ or \c en_US.ISO-8859-1
+ \n
+ More than that, MSVC does not support UTF-8 locales at all.
+ \n
+- Many standard libraries provide only the C and POSIX locales, thus GCC supports localization
+ only under Linux. On all other platforms, attempting to create locales other than "C" or
+ "POSIX" would fail.
+
+*/
+

Added: trunk/libs/locale/doc/style/boost_small.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/style/header-bg.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/style/header-fg.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/style/header.css
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/style/header.css 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,104 @@
+/*
+ Copyright 2005-2008 Redshift Software, Inc.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+*/
+/* Heading, title and logo. */
+
+/* Position the common heading. This appears on pages which have their own
+ * markup. Since the body might have a margin this has to be absolutely
+ * positioned. The spacer then pushes the page content down so that it
+ * doesn't fall underneath the heading. */
+#boost-common-heading-doc {
+ position: absolute;
+ left: 0;
+ top: 0;
+}
+#boost-common-heading-doc-spacer {
+ height: 100px;
+}
+
+#boost-common-heading-doc,
+#heading {
+ margin: 0em;
+ border-bottom: #000000 solid 1px;
+ width: 100%;
+ font-family: sans-serif;
+ font-size: 9.5pt;
+}
+#boost-common-heading-doc .heading-inner,
+#heading .heading-inner {
+ height: 100px;
+ overflow: hidden;
+}
+
+#boost-common-heading-doc *,
+#heading * {
+ font-size: 100%;
+ font-weight: normal;
+ margin: 0;
+ padding: 0;
+ text-decoration: none;
+}
+#boost-common-heading-doc .heading-placard,
+#heading .heading-placard {
+ display: none;
+}
+#boost-common-heading-doc .heading-title .heading-boost,
+#boost-common-heading-doc .heading-title .heading-cpplibraries,
+#heading .heading-title .heading-boost,
+#heading .heading-title .heading-cpplibraries {
+ display: none;
+}
+#boost-common-heading-doc .heading-title,
+#heading .heading-title {
+ float: left;
+}
+#boost-common-heading-doc .heading-title a,
+#heading .heading-title a {
+}
+#boost-common-heading-doc .heading-logo,
+#heading .heading-logo {
+ width: 270px;
+ height: 90px;
+ border: none;
+ vertical-align: bottom;
+ margin: 0px 0px 0px 1.5em;
+}
+#boost-common-heading-doc .heading-quote,
+#heading .heading-quote {
+ text-align: right;
+ padding: 25px 1.5em 10px 0em;
+}
+#boost-common-heading-doc .heading-quote q,
+#heading .heading-quote q {
+ font-size: 90%;
+ display: block;
+}
+#boost-common-heading-doc .heading-quote .heading-attribution,
+#heading .heading-quote .heading-attribution {
+ font-size: 85%;
+ display: block;
+}
+#boost-common-heading-doc .heading-sections,
+#heading .heading-sections {
+ display: none;
+}
+#boost-common-heading-doc .heading-search,
+#heading .heading-search {
+ display: none;
+ text-align: right;
+ padding: 0em 1.5em 0em 0em;
+}
+#boost-common-heading-doc .heading-search #search-text .q,
+#heading .heading-search #search-text .q {
+ background: transparent;
+ border: none;
+ border-bottom: 1px #BBBBBB solid;
+ margin-right: 0.25em;
+ font-size: 90%;
+}
+#boost-common-heading-doc .heading-search #search-text #q:hover,
+#heading .heading-search #search-text #q:hover {
+ border-bottom: 1px #FFFFFF solid;
+}

Added: trunk/libs/locale/doc/style/header_grass.css
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/style/header_grass.css 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,45 @@
+/*
+ Copyright 2005-2006 Redshift Software, Inc.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+/* Heading, title and logo. */
+#heading,
+#boost-common-heading-doc {
+ background: #4F744D url(header-bg.png) repeat-x top left;
+}
+#heading *,
+#boost-common-heading-doc * {
+ color: #FFFFFF;
+}
+#heading .heading-inner,
+#boost-common-heading-doc .heading-inner {
+ background: url(header-fg.png) no-repeat top left;
+ border: none;
+ border-bottom: #000000 solid 1px;
+}
+#boost-common-heading-doc .heading-logo,
+#heading .heading-logo {
+ width: 236px;
+ height: 55px;
+ margin: 18px 0px 0px 24px;
+}
+
+/* Links in the header. */
+#boost-common-heading-doc .heading-quote a,
+#heading .heading-quote a {
+ border-bottom: 1px solid #BBBBBB;
+}
+#boost-common-heading-doc .heading-quote a:hover,
+#heading .heading-quote a:hover {
+ border-bottom: 1px solid #FFFFFF;
+}
+#boost-common-heading-doc .heading-quote a:visited,
+#heading .heading-quote a:visited {
+ border-bottom: 1px dotted #BBBBBB;
+}
+#boost-common-heading-doc .heading-quote a:visited:hover,
+#heading .heading-quote a:visited:hover {
+ border-bottom: 1px dotted #FFFFFF;
+}

Added: trunk/libs/locale/doc/style/section-basic.css
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/style/section-basic.css 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,7 @@
+/*
+ Copyright 2005-2008 Redshift Software, Inc.
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+*/
+@import url(header.css);
+@import url(header_grass.css);

Added: trunk/libs/locale/doc/style/space.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/doc/tested_compilers_and_paltforms.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/tested_compilers_and_paltforms.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,77 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page tested_compilers_and_paltforms Tested Compilers and Platforms
+
+<table border="1" cellpadding="5" cellspacing="3">
+<tr>
+ <th>Platform</th><th>Compiler</th><th>Backends</th><th>ICU version</th><th>Notes</th>
+</tr>
+<tr>
+ <td>Linux 2.6 x86_64</td><td>GCC-4.3</td><td>icu/posix/std</td><td>3.8, 4.4, 4.6</td><td>-</td>
+</tr>
+<tr>
+ <td>Linux 2.6 x86</td><td>GCC-4.1</td><td>icu/posix/std</td><td>3.6</td><td>(not tested recently)</td>
+</tr>
+<tr>
+ <td>Linux 2.6 x86_64</td><td>GCC-4.4</td><td>icu/posix/std</td><td>4.2</td><td>-</td>
+</tr>
+<tr>
+ <td>Linux 2.6 x86_64</td><td>GCC-4.5/C++0x</td><td>icu/posix/std</td><td>3.8</td><td>-</td>
+</tr>
+<tr>
+ <td>Linux 2.6 x86_64</td><td>GCC-4.6</td><td>icu/posix/std</td><td>4.2, 4.6</td><td>-</td>
+</tr>
+<tr>
+ <td>Linux 2.6 x86_64</td><td>GCC-4.6/C++0x</td><td>icu/posix/std</td><td>4.2, 4.6</td><td>-</td>
+</tr>
+<tr>
+ <td>Linux 2.6 x86_64</td><td>GCC-4.5/C++0x with char16_t/char32_t</td><td>icu</td><td>3.8</td>
+ <td>
+ Some charXX_t faults in formatting<br>
+ std backend can't be build<br>
+ Standard library issues
+ </td>
+</tr>
+<tr>
+ <td>Linux 2.6 x86_64</td><td>Intel 11.0</td><td>icu/posix/std</td><td>3.8</td><td>-</td>
+</tr>
+<tr>
+ <td>Windows 7 32bit</td><td>MSVC 2010</td><td>icu/winapi/std</td><td>4.6</td><td>-</td>
+</tr>
+<tr>
+ <td>Windows 7 32bit</td><td>MSVC 2010/C++0x with char16_t/char32_t</td><td>icu/winapi/std</td><td>4.6</td>
+ <td>
+ Multiple test faults, because char16_t/char32_t are not
+ defined as distinct types as required by C++ standard.
+ </td>
+</tr>
+<tr>
+ <td>Windows XP 32bit</td><td>MSVC 2008</td><td>icu/winapi/std</td><td>4.2</td><td>-</td>
+</tr>
+<tr>
+ <td>Windows XP 32bit</td><td>MinGW/GCC 4.5</td><td>icu/winapi/std</td><td>4.2</td><td>-</td>
+</tr>
+<tr>
+ <td>Cygwin 1.7</td><td>GCC 4.3</td><td>icu/winapi/std</td><td>3.8</td><td>-</td>
+</tr>
+<tr>
+ <td>Mac OS X 10.6.4</td><td>GCC-4.2</td><td>icu/posix/std</td><td>4.4</td><td>-</td>
+</tr>
+<tr>
+ <td>FreeBSD 8.0</td><td>GCC-4.2.1</td><td>icu/std</td><td>3.8</td><td>-</td>
+</tr>
+<tr>
+ <td>OpenSolaris/SunOS 5.11</td><td>GCC-3.4</td><td>icu/std</td><td>4.2</td><td>iconv is disabled</td>
+</tr>
+<tr>
+ <td>OpenSolaris/SunOS 5.11</td><td>SunCC 5.10/STLport4</td><td>icu</td><td>4.2</td>
+ <td>
+ Some faults in collation, STLport issue<br>
+ iconv is disabled<br>
+ Boost-1.46.x requires patch for Boost.Thread, can be found in <tt>libs/locale/build</tt>
+ </td>
+</tr>
+</table>
+
+*/
+

Added: trunk/libs/locale/doc/using_boost_locale.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/using_boost_locale.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,29 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page using_boost_locale Using Boost.Locale
+
+In this section we'll talk mostly about the ICU backend, as it is both the default and the most powerful
+localization backend provided by this library. In later sections we will note the features that are
+supported by other localization backends.
+
+
+- \subpage locale_gen
+- \subpage collation
+- \subpage conversions
+- \subpage formatting_and_parsing
+- \subpage messages_formatting
+- \subpage charset_handling
+- \subpage boundary_analysys
+- \subpage localized_text_formatting
+- \subpage dates_times_timezones
+- \subpage locale_information
+- \subpage working_with_multiple_locales
+
+*/
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+
+*/
+
+

Added: trunk/libs/locale/doc/using_localization_backends.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/using_localization_backends.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,188 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page using_localization_backends Using Localization Backends
+
+By default, Boost.Locale uses ICU for all localization and text manipulation tasks.
+This is the most powerful library available, but sometimes we don't need
+the full power of this library or we want to reduce dependencies from third-party
+libraries, and ICU is by no means a small library.
+
+Boost.Locale provides an option to use non-ICU based localization
+backends. Although usually less powerful, these often provide all you need:
+message formatting, currency, date, time, number formatting, basic collation and
+case manipulation. They are implemented using the standard OS API or a C or C++ library.
+
+\section when_to_use_non_icu_backends When to use non-ICU backends
+
+There are situations when using non-ICU based localization is appropriate:
+
+- Embedded systems, where the ICU library is very hefty.
+- Applications where only basic features like message, date, and time formatting and
+ basic collation are required, and using a third-party library like ICU would be too
+ complicated.
+- Performance. ICU is a very powerful library, but it is generally slower than the standard
+ library. Sometimes it's better to use a simpler but faster localization backend.
+
+
+\section non_icu_backends Non-ICU Backends
+
+All of the alternate backends have these limitations:
+
+- Only the Gregorian calendar is supported and it is based
+ on capabilites of mktime functionality (including dates range)
+- No boundary analysis.
+- Case handling is very simple and based on single codepoint conversions,
+ though they still handle UTF-8 better than the standard library.
+- Time zone specification is very limited: either local time or a time zone
+ in the format "GMT+HH:MM".
+- No percent formatting, no spellout or ordinal number formatting.
+- Collation, with exception of the \c winapi backend, is limited to a single level,
+ similar to what is done by \c strcoll.
+
+
+\subsection std_backend std - The standard C++ library backend
+
+This localization backend is based on the standard C++ library.
+
+It is supported on all platforms, but is only actually useful on platforms where
+the standard library supports locales besides "C" and "POSIX": on Linux with GCC
+or Intel compilers, and under the MSVC compiler.
+
+It works around some common standard library bugs like invalid UTF-8 generation for numeric
+formatting, and it gives otherwise-absent POSIX locales names and UTF-8 support under MSVC.
+
+It is very useful when the compiler and the library actually give fine localization
+support, like GCC under Linux or MSVC under Windows.
+
+\subsection posix_backend posix - POSIX 2008 C library
+
+This backend is based on the latest POSIX 2008 standards, and uses POSIX api functions like
+\c newlocale, \c freelocale, \c strftime_l etc. It is available on the Linux and Mac OS X
+platforms.
+
+It gives you simple and ready-made localization support, most notably under Mac OS X where
+GCC's \c libstdc++ does not support locales.
+
+\note The POSIX backend only supports UTF-8, single-byte, and double-byte encodings.
+
+\subsection winapi_backend winapi - Win32 API.
+
+The Win32API-based localization backend provides decent UTF-8/UTF-16 locale support.
+It is based on Windows API functions like \c GetLocaleInfoW, \c LCMapStringW, \c GetDateFormatW etc and
+provides good localization support even on the MinGW and Cygwin platforms, which normally have
+problems with this.
+
+\note
+
+- If you using GCC compiler under Windows you need GCC-4.x series to use it, GCC-3.4 is not supported
+- Only UTF-8 as narrow locale encoding and UTF-16 as wide encoding are supported.
+
+\section supported_features_by_backends Supported Features
+
+<table border="1" sellpadding="5" sellspacing="3">
+<tr>
+ <th>Backend</th>
+ <th>icu</th><th>posix</th><th>winapi</th><th>std</th>
+</tr>
+<tr>
+ <th>Message Formatting</th>
+ <td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td>
+</tr>
+<tr>
+ <th>Non UTF-8 encodings</th>
+ <td>Yes</td><td>Yes</td><td>No</td><td>Yes</td>
+</tr>
+<tr>
+ <th>Date/Time Formatting/Parsing</th>
+ <td>Yes</td><td>Formatting Only</td><td>Formatting Only</td><td>Formatting Only</td>
+</tr>
+<tr>
+ <th>Monetary Formatting/Parsing</th>
+ <td>Yes</td><td>Formatting Only</td><td>Formatting Only</td><td>Yes</td>
+</tr>
+<tr>
+ <th>Number Formatting/Parsing</th>
+ <td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td>
+</tr>
+<tr>
+ <th>Numbers as Percent, Spelled Out</th>
+ <td>Yes</td><td>No</td><td>No</td><td>No</td>
+</tr>
+<tr>
+ <th>Case Manipulation</th>
+ <td>Yes</td><td>Basic</td><td>Basic</td><td>Basic</td>
+</tr>
+<tr>
+ <th>Collation</th>
+ <td>Full</td><td>Linux - 1 level<br>Mac OS X - broken</td><td>3 levels</td><td>1 level</td>
+</tr>
+<tr>
+ <th>Calendar</th>
+ <td>Yes</td><td>Gregorian Only</td><td>Gregorian Only</td><td>Gregorian Only</td>
+</tr>
+<tr>
+ <th>Boundary Analysis</th>
+ <td>Yes</td><td>No</td><td>No</td><td>No</td>
+</tr>
+<tr>
+ <th>Unicode Normalization</th>
+ <td>Yes</td><td>No</td><td>Vista and above</td><td>No</td>
+</tr>
+<tr>
+ <th>C++0x characters</th>
+ <td>Yes</td><td>No</td><td>No</td><td>Yes</td>
+</tr>
+<tr>
+ <th>OS Support</th>
+ <td>Any</td><td>Linux, Mac OS X</td><td>Windows, Cygwin</td><td>Any</td>
+</tr>
+<tr>
+ <th>Useful on</th>
+ <td>Any Platform</td><td>Linux and Mac OS X</td><td>Windows/MinGW/Cygwin</td><td>Linux with GCC or Intel<br>Windows with MSVC</td>
+</tr>
+</table>
+
+
+\section using_localization_backends Using Localization Backends
+
+Accessing a localization backend is done via the boost::locale::localization_backend_manager class.
+
+You can create your own boost::locale::localization_backend_manager by starting with a global backend
+via the boost::locale::localization_backend_manager::global static member function and modifying it.
+
+For example:
+
+\code
+ localization_backend_manager my = localization_backend_manager::global();
+ // Get global backend
+
+ my.select("std");
+ // select std backend as default
+
+ generator gen(my);
+ // create a generator that uses this backend.
+
+ localization_backend_manager::global(my);
+ // set this backend globally
+
+ generator gen2();
+ // now this one would use the new global backend.
+\endcode
+
+You can also create a mixture of several backends, using
+for example \c icu for one kind of operation and \c std
+for all others:
+
+\code
+ localization_backend_manager my = localization_backend_manager::global();
+ // Get global backend
+
+ my.select("std");
+ // select std backend as default for all categories
+ my.select("icu",boundary_facet);
+ // select icu backend for boundary analysis (since it is not supported by \c std)
+\endcode
+
+*/
+
+

Added: trunk/libs/locale/doc/working_with_multiple_locales.txt
==============================================================================
--- (empty file)
+++ trunk/libs/locale/doc/working_with_multiple_locales.txt 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,38 @@
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 filetype=cpp.doxygen
+/*!
+\page working_with_multiple_locales Working with multiple locales
+
+Boost.Locale allows you to work safely with multiple locales in the same process. As we mentioned before, the locale
+generation process is not a cheap one. Thus, when we work with multiple locales and need to switch between them,
+we recommend that you create all the locales you need when the program starts.
+
+To simplify this process, the boost::locale::generator class has an option to cache all
+generated locales. With this option, when you create a locale that was previously generated, it would be fetched
+from the existing locale set instead. This operation is thread safe.
+
+This option must be explicitly enabled by calling the \ref boost::locale::generator::locale_cache_enabled() "locale_cache_enabled" member function of boost::locale::generator with \c true as the parameter.
+
+
+For example:
+
+\code
+ generator gen;
+ gen.locale_cache_enabled(true);
+ gen("en_US.UTF-8");
+ gen("de_DE.UTF-8");
+ gen("ja_JP.UTF-8");
+ // Create all locales
+
+ std::locale en=gen("en_US.UTF-8");
+ // Fetch an existing locale from the cache
+ std::locale ar=gen("ar_EG.UTF-8");
+ // Because ar_EG not in the cache, a new locale is generated (and cached)
+\endcode
+
+Then these locales can be imbued to \c iostreams or used directly as parameters to various functions.
+
+
+
+*/
+
+

Added: trunk/libs/locale/examples/boundary.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/examples/boundary.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,70 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#include <boost/locale.hpp>
+#include <iostream>
+#include <cassert>
+#include <ctime>
+
+int main()
+{
+ using namespace boost::locale;
+ using namespace std;
+
+ generator gen;
+ // Make system default locale global
+ std::locale loc = gen("");
+ locale::global(loc);
+ cout.imbue(loc);
+
+
+ string text="Hello World! あにま! Linux2.6 and Windows7 is word and number. שָלוֹם עוֹלָם!";
+
+ cout<<text<<endl;
+
+ boundary::ssegment_index index(boundary::word,text.begin(),text.end());
+ boundary::ssegment_index::iterator p,e;
+
+ for(p=index.begin(),e=index.end();p!=e;++p) {
+ cout<<"Part ["<<*p<<"] has ";
+ if(p->rule() & boundary::word_number)
+ cout<<"number(s) ";
+ if(p->rule() & boundary::word_letter)
+ cout<<"letter(s) ";
+ if(p->rule() & boundary::word_kana)
+ cout<<"kana character(s) ";
+ if(p->rule() & boundary::word_ideo)
+ cout<<"ideographic character(s) ";
+ if(p->rule() & boundary::word_none)
+ cout<<"no word characters";
+ cout<<endl;
+ }
+
+ index.map(boundary::character,text.begin(),text.end());
+
+ for(p=index.begin(),e=index.end();p!=e;++p) {
+ cout<<"|" <<*p ;
+ }
+ cout<<"|\n\n";
+
+ index.map(boundary::line,text.begin(),text.end());
+
+ for(p=index.begin(),e=index.end();p!=e;++p) {
+ cout<<"|" <<*p ;
+ }
+ cout<<"|\n\n";
+
+ index.map(boundary::sentence,text.begin(),text.end());
+
+ for(p=index.begin(),e=index.end();p!=e;++p) {
+ cout<<"|" <<*p ;
+ }
+ cout<<"|\n\n";
+
+}
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/examples/calendar.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/examples/calendar.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,71 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#include <boost/locale.hpp>
+#include <iostream>
+#include <iomanip>
+#include <ctime>
+
+int main()
+{
+ using namespace boost::locale;
+
+ generator gen;
+ std::locale::global(gen(""));
+ std::cout.imbue(std::locale());
+ // Setup environment
+
+ boost::locale::date_time now;
+
+ date_time start=now;
+
+ // Set the first day of the first month of this year
+ start.set(period::month(),now.minimum(period::month()));
+ start.set(period::day(),start.minimum(period::day()));
+
+ int current_year = period::year(now);
+
+
+ // Display current year
+ std::cout << format("{1,ftime='%Y'}") % now << std::endl;
+
+ //
+ // Run forward untill current year is the date
+ //
+ for(now=start; period::year(now) == current_year;) {
+
+ // Print heading of month
+ if(calendar().is_gregorian())
+ std::cout << format("{1,ftime='%B'}") % now <<std::endl;
+ else
+ std::cout << format("{1,ftime='%B'} ({1,ftime='%Y-%m-%d',locale=en} - {2,locale=en,ftime='%Y-%m-%d'})")
+ % now
+ % date_time(now,now.maximum(period::day())*period::day()) << std::endl;
+
+ int first = calendar().first_day_of_week();
+
+ // Print weeks days
+ for(int i=0;i<7;i++) {
+ date_time tmp(now,period::day_of_week() * (first + i));
+ std::cout << format("{1,w=8,ftime='%a'} ") % tmp;
+ }
+ std::cout << std::endl;
+
+ int current_month = now / period::month();
+ int skip = now / period::day_of_week_local() - 1;
+ for(int i=0;i<skip*9;i++)
+ std::cout << ' ';
+ for(;now / period::month() == current_month ;now += period::day()) {
+ std::cout << format("{1,w=8,ftime='%e'} ") % now;
+ if(now / period::day_of_week_local() == 7)
+ std::cout << std::endl;
+ }
+ std::cout << std::endl;
+ }
+
+}
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/examples/collate.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/examples/collate.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,40 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#include <iostream>
+#include <string>
+#include <set>
+
+#include <boost/locale.hpp>
+
+using namespace std;
+using namespace boost::locale;
+
+int main()
+{
+ generator gen;
+ std::locale::global(gen(""));
+ /// Set global locale to requested
+
+ /// Create a set that includes all strings sorted according to ABC order
+ /// std::locale can be used as object for comparison
+ typedef std::set<std::string,std::locale> set_type;
+ set_type all_strings;
+
+ /// Read all strings into the set
+ while(!cin.eof()) {
+ std::string tmp;
+ getline(cin,tmp);
+ all_strings.insert(tmp);
+ }
+ /// Print them out
+ for(set_type::iterator p=all_strings.begin();p!=all_strings.end();++p) {
+ cout<<*p<<endl;
+ }
+
+}
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/examples/conversions.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/examples/conversions.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,42 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#include <boost/locale.hpp>
+#include <boost/algorithm/string/case_conv.hpp>
+#include <iostream>
+
+#include <ctime>
+
+
+
+int main()
+{
+ using namespace boost::locale;
+ using namespace std;
+ // Create system default locale
+ generator gen;
+ locale loc=gen("");
+ locale::global(loc);
+ cout.imbue(loc);
+
+
+ cout<<"Correct case conversion can't be done by simple, character by character conversion"<<endl;
+ cout<<"because case conversion is context sensitive and not 1-to-1 conversion"<<endl;
+ cout<<"For example:"<<endl;
+ cout<<" German grüßen correctly converted to "<<to_upper("grüßen")<<", instead of incorrect "
+ <<boost::to_upper_copy(std::string("grüßen"))<<endl;
+ cout<<" where ß is replaced with SS"<<endl;
+ cout<<" Greek ὈΔΥΣΣΕΎΣ is correctly converted to "<<to_lower("ὈΔΥΣΣΕΎΣ")<<", instead of incorrect "
+ <<boost::to_lower_copy(std::string("ὈΔΥΣΣΕΎΣ"))<<endl;
+ cout<<" where Σ is converted to σ or to ς, according to position in the word"<<endl;
+ cout<<"Such type of conversion just can be done using std::toupper that work on character base, also std::toupper is "<<endl;
+ cout<<"not even applicable when working with variable character length like in UTF-8 or UTF-16 limiting the correct "<<endl;
+ cout<<"behavior to unicode subset BMP or ASCII only"<<endl;
+
+}
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/examples/hello.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/examples/hello.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,41 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#include <boost/locale.hpp>
+#include <iostream>
+
+#include <ctime>
+
+int main()
+{
+ using namespace boost::locale;
+ using namespace std;
+ generator gen;
+ locale loc=gen("");
+ // Create system default locale
+
+ locale::global(loc);
+ // Make it system global
+
+ cout.imbue(loc);
+ // Set as default locale for output
+
+ cout <<format("Today {1,date} at {1,time} we had run our first localization example") % time(0)
+ <<endl;
+
+ cout<<"This is how we show numbers in this locale "<<as::number << 103.34 <<endl;
+ cout<<"This is how we show currency in this locale "<<as::currency << 103.34 <<endl;
+ cout<<"This is typical date in the locale "<<as::date << std::time(0) <<endl;
+ cout<<"This is typical time in the locale "<<as::time << std::time(0) <<endl;
+ cout<<"This is upper case "<<to_upper("Hello World!")<<endl;
+ cout<<"This is lower case "<<to_lower("Hello World!")<<endl;
+ cout<<"This is title case "<<to_title("Hello World!")<<endl;
+ cout<<"This is fold case "<<fold_case("Hello World!")<<endl;
+
+}
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/examples/wboundary.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/examples/wboundary.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,101 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+//
+// ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
+//
+// BIG FAT WARNING FOR Microsoft Visual Studio Users
+//
+// YOU NEED TO CONVERT THIS SOURCE FILE ENCODING TO UTF-8 WITH BOM ENCODING.
+//
+// Unfortunately MSVC understands that the source code is encoded as
+// UTF-8 only if you add useless BOM in the beginning.
+//
+// So, before you compile "wide" examples with MSVC, please convert them to text
+// files with BOM. There are two very simple ways to do it:
+//
+// 1. Open file with Notepad and save it from there. It would convert
+// it to file with BOM.
+// 2. In Visual Studio go File->Advances Save Options... and select
+// Unicode (UTF-8 with signature) Codepage 65001
+//
+// Note: once converted to UTF-8 with BOM, this source code would not
+// compile with other compilers, because no-one uses BOM with UTF-8 today
+// because it is absolutely meaningless in context of UTF-8.
+//
+// ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
+//
+#include <boost/locale.hpp>
+#include <iostream>
+#include <cassert>
+#include <ctime>
+
+int main()
+{
+ using namespace boost::locale;
+ using namespace std;
+
+ // Create system default locale
+ generator gen;
+ locale loc=gen("");
+ locale::global(loc);
+ wcout.imbue(loc);
+
+ // This is needed to prevent C library to
+ // convert strings to narrow
+ // instead of C++ on some platforms
+ std::ios_base::sync_with_stdio(false);
+
+
+ wstring text=L"Hello World! あにま! Linux2.6 and Windows7 is word and number. שָלוֹם עוֹלָם!";
+
+ wcout<<text<<endl;
+
+ boundary::wssegment_index index(boundary::word,text.begin(),text.end());
+ boundary::wssegment_index::iterator p,e;
+
+ for(p=index.begin(),e=index.end();p!=e;++p) {
+ wcout<<L"Part ["<<*p<<L"] has ";
+ if(p->rule() & boundary::word_number)
+ wcout<<L"number(s) ";
+ if(p->rule() & boundary::word_letter)
+ wcout<<L"letter(s) ";
+ if(p->rule() & boundary::word_kana)
+ wcout<<L"kana character(s) ";
+ if(p->rule() & boundary::word_ideo)
+ wcout<<L"ideographic character(s) ";
+ if(p->rule() & boundary::word_none)
+ wcout<<L"no word characters";
+ wcout<<endl;
+ }
+
+ index.map(boundary::character,text.begin(),text.end());
+
+ for(p=index.begin(),e=index.end();p!=e;++p) {
+ wcout<<L"|" <<*p ;
+ }
+ wcout<<L"|\n\n";
+
+ index.map(boundary::line,text.begin(),text.end());
+
+ for(p=index.begin(),e=index.end();p!=e;++p) {
+ wcout<<L"|" <<*p ;
+ }
+ wcout<<L"|\n\n";
+
+ index.map(boundary::sentence,text.begin(),text.end());
+
+ for(p=index.begin(),e=index.end();p!=e;++p) {
+ wcout<<L"|" <<*p ;
+ }
+ wcout<<"|\n\n";
+
+}
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/examples/wconversions.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/examples/wconversions.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,71 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+//
+// ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
+//
+// BIG FAT WARNING FOR Microsoft Visual Studio Users
+//
+// YOU NEED TO CONVERT THIS SOURCE FILE ENCODING TO UTF-8 WITH BOM ENCODING.
+//
+// Unfortunately MSVC understands that the source code is encoded as
+// UTF-8 only if you add useless BOM in the beginning.
+//
+// So, before you compile "wide" examples with MSVC, please convert them to text
+// files with BOM. There are two very simple ways to do it:
+//
+// 1. Open file with Notepad and save it from there. It would convert
+// it to file with BOM.
+// 2. In Visual Studio go File->Advances Save Options... and select
+// Unicode (UTF-8 with signature) Codepage 65001
+//
+// Note: once converted to UTF-8 with BOM, this source code would not
+// compile with other compilers, because no-one uses BOM with UTF-8 today
+// because it is absolutely meaningless in context of UTF-8.
+//
+// ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
+//
+#include <boost/locale.hpp>
+#include <boost/algorithm/string/case_conv.hpp>
+#include <iostream>
+
+#include <ctime>
+
+
+int main()
+{
+ using namespace boost::locale;
+ using namespace std;
+ // Create system default locale
+ generator gen;
+ locale loc=gen("");
+ locale::global(loc);
+ wcout.imbue(loc);
+
+ // This is needed to prevent C library to
+ // convert strings to narrow
+ // instead of C++ on some platforms
+ std::ios_base::sync_with_stdio(false);
+
+
+ wcout<<L"Correct case conversion can't be done by simple, character by character conversion"<<endl;
+ wcout<<L"because case conversion is context sensitive and not 1-to-1 conversion"<<endl;
+ wcout<<L"For example:"<<endl;
+ wcout<<L" German grüßen correctly converted to "<<to_upper(L"grüßen")<<L", instead of incorrect "
+ <<boost::to_upper_copy(std::wstring(L"grüßen"))<<endl;
+ wcout<<L" where ß is replaced with SS"<<endl;
+ wcout<<L" Greek ὈΔΥΣΣΕΎΣ is correctly converted to "<<to_lower(L"ὈΔΥΣΣΕΎΣ")<<L", instead of incorrect "
+ <<boost::to_lower_copy(std::wstring(L"ὈΔΥΣΣΕΎΣ"))<<endl;
+ wcout<<L" where Σ is converted to σ or to ς, according to position in the word"<<endl;
+ wcout<<L"Such type of conversion just can be done using std::toupper that work on character base, also std::toupper is "<<endl;
+ wcout<<L"not fully applicable when working with variable character length like in UTF-8 or UTF-16 limiting the correct "<<endl;
+ wcout<<L"behavoir to BMP or ASCII only"<<endl;
+
+}
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/examples/whello.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/examples/whello.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,45 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#include <boost/locale.hpp>
+#include <iostream>
+
+#include <ctime>
+
+int main()
+{
+ using namespace boost::locale;
+ using namespace std;
+
+ // Create system default locale
+ generator gen;
+ locale loc=gen("");
+ locale::global(loc);
+ wcout.imbue(loc);
+
+ // This is needed to prevent C library to
+ // convert strings to narrow
+ // instead of C++ on some platforms
+ std::ios_base::sync_with_stdio(false);
+
+
+ wcout <<wformat(L"Today {1,date} at {1,time} we had run our first localization example") % time(0)
+ <<endl;
+
+ wcout<<L"This is how we show numbers in this locale "<<as::number << 103.34 <<endl;
+ wcout<<L"This is how we show currency in this locale "<<as::currency << 103.34 <<endl;
+ wcout<<L"This is typical date in the locale "<<as::date << std::time(0) <<endl;
+ wcout<<L"This is typical time in the locale "<<as::time << std::time(0) <<endl;
+ wcout<<L"This is upper case "<<to_upper(L"Hello World!")<<endl;
+ wcout<<L"This is lower case "<<to_lower(L"Hello World!")<<endl;
+ wcout<<L"This is title case "<<to_title(L"Hello World!")<<endl;
+ wcout<<L"This is fold case "<<fold_case(L"Hello World!")<<endl;
+
+}
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/index.html
==============================================================================
--- (empty file)
+++ trunk/libs/locale/index.html 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head>
+ <title>Boost.Locale Documentation</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+ <meta http-equiv="refresh" content="0; URL=doc/html/index.html" />
+</head>
+
+<body>
+ Automatic redirection failed, please go to <a href=
+ "doc/html/index.html">doc/html/index.html</a>
+</body>
+</html>

Added: trunk/libs/locale/performance/perf_collate.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/performance/perf_collate.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,51 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#include <iostream>
+#include <string>
+#include <set>
+
+#include <boost/locale.hpp>
+
+using namespace std;
+using namespace boost::locale;
+
+int main(int argc,char **argv)
+{
+ if(argc!=2) {
+ std::cerr << "Usage backend locale" << std::endl;
+ return 1;
+ }
+ boost::locale::localization_backend_manager mgr = boost::locale::localization_backend_manager::global();
+ mgr.select(argv[1]);
+ generator gen(mgr);
+ std::locale::global(gen(argv[2]));
+ /// Set global locale to requested
+
+ /// Create a set that includes all strings sorted according to ABC order
+ /// std::locale can be used as object for comparison
+ std::vector<std::string> all;
+ typedef std::set<std::string,std::locale> set_type;
+ set_type all_strings;
+
+ /// Read all strings into the set
+ while(!cin.eof()) {
+ std::string tmp;
+ getline(cin,tmp);
+ all.push_back(tmp);
+ }
+ for(int i=0;i<10000;i++) {
+ std::vector<std::string> tmp = all;
+ std::sort(tmp.begin(),tmp.end(),std::locale());
+ if(i==0) {
+ for(unsigned j=0;j<tmp.size();j++)
+ std::cout << tmp[j] << std::endl;
+ }
+ }
+
+}
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/performance/perf_convert.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/performance/perf_convert.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,56 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#include <iostream>
+#include <string>
+#include <set>
+
+#include <boost/locale.hpp>
+
+using namespace std;
+using namespace boost::locale;
+
+int main(int argc,char **argv)
+{
+ if(argc!=2) {
+ std::cerr << "Usage backend locale" << std::endl;
+ return 1;
+ }
+ /// Set global locale to requested
+
+ /// Create a set that includes all strings sorted according to ABC order
+ /// std::locale can be used as object for comparison
+ std::vector<std::string> all;
+ typedef std::set<std::string,std::locale> set_type;
+ set_type all_strings;
+
+ /// Read all strings into the set
+ while(!cin.eof()) {
+ std::string tmp;
+ getline(cin,tmp);
+ all.push_back(tmp);
+ }
+
+ {
+ boost::locale::localization_backend_manager mgr = boost::locale::localization_backend_manager::global();
+ mgr.select(argv[1]);
+ generator gen(mgr);
+ std::locale::global(gen(argv[2]));
+ for(int i=0;i<10000;i++) {
+ for(unsigned j=0;j<all.size();j++) {
+ boost::locale::to_upper(all[j]);
+ boost::locale::to_lower(all[j]);
+ if(i==0) {
+ std::cout << boost::locale::to_upper(all[j]) << std::endl;
+ std::cout << boost::locale::to_lower(all[j]) << std::endl;
+ }
+ }
+ }
+ }
+
+}
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/performance/perf_format.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/performance/perf_format.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,39 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#include <iostream>
+#include <string>
+#include <set>
+#include <ctime>
+#include <boost/locale.hpp>
+
+using namespace std;
+using namespace boost::locale;
+
+int main(int argc,char **argv)
+{
+ if(argc!=2) {
+ std::cerr << "Usage backend locale" << std::endl;
+ return 1;
+ }
+ boost::locale::localization_backend_manager mgr = boost::locale::localization_backend_manager::global();
+ mgr.select(argv[1]);
+ generator gen(mgr);
+ std::locale::global(gen(argv[2]));
+ /// Set global locale to requested
+
+ for(int i=0;i<100000;i++) {
+ std::ostringstream ss;
+ for(int j=0;j<5;j++) {
+ ss << boost::locale::as::datetime << std::time(0) <<" "<< boost::locale::as::number << 13456.345 <<"\n";
+ }
+ if(i==0)
+ std::cout << ss.str() << std::endl;
+ }
+
+}
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/encoding/codepage.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/encoding/codepage.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,200 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/config.hpp>
+
+#if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+#define BOOST_LOCALE_WITH_WCONV
+#endif
+
+#ifdef BOOST_LOCALE_WITH_ICONV
+#include "iconv_codepage.ipp"
+#endif
+#ifdef BOOST_LOCALE_WITH_ICU
+#include "uconv_codepage.ipp"
+#endif
+#ifdef BOOST_LOCALE_WITH_WCONV
+#include "wconv_codepage.ipp"
+#endif
+
+#include <boost/locale/encoding.hpp>
+
+#include <string>
+#include <cstring>
+#include <memory>
+
+namespace boost {
+ namespace locale {
+ namespace conv {
+ namespace impl {
+
+ std::string convert_between(char const *begin,
+ char const *end,
+ char const *to_charset,
+ char const *from_charset,
+ method_type how)
+ {
+ std::auto_ptr<converter_between> cvt;
+ #ifdef BOOST_LOCALE_WITH_ICONV
+ cvt.reset(new iconv_between());
+ if(cvt->open(to_charset,from_charset,how))
+ return cvt->convert(begin,end);
+ #endif
+ #ifdef BOOST_LOCALE_WITH_ICU
+ cvt.reset(new uconv_between());
+ if(cvt->open(to_charset,from_charset,how))
+ return cvt->convert(begin,end);
+ #endif
+ #ifdef BOOST_LOCALE_WITH_WCONV
+ cvt.reset(new wconv_between());
+ if(cvt->open(to_charset,from_charset,how))
+ return cvt->convert(begin,end);
+ #endif
+ throw invalid_charset_error(std::string(to_charset) + " or " + from_charset);
+ }
+
+ template<typename CharType>
+ std::basic_string<CharType> convert_to(
+ char const *begin,
+ char const *end,
+ char const *charset,
+ method_type how)
+ {
+ std::auto_ptr<converter_to_utf<CharType> > cvt;
+ #ifdef BOOST_LOCALE_WITH_ICONV
+ cvt.reset(new iconv_to_utf<CharType>());
+ if(cvt->open(charset,how))
+ return cvt->convert(begin,end);
+ #endif
+ #ifdef BOOST_LOCALE_WITH_ICU
+ cvt.reset(new uconv_to_utf<CharType>());
+ if(cvt->open(charset,how))
+ return cvt->convert(begin,end);
+ #endif
+ #ifdef BOOST_LOCALE_WITH_WCONV
+ cvt.reset(new wconv_to_utf<CharType>());
+ if(cvt->open(charset,how))
+ return cvt->convert(begin,end);
+ #endif
+ throw invalid_charset_error(charset);
+ }
+
+ template<typename CharType>
+ std::string convert_from(
+ CharType const *begin,
+ CharType const *end,
+ char const *charset,
+ method_type how)
+ {
+ std::auto_ptr<converter_from_utf<CharType> > cvt;
+ #ifdef BOOST_LOCALE_WITH_ICONV
+ cvt.reset(new iconv_from_utf<CharType>());
+ if(cvt->open(charset,how))
+ return cvt->convert(begin,end);
+ #endif
+ #ifdef BOOST_LOCALE_WITH_ICU
+ cvt.reset(new uconv_from_utf<CharType>());
+ if(cvt->open(charset,how))
+ return cvt->convert(begin,end);
+ #endif
+ #ifdef BOOST_LOCALE_WITH_WCONV
+ cvt.reset(new wconv_from_utf<CharType>());
+ if(cvt->open(charset,how))
+ return cvt->convert(begin,end);
+ #endif
+ throw invalid_charset_error(charset);
+ }
+
+ std::string normalize_encoding(char const *ccharset)
+ {
+ std::string charset;
+ charset.reserve(std::strlen(ccharset));
+ while(*ccharset!=0) {
+ char c=*ccharset++;
+ if('0' <= c && c<= '9')
+ charset+=c;
+ else if('a' <=c && c <='z')
+ charset+=c;
+ else if('A' <=c && c <='Z')
+ charset+=char(c-'A'+'a');
+ }
+ return charset;
+ }
+
+
+ } // impl
+
+ using namespace impl;
+
+ std::string between(char const *begin,char const *end,
+ std::string const &to_charset,std::string const &from_charset,method_type how)
+ {
+ return convert_between(begin,end,to_charset.c_str(),from_charset.c_str(),how);
+ }
+
+ template<>
+ std::basic_string<char> to_utf(char const *begin,char const *end,std::string const &charset,method_type how)
+ {
+ return convert_to<char>(begin,end,charset.c_str(),how);
+ }
+
+ template<>
+ std::string from_utf(char const *begin,char const *end,std::string const &charset,method_type how)
+ {
+ return convert_from<char>(begin,end,charset.c_str(),how);
+ }
+
+ template<>
+ std::basic_string<wchar_t> to_utf(char const *begin,char const *end,std::string const &charset,method_type how)
+ {
+ return convert_to<wchar_t>(begin,end,charset.c_str(),how);
+ }
+
+ template<>
+ std::string from_utf(wchar_t const *begin,wchar_t const *end,std::string const &charset,method_type how)
+ {
+ return convert_from<wchar_t>(begin,end,charset.c_str(),how);
+ }
+
+ #ifdef BOOST_HAS_CHAR16_T
+ template<>
+ std::basic_string<char16_t> to_utf(char const *begin,char const *end,std::string const &charset,method_type how)
+ {
+ return convert_to<char16_t>(begin,end,charset.c_str(),how);
+ }
+
+ template<>
+ std::string from_utf(char16_t const *begin,char16_t const *end,std::string const &charset,method_type how)
+ {
+ return convert_from<char16_t>(begin,end,charset.c_str(),how);
+ }
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+ template<>
+ std::basic_string<char32_t> to_utf(char const *begin,char const *end,std::string const &charset,method_type how)
+ {
+ return convert_to<char32_t>(begin,end,charset.c_str(),how);
+ }
+
+ template<>
+ std::string from_utf(char32_t const *begin,char32_t const *end,std::string const &charset,method_type how)
+ {
+ return convert_from<char32_t>(begin,end,charset.c_str(),how);
+ }
+ #endif
+
+
+ }
+ }
+}
+
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/src/encoding/conv.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/encoding/conv.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,118 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef BOOST_LOCALE_CONV_IMPL_HPP
+#define BOOST_LOCALE_CONV_IMPL_HPP
+
+#include <boost/locale/config.hpp>
+#include <boost/locale/encoding.hpp>
+namespace boost {
+ namespace locale {
+ namespace conv {
+ namespace impl {
+
+ template<typename CharType>
+ char const *utf_name()
+ {
+ union {
+ char first;
+ uint16_t u16;
+ uint32_t u32;
+ } v;
+
+ if(sizeof(CharType) == 1) {
+ return "UTF-8";
+ }
+ else if(sizeof(CharType) == 2) {
+ v.u16 = 1;
+ if(v.first == 1) {
+ return "UTF-16LE";
+ }
+ else {
+ return "UTF-16BE";
+ }
+ }
+ else if(sizeof(CharType) == 4) {
+ v.u32 = 1;
+ if(v.first == 1) {
+ return "UTF-32LE";
+ }
+ else {
+ return "UTF-32BE";
+ }
+
+ }
+ else {
+ return "Unknown Character Encoding";
+ }
+ }
+
+ std::string normalize_encoding(char const *encoding);
+
+ inline int compare_encodings(char const *l,char const *r)
+ {
+ return normalize_encoding(l).compare(normalize_encoding(r));
+ }
+
+ #if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+ int encoding_to_windows_codepage(char const *ccharset);
+ #endif
+
+ class converter_between {
+ public:
+ typedef char char_type;
+
+ typedef std::string string_type;
+
+ virtual bool open(char const *to_charset,char const *from_charset,method_type how) = 0;
+
+ virtual std::string convert(char const *begin,char const *end) = 0;
+
+ virtual ~converter_between()
+ {
+ }
+ };
+
+ template<typename CharType>
+ class converter_from_utf {
+ public:
+ typedef CharType char_type;
+
+ typedef std::basic_string<char_type> string_type;
+
+ virtual bool open(char const *charset,method_type how) = 0;
+
+ virtual std::string convert(CharType const *begin,CharType const *end) = 0;
+
+ virtual ~converter_from_utf()
+ {
+ }
+ };
+
+ template<typename CharType>
+ class converter_to_utf {
+ public:
+ typedef CharType char_type;
+
+ typedef std::basic_string<char_type> string_type;
+
+ virtual bool open(char const *charset,method_type how) = 0;
+
+ virtual string_type convert(char const *begin,char const *end) = 0;
+
+ virtual ~converter_to_utf()
+ {
+ }
+ };
+ }
+ }
+ }
+}
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+#endif

Added: trunk/libs/locale/src/encoding/iconv_codepage.ipp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/encoding/iconv_codepage.ipp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,201 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_ICONV_CODEPAGE_HPP
+#define BOOST_LOCALE_IMPL_ICONV_CODEPAGE_HPP
+
+#include <boost/locale/encoding.hpp>
+#include "../util/iconv.hpp"
+#include <errno.h>
+#include "conv.hpp"
+#include <assert.h>
+#include <vector>
+
+namespace boost {
+namespace locale {
+namespace conv {
+namespace impl {
+
+class iconverter_base {
+public:
+
+ iconverter_base() :
+ cvt_((iconv_t)(-1))
+ {
+ }
+
+ virtual ~iconverter_base()
+ {
+ close();
+ }
+
+ size_t conv(char const **inbufc,size_t *inchar_left,
+ char **outbuf,size_t *outchar_left)
+ {
+ char **inbuf = const_cast<char **>(inbufc);
+ return iconv(cvt_,inbuf,inchar_left,outbuf,outchar_left);
+ }
+
+ bool open(char const *to,char const *from,method_type how)
+ {
+ close();
+ cvt_ = iconv_open(to,from);
+ how_ = how;
+ return cvt_ != (iconv_t)(-1);
+ }
+
+ template<typename OutChar,typename InChar>
+ std::basic_string<OutChar> real_convert(InChar const *ubegin,InChar const *uend)
+ {
+ std::basic_string<OutChar> sresult;
+
+ sresult.reserve(uend - ubegin);
+
+ OutChar result[64];
+
+ char *out_start = reinterpret_cast<char *>(&result[0]);
+ char const *begin = reinterpret_cast<char const *>(ubegin);
+ char const *end = reinterpret_cast<char const *>(uend);
+
+ enum { normal , unshifting , done } state = normal;
+
+ while(state!=done) {
+
+ size_t in_left = end - begin;
+ size_t out_left = sizeof(result);
+
+ char *out_ptr = out_start;
+ size_t res = 0;
+ if(in_left == 0)
+ state = unshifting;
+
+ if(state == normal)
+ res = conv(&begin,&in_left,&out_ptr,&out_left);
+ else
+ res = conv(0,0,&out_ptr,&out_left);
+
+ int err = errno;
+
+ size_t output_count = (out_ptr - out_start) / sizeof(OutChar);
+
+ sresult.append(&result[0],output_count);
+
+ if(res == (size_t)(-1)) {
+ if(err == EILSEQ || err == EINVAL) {
+ if(how_ == stop) {
+ throw conversion_error();
+ }
+
+ if(begin != end) {
+ begin+=sizeof(InChar);
+ if(begin >= end)
+ break;
+ }
+ else {
+ break;
+ }
+ }
+ else if (err==E2BIG) {
+ continue;
+ }
+ else {
+ // We should never get there
+ // but if we do
+ if(how_ == stop)
+ throw conversion_error();
+ else
+ break;
+ }
+ }
+ if(state == unshifting)
+ state = done;
+ }
+ return sresult;
+ }
+
+
+private:
+
+ void close()
+ {
+ if(cvt_!=(iconv_t)(-1)) {
+ iconv_close(cvt_);
+ cvt_ = (iconv_t)(-1);
+ }
+ }
+
+ iconv_t cvt_;
+
+ method_type how_;
+
+};
+
+template<typename CharType>
+class iconv_from_utf : public iconverter_base, public converter_from_utf<CharType>
+{
+public:
+
+ typedef CharType char_type;
+
+ virtual bool open(char const *charset,method_type how)
+ {
+ return iconverter_base::open(charset,utf_name<CharType>(),how);
+ }
+
+ virtual std::string convert(char_type const *ubegin,char_type const *uend)
+ {
+ return real_convert<char,char_type>(ubegin,uend);
+ }
+};
+
+class iconv_between: public iconverter_base, public converter_between
+{
+public:
+ virtual bool open(char const *to_charset,char const *from_charset,method_type how)
+ {
+ return iconverter_base::open(to_charset,from_charset,how);
+ }
+ virtual std::string convert(char const *begin,char const *end)
+ {
+ return real_convert<char,char>(begin,end);
+ }
+
+};
+
+
+template<typename CharType>
+class iconv_to_utf : public iconverter_base, public converter_to_utf<CharType>
+{
+public:
+
+ typedef CharType char_type;
+ typedef std::basic_string<char_type> string_type;
+
+ virtual bool open(char const *charset,method_type how)
+ {
+ return iconverter_base::open(utf_name<CharType>(),charset,how);
+ }
+
+ virtual string_type convert(char const *begin,char const *end)
+ {
+ return real_convert<char_type,char>(begin,end);
+ }
+};
+
+
+
+
+} // impl
+} // conv
+} // locale
+} // boost
+
+
+
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/encoding/uconv_codepage.ipp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/encoding/uconv_codepage.ipp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,162 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_UCONV_CODEPAGE_HPP
+#define BOOST_LOCALE_IMPL_UCONV_CODEPAGE_HPP
+#include <boost/locale/encoding.hpp>
+#include "conv.hpp"
+#include "../icu/icu_util.hpp"
+#include "../icu/uconv.hpp"
+#include <unicode/ucnv.h>
+#include <unicode/ucnv_err.h>
+#include <vector>
+#include <memory>
+
+namespace boost {
+namespace locale {
+namespace conv {
+namespace impl {
+ template<typename CharType>
+ class uconv_to_utf : public converter_to_utf<CharType> {
+ public:
+ typedef CharType char_type;
+
+ typedef std::basic_string<char_type> string_type;
+
+ virtual bool open(char const *charset,method_type how)
+ {
+ close();
+ try {
+ cvt_from_.reset(new from_type(charset,how == skip ? impl_icu::cvt_skip : impl_icu::cvt_stop));
+ cvt_to_.reset(new to_type("UTF-8",how == skip ? impl_icu::cvt_skip : impl_icu::cvt_stop));
+ }
+ catch(std::exception const &/*e*/) {
+ close();
+ return false;
+ }
+ return true;
+ }
+ void close()
+ {
+ cvt_from_.reset();
+ cvt_to_.reset();
+ }
+
+ virtual string_type convert(char const *begin,char const *end)
+ {
+ try {
+ return cvt_to_->std(cvt_from_->icu_checked(begin,end));
+ }
+ catch(std::exception const &/*e*/) {
+ throw conversion_error();
+ }
+ }
+
+ private:
+
+ typedef impl_icu::icu_std_converter<char> from_type;
+ typedef impl_icu::icu_std_converter<CharType> to_type;
+
+ std::auto_ptr<from_type> cvt_from_;
+ std::auto_ptr<to_type> cvt_to_;
+
+ };
+
+
+ template<typename CharType>
+ class uconv_from_utf : public converter_from_utf<CharType> {
+ public:
+ typedef CharType char_type;
+ virtual bool open(char const *charset,method_type how)
+ {
+ close();
+ try {
+ cvt_from_.reset(new from_type("UTF-8",how == skip ? impl_icu::cvt_skip : impl_icu::cvt_stop));
+ cvt_to_.reset(new to_type(charset,how == skip ? impl_icu::cvt_skip : impl_icu::cvt_stop));
+ }
+ catch(std::exception const &/*e*/) {
+ close();
+ return false;
+ }
+ return true;
+ }
+ void close()
+ {
+ cvt_from_.reset();
+ cvt_to_.reset();
+ }
+
+ virtual std::string convert(CharType const *begin,CharType const *end)
+ {
+ try {
+ return cvt_to_->std(cvt_from_->icu_checked(begin,end));
+ }
+ catch(std::exception const &/*e*/) {
+ throw conversion_error();
+ }
+ }
+
+ private:
+
+ typedef impl_icu::icu_std_converter<CharType> from_type;
+ typedef impl_icu::icu_std_converter<char> to_type;
+
+ std::auto_ptr<from_type> cvt_from_;
+ std::auto_ptr<to_type> cvt_to_;
+
+ };
+
+ class uconv_between : public converter_between {
+ public:
+ virtual bool open(char const *to_charset,char const *from_charset,method_type how)
+ {
+ close();
+ try {
+ cvt_from_.reset(new from_type(from_charset,how == skip ? impl_icu::cvt_skip : impl_icu::cvt_stop));
+ cvt_to_.reset(new to_type(to_charset,how == skip ? impl_icu::cvt_skip : impl_icu::cvt_stop));
+ }
+ catch(std::exception const &/*e*/) {
+ close();
+ return false;
+ }
+ return true;
+ }
+ void close()
+ {
+ cvt_from_.reset();
+ cvt_to_.reset();
+ }
+
+ virtual std::string convert(char const *begin,char const *end)
+ {
+ try {
+ return cvt_to_->std(cvt_from_->icu(begin,end));
+ }
+ catch(std::exception const &/*e*/) {
+ throw conversion_error();
+ }
+ }
+
+ private:
+
+ typedef impl_icu::icu_std_converter<char> from_type;
+ typedef impl_icu::icu_std_converter<char> to_type;
+
+ std::auto_ptr<from_type> cvt_from_;
+ std::auto_ptr<to_type> cvt_to_;
+
+ };
+
+
+} // impl
+} // conv
+} // locale
+} // boost
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+
+#endif

Added: trunk/libs/locale/src/encoding/wconv_codepage.ipp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/encoding/wconv_codepage.ipp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,526 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef BOOST_LOCALE_IMPL_WCONV_CODEPAGE_HPP
+#define BOOST_LOCALE_IMPL_WCONV_CODEPAGE_HPP
+
+
+#include <boost/locale/encoding.hpp>
+#include <algorithm>
+#include <cstring>
+#include <string>
+#include "conv.hpp"
+
+#ifndef NOMINMAX
+# define NOMINMAX
+#endif
+#include <windows.h>
+#include <vector>
+
+
+namespace boost {
+namespace locale {
+namespace conv {
+namespace impl {
+
+ struct windows_encoding {
+ char const *name;
+ unsigned codepage;
+ };
+
+ bool operator<(windows_encoding const &l,windows_encoding const &r)
+ {
+ return strcmp(l.name,r.name) < 0;
+ }
+
+ windows_encoding all_windows_encodings[] = {
+ { "big5", 950 },
+ { "cp1250", 1250 },
+ { "cp1251", 1251 },
+ { "cp1252", 1252 },
+ { "cp1253", 1253 },
+ { "cp1254", 1254 },
+ { "cp1255", 1255 },
+ { "cp1256", 1256 },
+ { "cp1257", 1257 },
+ { "cp874", 874 },
+ { "cp932", 932 },
+ { "eucjp", 20932 },
+ { "euckr", 51949 },
+ { "gb18030", 54936 },
+ { "gb2312", 936 },
+ { "iso2022jp", 50220 },
+ { "iso2022kr", 50225 },
+ { "iso88591", 28591 },
+ { "iso885913", 28603 },
+ { "iso885915", 28605 },
+ { "iso88592", 28592 },
+ { "iso88593", 28593 },
+ { "iso88594", 28594 },
+ { "iso88595", 28595 },
+ { "iso88596", 28596 },
+ { "iso88597", 28597 },
+ { "iso88598", 28598 },
+ { "iso88599", 28599 },
+ { "koi8r", 20866 },
+ { "koi8u", 21866 },
+ { "shiftjis", 932 },
+ { "sjis", 932 },
+ { "usascii", 20127 },
+ { "utf8", 65001 },
+ { "windows1250", 1250 },
+ { "windows1251", 1251 },
+ { "windows1252", 1252 },
+ { "windows1253", 1253 },
+ { "windows1254", 1254 },
+ { "windows1255", 1255 },
+ { "windows1256", 1256 },
+ { "windows1257", 1257 },
+ { "windows874", 874 },
+ { "windows932", 932 },
+ };
+
+ size_t remove_substitutions(std::vector<wchar_t> &v)
+ {
+ v.erase(std::remove(v.begin(), v.end(), wchar_t(0xFFFD)), v.end());
+ return v.size();
+ }
+
+ size_t remove_substitutions(std::vector<char> &v)
+ {
+ if(std::find(v.begin(),v.end(),0) == v.end()) {
+ return v.size();
+ }
+ std::vector<char> v2;
+ v2.reserve(v.size());
+ for(unsigned i=0;i<v.size();i++) {
+ if(v[i]!=0)
+ v2.push_back(v[i]);
+ }
+ v.swap(v2);
+ return v.size();
+ }
+
+
+ void multibyte_to_wide(int codepage,char const *begin,char const *end,bool do_skip,std::vector<wchar_t> &buf)
+ {
+ if(begin==end)
+ return;
+ DWORD flags = do_skip ? 0 : MB_ERR_INVALID_CHARS;
+ if(50220 <= codepage && codepage <= 50229)
+ flags = 0;
+
+ int n = MultiByteToWideChar(codepage,flags,begin,end-begin,0,0);
+ if(n == 0)
+ throw conversion_error();
+ buf.resize(n,0);
+ if(MultiByteToWideChar(codepage,flags,begin,end-begin,&buf.front(),buf.size())==0)
+ throw conversion_error();
+ if(do_skip)
+ remove_substitutions(buf);
+ }
+
+ void wide_to_multibyte_non_zero(int codepage,wchar_t const *begin,wchar_t const *end,bool do_skip,std::vector<char> &buf)
+ {
+ if(begin==end)
+ return;
+ BOOL substitute = FALSE;
+ BOOL *substitute_ptr = codepage == 65001 || codepage == 65000 ? 0 : &substitute;
+ char subst_char = 0;
+ char *subst_char_ptr = codepage == 65001 || codepage == 65000 ? 0 : &subst_char;
+
+ int n = WideCharToMultiByte(codepage,0,begin,end-begin,0,0,subst_char_ptr,substitute_ptr);
+ buf.resize(n);
+
+ if(WideCharToMultiByte(codepage,0,begin,end-begin,&buf[0],n,subst_char_ptr,substitute_ptr)==0)
+ throw conversion_error();
+ if(substitute) {
+ if(do_skip)
+ remove_substitutions(buf);
+ else
+ throw conversion_error();
+ }
+ }
+
+ void wide_to_multibyte(int codepage,wchar_t const *begin,wchar_t const *end,bool do_skip,std::vector<char> &buf)
+ {
+ if(begin==end)
+ return;
+ buf.reserve(end-begin);
+ wchar_t const *e = std::find(begin,end,L'\0');
+ wchar_t const *b = begin;
+ for(;;) {
+ std::vector<char> tmp;
+ wide_to_multibyte_non_zero(codepage,b,e,do_skip,tmp);
+ size_t osize = buf.size();
+ buf.resize(osize+tmp.size());
+ std::copy(tmp.begin(),tmp.end(),buf.begin()+osize);
+ if(e!=end) {
+ buf.push_back('\0');
+ b=e+1;
+ e=std::find(b,end,L'0');
+ }
+ else
+ break;
+ }
+ }
+
+
+ int encoding_to_windows_codepage(char const *ccharset)
+ {
+ std::string charset = normalize_encoding(ccharset);
+ windows_encoding ref;
+ ref.name = charset.c_str();
+ size_t n = sizeof(all_windows_encodings)/sizeof(all_windows_encodings[0]);
+ windows_encoding *begin = all_windows_encodings;
+ windows_encoding *end = all_windows_encodings + n;
+ windows_encoding *ptr = std::lower_bound(begin,end,ref);
+ if(ptr!=end && strcmp(ptr->name,charset.c_str())==0) {
+ return ptr->codepage;
+ }
+ return -1;
+
+ }
+
+ template<typename CharType>
+ bool validate_utf16(CharType const *str,unsigned len)
+ {
+ for(unsigned i=0;i<len;i++) {
+ uint16_t c = static_cast<uint16_t>(str[i]);
+
+ if(0xD800 <= c && c<= 0xDBFF) {
+ i++;
+ if(i>=len)
+ return false;
+ c=static_cast<uint16_t>(str[i]);
+ if(0xDC00 <= c && c <= 0xDFFF)
+ continue;
+ return false;
+ }
+ else if(0xDC00 <= c && c <=0xDFFF)
+ return false;
+ }
+ return true;
+ }
+
+ template<typename CharType,typename OutChar>
+ void clean_invalid_utf16(CharType const *str,unsigned len,std::vector<OutChar> &out)
+ {
+ out.reserve(len);
+ for(unsigned i=0;i<len;i++) {
+ uint16_t c = static_cast<uint16_t>(str[i]);
+
+ if(0xD800 <= c && c<= 0xDBFF) {
+ i++;
+ if(i>=len)
+ return;
+ uint16_t c2=static_cast<uint16_t>(str[i]);
+ if(0xDC00 <= c2 && c2 <= 0xDFFF) {
+ out.push_back(static_cast<OutChar>(c));
+ out.push_back(static_cast<OutChar>(c2));
+ }
+ }
+ else if(0xDC00 <= c && c <=0xDFFF)
+ continue;
+ else
+ out.push_back(static_cast<OutChar>(c));
+ }
+ }
+
+
+ class wconv_between : public converter_between {
+ public:
+ wconv_between() :
+ how_(skip),
+ to_code_page_ (-1),
+ from_code_page_ ( -1)
+ {
+ }
+ bool open(char const *to_charset,char const *from_charset,method_type how)
+ {
+ how_ = how;
+ to_code_page_ = encoding_to_windows_codepage(to_charset);
+ from_code_page_ = encoding_to_windows_codepage(from_charset);
+ if(to_code_page_ == -1 || from_code_page_ == -1)
+ return false;
+ return true;
+ }
+ virtual std::string convert(char const *begin,char const *end)
+ {
+ std::string res;
+ std::vector<wchar_t> tmp;
+ multibyte_to_wide(from_code_page_,begin,end,how_ == skip,tmp);
+ if(tmp.empty())
+ return res;
+ std::vector<char> ctmp;
+ wide_to_multibyte(to_code_page_,&tmp.front(),&tmp.front()+tmp.size(),how_ == skip,ctmp);
+ if(ctmp.empty())
+ return res;
+ res.assign(&ctmp.front(),ctmp.size());
+ return res;
+ }
+ private:
+ method_type how_;
+ int to_code_page_;
+ int from_code_page_;
+ };
+
+ template<typename CharType,int size = sizeof(CharType) >
+ class wconv_to_utf;
+
+ template<typename CharType,int size = sizeof(CharType) >
+ class wconv_from_utf;
+
+ template<>
+ class wconv_to_utf<char,1> : public converter_to_utf<char> , public wconv_between {
+ public:
+ virtual bool open(char const *cs,method_type how)
+ {
+ return wconv_between::open("UTF-8",cs,how);
+ }
+ virtual std::string convert(char const *begin,char const *end)
+ {
+ return wconv_between::convert(begin,end);
+ }
+ };
+
+ template<>
+ class wconv_from_utf<char,1> : public converter_from_utf<char> , public wconv_between {
+ public:
+ virtual bool open(char const *cs,method_type how)
+ {
+ return wconv_between::open(cs,"UTF-8",how);
+ }
+ virtual std::string convert(char const *begin,char const *end)
+ {
+ return wconv_between::convert(begin,end);
+ }
+ };
+
+ template<typename CharType>
+ class wconv_to_utf<CharType,2> : public converter_to_utf<CharType> {
+ public:
+ typedef CharType char_type;
+
+ typedef std::basic_string<char_type> string_type;
+
+ wconv_to_utf() :
+ how_(skip),
+ code_page_(-1)
+ {
+ }
+
+ virtual bool open(char const *charset,method_type how)
+ {
+ how_ = how;
+ code_page_ = encoding_to_windows_codepage(charset);
+ return code_page_ != -1;
+ }
+
+ virtual string_type convert(char const *begin,char const *end)
+ {
+ std::vector<wchar_t> tmp;
+ multibyte_to_wide(code_page_,begin,end,how_ == skip,tmp);
+ string_type res;
+ if(!tmp.empty())
+ res.assign(reinterpret_cast<char_type *>(&tmp.front()),tmp.size());
+ return res;
+ }
+
+ private:
+ method_type how_;
+ int code_page_;
+ };
+
+ template<typename CharType>
+ class wconv_from_utf<CharType,2> : public converter_from_utf<CharType> {
+ public:
+ typedef CharType char_type;
+
+ typedef std::basic_string<char_type> string_type;
+
+ wconv_from_utf() :
+ how_(skip),
+ code_page_(-1)
+ {
+ }
+
+ virtual bool open(char const *charset,method_type how)
+ {
+ how_ = how;
+ code_page_ = encoding_to_windows_codepage(charset);
+ return code_page_ != -1;
+ }
+
+ virtual std::string convert(CharType const *begin,CharType const *end)
+ {
+ wchar_t const *wbegin = 0;
+ wchar_t const *wend = 0;
+ std::vector<wchar_t> buffer; // if needed
+ if(begin==end)
+ return std::string();
+ if(validate_utf16(begin,end-begin)) {
+ wbegin = reinterpret_cast<wchar_t const *>(begin);
+ wend = reinterpret_cast<wchar_t const *>(end);
+ }
+ else {
+ if(how_ == stop) {
+ throw conversion_error();
+ }
+ else {
+ clean_invalid_utf16(begin,end-begin,buffer);
+ if(!buffer.empty()) {
+ wbegin = &buffer[0];
+ wend = wbegin + buffer.size();
+ }
+ }
+ }
+ std::string res;
+ if(wbegin==wend)
+ return res;
+ std::vector<char> ctmp;
+ wide_to_multibyte(code_page_,wbegin,wend,how_ == skip,ctmp);
+ if(ctmp.empty())
+ return res;
+ res.assign(&ctmp.front(),ctmp.size());
+ return res;
+ }
+
+ private:
+ method_type how_;
+ int code_page_;
+ };
+
+
+
+ template<typename CharType>
+ class wconv_to_utf<CharType,4> : public converter_to_utf<CharType> {
+ public:
+ typedef CharType char_type;
+
+ typedef std::basic_string<char_type> string_type;
+
+ wconv_to_utf() :
+ how_(skip),
+ code_page_(-1)
+ {
+ }
+
+ virtual bool open(char const *charset,method_type how)
+ {
+ how_ = how;
+ code_page_ = encoding_to_windows_codepage(charset);
+ return code_page_ != -1;
+ }
+
+ virtual string_type convert(char const *begin,char const *end)
+ {
+ std::vector<wchar_t> buf;
+ multibyte_to_wide(code_page_,begin,end,how_ == skip,buf);
+ remove_substitutions(buf);
+
+ size_t n=buf.size();
+ string_type res;
+ res.reserve(n);
+ for(unsigned i=0;i<n;i++) {
+ wchar_t cur = buf[i];
+ if(0xD800 <= cur && cur<= 0xDBFF) {
+ i++;
+ if(i>=n)
+ throw conversion_error();
+ if(0xDC00 <= buf[i] && buf[i]<=0xDFFF) {
+ uint32_t w1 = cur;
+ uint32_t w2 = buf[i];
+ uint32_t norm = ((uint32_t(w1 & 0x3FF) << 10) | (w2 & 0x3FF)) + 0x10000;
+ res+=char_type(norm);
+ }
+ else
+ throw conversion_error();
+ }
+ else if(0xDC00 <= cur && cur<=0xDFFF)
+ throw conversion_error();
+ else
+ res+=char_type(cur);
+ }
+ return res;
+ }
+ private:
+ method_type how_;
+ int code_page_;
+ };
+
+ template<typename CharType>
+ class wconv_from_utf<CharType,4> : public converter_from_utf<CharType> {
+ public:
+ typedef CharType char_type;
+
+ typedef std::basic_string<char_type> string_type;
+
+ wconv_from_utf() :
+ how_(skip),
+ code_page_(-1)
+ {
+ }
+
+ virtual bool open(char const *charset,method_type how)
+ {
+ how_ = how;
+ code_page_ = encoding_to_windows_codepage(charset);
+ return code_page_ != -1;
+ }
+
+ virtual std::string convert(CharType const *begin,CharType const *end)
+ {
+ std::wstring tmp;
+ tmp.reserve(end-begin);
+ while(begin!=end) {
+ uint32_t cur = *begin++;
+ if(cur > 0x10FFFF || (0xD800 <=cur && cur <=0xDFFF)) {
+ if(how_ == skip)
+ continue;
+ else
+ throw conversion_error();
+ }
+ if(cur > 0xFFFF) {
+ uint32_t u = cur - 0x10000;
+ wchar_t first = 0xD800 | (u>>10);
+ wchar_t second = 0xDC00 | (u & 0x3FF);
+ tmp+=first;
+ tmp+=second;
+ }
+ else {
+ tmp+=wchar_t(cur);
+ }
+ }
+
+ std::vector<char> ctmp;
+ wide_to_multibyte(code_page_,tmp.c_str(),tmp.c_str()+tmp.size(),how_ == skip,ctmp);
+ std::string res;
+ if(ctmp.empty())
+ return res;
+ res.assign(&ctmp.front(),ctmp.size());
+ return res;
+
+ }
+
+ private:
+ method_type how_;
+ int code_page_;
+ };
+
+
+
+
+
+} // impl
+} // conv
+} // locale
+} // boost
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/icu/all_generator.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/all_generator.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,30 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_ALL_GENERATOR_HPP
+#define BOOST_LOCALE_IMPL_ALL_GENERATOR_HPP
+
+#include <boost/locale/generator.hpp>
+
+namespace boost {
+ namespace locale {
+ namespace impl_icu {
+ struct cdata;
+ std::locale create_convert(std::locale const &,cdata const &,character_facet_type); // ok
+ std::locale create_collate(std::locale const &,cdata const &,character_facet_type); // ok
+ std::locale create_formatting(std::locale const &,cdata const &,character_facet_type); // ok
+ std::locale create_parsing(std::locale const &,cdata const &,character_facet_type); // ok
+ std::locale create_codecvt(std::locale const &,std::string const &encoding,character_facet_type); // ok
+ std::locale create_boundary(std::locale const &,cdata const &,character_facet_type); // ok
+ std::locale create_calendar(std::locale const &,cdata const &); // ok
+
+ }
+ }
+}
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/icu/boundary.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/boundary.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,226 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/boundary.hpp>
+#include <boost/locale/generator.hpp>
+#include <unicode/uversion.h>
+#if U_ICU_VERSION_MAJOR_NUM*100 + U_ICU_VERSION_MINOR_NUM >= 306
+#include <unicode/utext.h>
+#endif
+#include <unicode/brkiter.h>
+#include <unicode/rbbi.h>
+
+#include "cdata.hpp"
+#include "all_generator.hpp"
+#include "icu_util.hpp"
+#include "uconv.hpp"
+
+namespace boost {
+namespace locale {
+namespace boundary {
+namespace impl_icu {
+
+using namespace boost::locale::impl_icu;
+
+index_type map_direct(boundary_type t,icu::BreakIterator *it,int reserve)
+{
+ index_type indx;
+ indx.reserve(reserve);
+ icu::RuleBasedBreakIterator *rbbi=dynamic_cast<icu::RuleBasedBreakIterator *>(it);
+
+ indx.push_back(break_info());
+ it->first();
+ int pos=0;
+ while((pos=it->next())!=icu::BreakIterator::DONE) {
+ indx.push_back(break_info(pos));
+ /// Character does not have any specific break types
+ if(t!=character && rbbi) {
+ //
+ // There is a collapse for MSVC: int32_t defined by both boost::cstdint and icu...
+ // So need to pick one ;(
+ //
+ std::vector< ::int32_t> buffer;
+ ::int32_t membuf[8]={0}; // try not to use memory allocation if possible
+ ::int32_t *buf=membuf;
+
+ UErrorCode err=U_ZERO_ERROR;
+ int n = rbbi->getRuleStatusVec(buf,8,err);
+
+ if(err == U_BUFFER_OVERFLOW_ERROR) {
+ buf=&buffer.front();
+ buffer.resize(n,0);
+ n = rbbi->getRuleStatusVec(buf,buffer.size(),err);
+ }
+
+ check_and_throw_icu_error(err);
+
+ for(int i=0;i<n;i++) {
+ switch(t) {
+ case word:
+ if(UBRK_WORD_NONE<=buf[i] && buf[i]<UBRK_WORD_NONE_LIMIT)
+ indx.back().rule |= word_none;
+ else if(UBRK_WORD_NUMBER<=buf[i] && buf[i]<UBRK_WORD_NUMBER_LIMIT)
+ indx.back().rule |= word_number;
+ else if(UBRK_WORD_LETTER<=buf[i] && buf[i]<UBRK_WORD_LETTER_LIMIT)
+ indx.back().rule |= word_letter;
+ else if(UBRK_WORD_KANA<=buf[i] && buf[i]<UBRK_WORD_KANA_LIMIT)
+ indx.back().rule |= word_kana;
+ else if(UBRK_WORD_IDEO<=buf[i] && buf[i]<UBRK_WORD_IDEO_LIMIT)
+ indx.back().rule |= word_ideo;
+ break;
+
+ case line:
+ if(UBRK_LINE_SOFT<=buf[i] && buf[i]<UBRK_LINE_SOFT_LIMIT)
+ indx.back().rule |= line_soft;
+ else if(UBRK_LINE_HARD<=buf[i] && buf[i]<UBRK_LINE_HARD_LIMIT)
+ indx.back().rule |= line_hard;
+ break;
+
+ case sentence:
+ if(UBRK_SENTENCE_TERM<=buf[i] && buf[i]<UBRK_SENTENCE_TERM_LIMIT)
+ indx.back().rule |= sentence_term;
+ else if(UBRK_SENTENCE_SEP<=buf[i] && buf[i]<UBRK_SENTENCE_SEP_LIMIT)
+ indx.back().rule |= sentence_sep;
+ break;
+ default:
+ ;
+ }
+ }
+ }
+ else {
+ indx.back().rule |=character_any; // Baisc mark... for character
+ }
+ }
+ return indx;
+}
+
+std::auto_ptr<icu::BreakIterator> get_iterator(boundary_type t,icu::Locale const &loc)
+{
+ UErrorCode err=U_ZERO_ERROR;
+ std::auto_ptr<icu::BreakIterator> bi;
+ switch(t) {
+ case character:
+ bi.reset(icu::BreakIterator::createCharacterInstance(loc,err));
+ break;
+ case word:
+ bi.reset(icu::BreakIterator::createWordInstance(loc,err));
+ break;
+ case sentence:
+ bi.reset(icu::BreakIterator::createSentenceInstance(loc,err));
+ break;
+ case line:
+ bi.reset(icu::BreakIterator::createLineInstance(loc,err));
+ break;
+ default:
+ throw std::runtime_error("Invalid iteration type");
+ }
+ check_and_throw_icu_error(err);
+ if(!bi.get())
+ throw std::runtime_error("Failed to create break iterator");
+ return bi;
+}
+
+
+template<typename CharType>
+index_type do_map(boundary_type t,CharType const *begin,CharType const *end,icu::Locale const &loc,std::string const &encoding)
+{
+ index_type indx;
+ std::auto_ptr<icu::BreakIterator> bi(get_iterator(t,loc));
+
+#if U_ICU_VERSION_MAJOR_NUM*100 + U_ICU_VERSION_MINOR_NUM >= 306
+ UErrorCode err=U_ZERO_ERROR;
+ if(sizeof(CharType) == 2 || (sizeof(CharType)==1 && encoding=="UTF-8"))
+ {
+ UText *ut=0;
+ try {
+ if(sizeof(CharType)==1)
+ ut=utext_openUTF8(0,reinterpret_cast<char const *>(begin),end-begin,&err);
+ else // sizeof(CharType)==2
+ ut=utext_openUChars(0,reinterpret_cast<UChar const *>(begin),end-begin,&err);
+
+ check_and_throw_icu_error(err);
+ err=U_ZERO_ERROR;
+ if(!ut) throw std::runtime_error("Failed to create UText");
+ bi->setText(ut,err);
+ check_and_throw_icu_error(err);
+ index_type res=map_direct(t,bi.get(),end-begin);
+ indx.swap(res);
+ }
+ catch(...) {
+ if(ut)
+ utext_close(ut);
+ throw;
+ }
+ if(ut) utext_close(ut);
+ }
+ else
+#endif
+ {
+ icu_std_converter<CharType> cvt(encoding);
+ icu::UnicodeString str=cvt.icu(begin,end);
+ bi->setText(str);
+ index_type indirect = map_direct(t,bi.get(),str.length());
+ indx=indirect;
+ for(size_t i=1;i<indirect.size();i++) {
+ size_t offset_inderect=indirect[i-1].offset;
+ size_t diff = indirect[i].offset - offset_inderect;
+ size_t offset_direct=indx[i-1].offset;
+ indx[i].offset=offset_direct + cvt.cut(str,begin,end,diff,offset_inderect,offset_direct);
+ }
+ }
+ return indx;
+} // do_map
+
+template<typename CharType>
+class boundary_indexing_impl : public boundary_indexing<CharType> {
+public:
+ boundary_indexing_impl(cdata const &data) :
+ locale_(data.locale),
+ encoding_(data.encoding)
+ {
+ }
+ index_type map(boundary_type t,CharType const *begin,CharType const *end) const
+ {
+ return do_map<CharType>(t,begin,end,locale_,encoding_);
+ }
+private:
+ icu::Locale locale_;
+ std::string encoding_;
+};
+
+
+
+} // impl_icu
+} // boundary
+
+namespace impl_icu {
+ std::locale create_boundary(std::locale const &in,cdata const &cd,character_facet_type type)
+ {
+ using namespace boost::locale::boundary::impl_icu;
+ switch(type) {
+ case char_facet:
+ return std::locale(in,new boundary_indexing_impl<char>(cd));
+ case wchar_t_facet:
+ return std::locale(in,new boundary_indexing_impl<wchar_t>(cd));
+ #ifdef BOOST_HAS_CHAR16_T
+ case char16_t_facet:
+ return std::locale(in,new boundary_indexing_impl<char16_t>(cd));
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ case char32_t_facet:
+ return std::locale(in,new boundary_indexing_impl<char32_t>(cd));
+ #endif
+ default:
+ return in;
+ }
+ }
+} // impl_icu
+
+} // locale
+} // boost
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/icu/cdata.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/cdata.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,28 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_ICU_CDATA_HPP
+#define BOOST_LOCALE_ICU_CDATA_HPP
+
+#include <unicode/locid.h>
+#include <string>
+
+namespace boost {
+ namespace locale {
+ namespace impl_icu {
+ struct cdata {
+ icu::Locale locale;
+ std::string encoding;
+ bool utf8;
+ };
+ }
+ }
+}
+
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/icu/codecvt.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/codecvt.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,156 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/encoding.hpp>
+#include "../encoding/conv.hpp"
+#include "all_generator.hpp"
+#include "uconv.hpp"
+#include <unicode/ucnv.h>
+#include <unicode/ucnv_err.h>
+#include <boost/locale/util.hpp>
+#include "codecvt.hpp"
+
+#ifdef BOOST_MSVC
+# pragma warning(disable : 4244) // loose data
+#endif
+
+#include "icu_util.hpp"
+#include <vector>
+namespace boost {
+namespace locale {
+namespace impl_icu {
+ class uconv_converter : public util::base_converter {
+ public:
+
+ uconv_converter(std::string const &encoding) :
+ encoding_(encoding)
+ {
+ UErrorCode err=U_ZERO_ERROR;
+
+ // No need to check err each time, this
+ // is how ICU works.
+ cvt_ = ucnv_open(encoding.c_str(),&err);
+ ucnv_setFromUCallBack(cvt_,UCNV_FROM_U_CALLBACK_STOP,0,0,0,&err);
+ ucnv_setToUCallBack(cvt_,UCNV_TO_U_CALLBACK_STOP,0,0,0,&err);
+
+ if(!cvt_ || U_FAILURE(err)) {
+ if(cvt_)
+ ucnv_close(cvt_);
+ throw conv::invalid_charset_error(encoding);
+ }
+
+ max_len_ = ucnv_getMaxCharSize(cvt_);
+ }
+
+ virtual ~uconv_converter()
+ {
+ ucnv_close(cvt_);
+ }
+
+ virtual bool is_thread_safe() const
+ {
+ return false;
+ }
+
+ virtual uconv_converter *clone() const
+ {
+ return new uconv_converter(encoding_);
+ }
+
+ uint32_t to_unicode(char const *&begin,char const *end)
+ {
+ UErrorCode err=U_ZERO_ERROR;
+ char const *tmp = begin;
+ UChar32 c=ucnv_getNextUChar(cvt_,&tmp,end,&err);
+ ucnv_reset(cvt_);
+ if(err == U_TRUNCATED_CHAR_FOUND) {
+ return incomplete;
+ }
+ if(U_FAILURE(err)) {
+ return illegal;
+ }
+
+ begin = tmp;
+ return c;
+ }
+
+ uint32_t from_unicode(uint32_t u,char *begin,char const *end)
+ {
+ UChar code_point[2]={0};
+ int len;
+ if(u<=0xFFFF) {
+ if(0xD800 <=u && u<= 0xDFFF) // No surragates
+ return illegal;
+ code_point[0]=u;
+ len=1;
+ }
+ else {
+ u-=0x10000;
+ code_point[0]=0xD800 | (u>>10);
+ code_point[1]=0xDC00 | (u & 0x3FF);
+ len=2;
+ }
+ UErrorCode err=U_ZERO_ERROR;
+ int olen = ucnv_fromUChars(cvt_,begin,end-begin,code_point,len,&err);
+ ucnv_reset(cvt_);
+ if(err == U_BUFFER_OVERFLOW_ERROR)
+ return incomplete;
+ if(U_FAILURE(err))
+ return illegal;
+ return olen;
+ }
+
+ virtual int max_len() const
+ {
+ return max_len_;
+ }
+
+ private:
+ std::string encoding_;
+ UConverter *cvt_;
+ int max_len_;
+ };
+
+ std::auto_ptr<util::base_converter> create_uconv_converter(std::string const &encoding)
+ {
+ std::auto_ptr<util::base_converter> cvt;
+ try {
+ cvt.reset(new uconv_converter(encoding));
+ }
+ catch(std::exception const &/*e*/)
+ {
+ // no encoding so we return empty pointer
+ }
+ return cvt;
+ }
+
+ std::locale create_codecvt(std::locale const &in,std::string const &encoding,character_facet_type type)
+ {
+ std::auto_ptr<util::base_converter> cvt;
+ if(conv::impl::normalize_encoding(encoding.c_str())=="utf8")
+ cvt = util::create_utf8_converter();
+ else {
+ cvt = util::create_simple_converter(encoding);
+ if(!cvt.get()) {
+ try {
+ cvt = create_uconv_converter(encoding);
+ }
+ catch(std::exception const &/*e*/)
+ {
+ // not too much we can do
+ }
+ }
+ }
+ return util::create_codecvt(in,cvt,type);
+ }
+
+} // impl_icu
+} // locale
+} // boost
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/icu/codecvt.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/codecvt.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,24 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_ICU_CODECVT_HPP
+#define BOOST_LOCALE_IMPL_ICU_CODECVT_HPP
+#include <boost/locale/config.hpp>
+#include <boost/locale/util.hpp>
+#include <memory>
+namespace boost {
+namespace locale {
+namespace impl_icu {
+ BOOST_LOCALE_DECL
+ std::auto_ptr<util::base_converter> create_uconv_converter(std::string const &encoding);
+
+} // impl_icu
+} // locale
+} // boost
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/icu/collator.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/collator.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,201 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/collator.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/thread.hpp>
+#include <vector>
+#include <limits>
+
+#include "cdata.hpp"
+#include "all_generator.hpp"
+#include "uconv.hpp"
+#include "../shared/mo_hash.hpp"
+
+#include <unicode/coll.h>
+#if U_ICU_VERSION_MAJOR_NUM*100 + U_ICU_VERSION_MINOR_NUM >= 402
+# include <unicode/stringpiece.h>
+#endif
+
+namespace boost {
+ namespace locale {
+ namespace impl_icu {
+ template<typename CharType>
+ class collate_impl : public collator<CharType>
+ {
+ public:
+ typedef typename collator<CharType>::level_type level_type;
+ level_type limit(level_type level) const
+ {
+ if(level < 0)
+ level=collator_base::primary;
+ else if(level >= level_count)
+ level = static_cast<level_type>(level_count - 1);
+ return level;
+ }
+
+ #if U_ICU_VERSION_MAJOR_NUM*100 + U_ICU_VERSION_MINOR_NUM >= 402
+ int do_utf8_compare( level_type level,
+ char const *b1,char const *e1,
+ char const *b2,char const *e2,
+ UErrorCode &status) const
+ {
+ icu::StringPiece left (b1,e1-b1);
+ icu::StringPiece right(b2,e2-b2);
+ return get_collator(level)->compareUTF8(left,right,status);
+
+ }
+ #endif
+
+ int do_ustring_compare( level_type level,
+ CharType const *b1,CharType const *e1,
+ CharType const *b2,CharType const *e2,
+ UErrorCode &status) const
+ {
+ icu::UnicodeString left=cvt_.icu(b1,e1);
+ icu::UnicodeString right=cvt_.icu(b2,e2);
+ return get_collator(level)->compare(left,right,status);
+ }
+
+ int do_real_compare(level_type level,
+ CharType const *b1,CharType const *e1,
+ CharType const *b2,CharType const *e2,
+ UErrorCode &status) const
+ {
+ return do_ustring_compare(level,b1,e1,b2,e2,status);
+ }
+
+ virtual int do_compare( level_type level,
+ CharType const *b1,CharType const *e1,
+ CharType const *b2,CharType const *e2) const
+ {
+ UErrorCode status=U_ZERO_ERROR;
+
+ int res = do_real_compare(level,b1,e1,b2,e2,status);
+
+ if(U_FAILURE(status))
+ throw std::runtime_error(std::string("Collation failed:") + u_errorName(status));
+ if(res < 0)
+ return -1;
+ else if(res > 0)
+ return 1;
+ return 0;
+ }
+
+ std::vector<uint8_t> do_basic_transform(level_type level,CharType const *b,CharType const *e) const
+ {
+ icu::UnicodeString str=cvt_.icu(b,e);
+ std::vector<uint8_t> tmp;
+ tmp.resize(str.length());
+ icu::Collator *collate = get_collator(level);
+ int len = collate->getSortKey(str,&tmp[0],tmp.size());
+ if(len > int(tmp.size())) {
+ tmp.resize(len);
+ collate->getSortKey(str,&tmp[0],tmp.size());
+ }
+ else
+ tmp.resize(len);
+ return tmp;
+ }
+ std::basic_string<CharType> do_transform(level_type level,CharType const *b,CharType const *e) const
+ {
+ std::vector<uint8_t> tmp = do_basic_transform(level,b,e);
+ return std::basic_string<CharType>(tmp.begin(),tmp.end());
+ }
+
+ long do_hash(level_type level,CharType const *b,CharType const *e) const
+ {
+ std::vector<uint8_t> tmp = do_basic_transform(level,b,e);
+ tmp.push_back(0);
+ return gnu_gettext::pj_winberger_hash_function(reinterpret_cast<char *>(&tmp.front()));
+ }
+
+ collate_impl(cdata const &d) :
+ cvt_(d.encoding),
+ locale_(d.locale),
+ is_utf8_(d.utf8)
+ {
+
+ }
+ icu::Collator *get_collator(level_type ilevel) const
+ {
+ int l = limit(ilevel);
+ static const icu::Collator::ECollationStrength levels[level_count] =
+ {
+ icu::Collator::PRIMARY,
+ icu::Collator::SECONDARY,
+ icu::Collator::TERTIARY,
+ icu::Collator::QUATERNARY,
+ icu::Collator::IDENTICAL
+ };
+
+ icu::Collator *col = collates_[l].get();
+ if(col)
+ return col;
+
+ UErrorCode status=U_ZERO_ERROR;
+
+ collates_[l].reset(icu::Collator::createInstance(locale_,status));
+
+ if(U_FAILURE(status))
+ throw std::runtime_error(std::string("Creation of collate failed:") + u_errorName(status));
+
+ collates_[l]->setStrength(levels[l]);
+ return collates_[l].get();
+ }
+
+ private:
+ static const int level_count = 5;
+ icu_std_converter<CharType> cvt_;
+ icu::Locale locale_;
+ mutable boost::thread_specific_ptr<icu::Collator> collates_[level_count];
+ bool is_utf8_;
+ };
+
+
+ #if U_ICU_VERSION_MAJOR_NUM*100 + U_ICU_VERSION_MINOR_NUM >= 402
+ template<>
+ int collate_impl<char>::do_real_compare(
+ level_type level,
+ char const *b1,char const *e1,
+ char const *b2,char const *e2,
+ UErrorCode &status) const
+ {
+ if(is_utf8_)
+ return do_utf8_compare(level,b1,e1,b2,e2,status);
+ else
+ return do_ustring_compare(level,b1,e1,b2,e2,status);
+ }
+ #endif
+
+ std::locale create_collate(std::locale const &in,cdata const &cd,character_facet_type type)
+ {
+ switch(type) {
+ case char_facet:
+ return std::locale(in,new collate_impl<char>(cd));
+ case wchar_t_facet:
+ return std::locale(in,new collate_impl<wchar_t>(cd));
+ #ifdef BOOST_HAS_CHAR16_T
+ case char16_t_facet:
+ return std::locale(in,new collate_impl<char16_t>(cd));
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ case char32_t_facet:
+ return std::locale(in,new collate_impl<char32_t>(cd));
+ #endif
+ default:
+ return in;
+ }
+ }
+
+ } /// impl_icu
+
+ } // locale
+} // boost
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/icu/conversion.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/conversion.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,212 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/conversion.hpp>
+#include "all_generator.hpp"
+#include <unicode/normlzr.h>
+#include <unicode/ustring.h>
+#include <unicode/locid.h>
+#include <unicode/uversion.h>
+#if U_ICU_VERSION_MAJOR_NUM*100 + U_ICU_VERSION_MINOR_NUM >= 308
+#include <unicode/ucasemap.h>
+#define WITH_CASE_MAPS
+#endif
+
+
+#include "cdata.hpp"
+#include "uconv.hpp"
+
+#include <vector>
+
+namespace boost {
+namespace locale {
+namespace impl_icu {
+
+
+ namespace {
+ void normalize_string(icu::UnicodeString &str,int flags)
+ {
+ UErrorCode code=U_ZERO_ERROR;
+ UNormalizationMode mode=UNORM_DEFAULT;
+ switch(flags) {
+ case norm_nfd:
+ mode=UNORM_NFD;
+ break;
+ case norm_nfc:
+ mode=UNORM_NFC;
+ break;
+ case norm_nfkd:
+ mode=UNORM_NFKD;
+ break;
+ case norm_nfkc:
+ mode=UNORM_NFKC;
+ break;
+ }
+ icu::UnicodeString tmp;
+ icu::Normalizer::normalize(str,mode,0,tmp,code);
+
+ check_and_throw_icu_error(code);
+
+ str=tmp;
+ }
+ }
+
+
+ template<typename CharType>
+ class converter_impl : public converter<CharType> {
+ public:
+ typedef CharType char_type;
+ typedef std::basic_string<char_type> string_type;
+
+ converter_impl(cdata const &d) :
+ locale_(d.locale),
+ encoding_(d.encoding)
+ {
+ }
+
+ virtual string_type convert(converter_base::conversion_type how,char_type const *begin,char_type const *end,int flags = 0) const
+ {
+ icu_std_converter<char_type> cvt(encoding_);
+ icu::UnicodeString str=cvt.icu(begin,end);
+ switch(how) {
+ case converter_base::normalization:
+ normalize_string(str,flags);
+ break;
+ case converter_base::upper_case:
+ str.toUpper(locale_);
+ break;
+ case converter_base::lower_case:
+ str.toLower(locale_);
+ break;
+ case converter_base::title_case:
+ str.toTitle(0,locale_);
+ break;
+ case converter_base::case_folding:
+ str.foldCase();
+ break;
+ default:
+ ;
+ }
+ return cvt.std(str);
+ }
+
+ private:
+ icu::Locale locale_;
+ std::string encoding_;
+ }; // converter_impl
+
+ #ifdef WITH_CASE_MAPS
+ class raii_casemap {
+ raii_casemap(raii_casemap const &);
+ void operator = (raii_casemap const&);
+ public:
+ raii_casemap(std::string const &locale_id) :
+ map_(0)
+ {
+ UErrorCode err=U_ZERO_ERROR;
+ map_ = ucasemap_open(locale_id.c_str(),0,&err);
+ check_and_throw_icu_error(err);
+ if(!map_)
+ throw std::runtime_error("Failed to create UCaseMap");
+ }
+ template<typename Conv>
+ std::string convert(Conv func,char const *begin,char const *end) const
+ {
+ std::vector<char> buf((end-begin)*11/10+1);
+ UErrorCode err=U_ZERO_ERROR;
+ int size = func(map_,&buf.front(),buf.size(),begin,end-begin,&err);
+ if(err == U_BUFFER_OVERFLOW_ERROR) {
+ err = U_ZERO_ERROR;
+ buf.resize(size+1);
+ size = func(map_,&buf.front(),buf.size(),begin,end-begin,&err);
+ }
+ check_and_throw_icu_error(err);
+ return std::string(&buf.front(),size);
+ }
+ ~raii_casemap()
+ {
+ ucasemap_close(map_);
+ }
+ private:
+ UCaseMap *map_;
+ };
+
+ class utf8_converter_impl : public converter<char> {
+ public:
+
+ utf8_converter_impl(cdata const &d) :
+ locale_id_(d.locale.getName()),
+ map_(locale_id_)
+ {
+ }
+
+ virtual std::string convert(converter_base::conversion_type how,char const *begin,char const *end,int flags = 0) const
+ {
+
+ if(how == converter_base::normalization) {
+ icu_std_converter<char> cvt("UTF-8");
+ icu::UnicodeString str=cvt.icu(begin,end);
+ normalize_string(str,flags);
+ return cvt.std(str);
+ }
+
+ switch(how)
+ {
+ case converter_base::upper_case:
+ return map_.convert(ucasemap_utf8ToUpper,begin,end);
+ case converter_base::lower_case:
+ return map_.convert(ucasemap_utf8ToLower,begin,end);
+ case converter_base::title_case:
+ {
+ // Non-const method, so need to create a separate map
+ raii_casemap map(locale_id_);
+ return map.convert(ucasemap_utf8ToTitle,begin,end);
+ }
+ case converter_base::case_folding:
+ return map_.convert(ucasemap_utf8FoldCase,begin,end);
+ default:
+ return std::string(begin,end-begin);
+ }
+ }
+ private:
+ std::string locale_id_;
+ raii_casemap map_;
+ }; // converter_impl
+
+#endif // WITH_CASE_MAPS
+
+ std::locale create_convert(std::locale const &in,cdata const &cd,character_facet_type type)
+ {
+ switch(type) {
+ case char_facet:
+ #ifdef WITH_CASE_MAPS
+ if(cd.utf8)
+ return std::locale(in,new utf8_converter_impl(cd));
+ #endif
+ return std::locale(in,new converter_impl<char>(cd));
+ case wchar_t_facet:
+ return std::locale(in,new converter_impl<wchar_t>(cd));
+ #ifdef BOOST_HAS_CHAR16_T
+ case char16_t_facet:
+ return std::locale(in,new converter_impl<char16_t>(cd));
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ case char32_t_facet:
+ return std::locale(in,new converter_impl<char32_t>(cd));
+ #endif
+ default:
+ return in;
+ }
+ }
+
+
+} // impl_icu
+} // locale
+} // boost
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/icu/date_time.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/date_time.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,291 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/date_time_facet.hpp>
+#include <boost/locale/date_time.hpp>
+#include <boost/locale/formatting.hpp>
+#include "all_generator.hpp"
+
+#include <boost/thread.hpp>
+#include <unicode/calendar.h>
+#include <unicode/gregocal.h>
+#include <unicode/utypes.h>
+
+#include <memory>
+#include <math.h>
+
+#include "cdata.hpp"
+#include "uconv.hpp"
+#include "time_zone.hpp"
+
+#include <iostream>
+
+
+namespace boost {
+namespace locale {
+namespace impl_icu {
+
+ static void check_and_throw_dt(UErrorCode &e)
+ {
+ if(U_FAILURE(e)) {
+ date_time_error(u_errorName(e));
+ }
+ }
+ using period::marks::period_mark;
+
+ static UCalendarDateFields to_icu(period::marks::period_mark f)
+ {
+ using namespace period::marks;
+
+ switch(f) {
+ case era: return UCAL_ERA;
+ case year: return UCAL_YEAR;
+ case extended_year: return UCAL_EXTENDED_YEAR;
+ case month: return UCAL_MONTH;
+ case day: return UCAL_DATE;
+ case day_of_year: return UCAL_DAY_OF_YEAR;
+ case day_of_week: return UCAL_DAY_OF_WEEK;
+ case day_of_week_in_month: return UCAL_DAY_OF_WEEK_IN_MONTH;
+ case day_of_week_local: return UCAL_DOW_LOCAL;
+ case hour: return UCAL_HOUR_OF_DAY;
+ case hour_12: return UCAL_HOUR;
+ case am_pm: return UCAL_AM_PM;
+ case minute: return UCAL_MINUTE;
+ case second: return UCAL_SECOND;
+ case week_of_year: return UCAL_WEEK_OF_YEAR;
+ case week_of_month: return UCAL_WEEK_OF_MONTH;
+ default:
+ throw std::invalid_argument("Invalid date_time period type");
+ }
+ }
+
+
+ class calendar_impl : public abstract_calendar {
+ public:
+
+ calendar_impl(cdata const &dat)
+ {
+ UErrorCode err=U_ZERO_ERROR;
+ calendar_.reset(icu::Calendar::createInstance(dat.locale,err));
+ check_and_throw_dt(err);
+ #if U_ICU_VERSION_MAJOR_NUM*100 + U_ICU_VERSION_MINOR_NUM < 402
+ // workaround old/invalid data, it should be 4 in general
+ calendar_->setMinimalDaysInFirstWeek(4);
+ #endif
+ encoding_ = dat.encoding;
+ }
+ calendar_impl(calendar_impl const &other)
+ {
+ calendar_.reset(other.calendar_->clone());
+ encoding_ = other.encoding_;
+ }
+
+ calendar_impl *clone() const
+ {
+ return new calendar_impl(*this);
+ }
+
+ void set_value(period::marks::period_mark p,int value)
+ {
+ calendar_->set(to_icu(p),int32_t(value));
+ }
+
+ int get_value(period::marks::period_mark p,value_type type) const
+ {
+ UErrorCode err=U_ZERO_ERROR;
+ int v=0;
+ if(p==period::marks::first_day_of_week) {
+ guard l(lock_);
+ v=calendar_->getFirstDayOfWeek(err);
+ }
+ else {
+ UCalendarDateFields uper=to_icu(p);
+ guard l(lock_);
+ switch(type) {
+ case absolute_minimum:
+ v=calendar_->getMinimum(uper);
+ break;
+ case actual_minimum:
+ v=calendar_->getActualMinimum(uper,err);
+ break;
+ case greatest_minimum:
+ v=calendar_->getGreatestMinimum(uper);
+ break;
+ case current:
+ v=calendar_->get(uper,err);
+ break;
+ case least_maximum:
+ v=calendar_->getLeastMaximum(uper);
+ break;
+ case actual_maximum:
+ v=calendar_->getActualMaximum(uper,err);
+ break;
+ case absolute_maximum:
+ v=calendar_->getMaximum(uper);
+ break;
+ }
+ }
+ check_and_throw_dt(err);
+ return v;
+ }
+
+ virtual void set_time(posix_time const &p)
+ {
+ double utime = p.seconds * 1000.0 + p.nanoseconds / 1000000.0;
+ UErrorCode code=U_ZERO_ERROR;
+ calendar_->setTime(utime,code);
+ check_and_throw_dt(code);
+ }
+ virtual void normalize()
+ {
+ // Can't call complete() explicitly (protected)
+ // calling get wich calls complete
+ UErrorCode code=U_ZERO_ERROR;
+ calendar_->get(UCAL_YEAR,code);
+ check_and_throw_dt(code);
+ }
+ virtual posix_time get_time() const
+ {
+
+ UErrorCode code=U_ZERO_ERROR;
+ double rtime = 0;
+ {
+ guard l(lock_);
+ rtime = calendar_->getTime(code);
+ }
+ check_and_throw_dt(code);
+ rtime/=1000.0;
+ double secs = floor(rtime);
+ posix_time res;
+ res.seconds = static_cast<int64_t>(secs);
+ res.nanoseconds = static_cast<uint32_t>((rtime - secs) / 1e9);
+ if(res.nanoseconds > 999999999)
+ res.nanoseconds = 999999999;
+ return res;
+ }
+ virtual void set_option(calendar_option_type opt,int /*v*/)
+ {
+ switch(opt) {
+ case is_gregorian:
+ throw date_time_error("is_gregorian is not settable options for calendar");
+ case is_dst:
+ throw date_time_error("is_dst is not settable options for calendar");
+ default:
+ ;
+ }
+ }
+ virtual int get_option(calendar_option_type opt) const
+ {
+ switch(opt) {
+ case is_gregorian:
+ return dynamic_cast<icu::GregorianCalendar const *>(calendar_.get())!=0;
+ case is_dst:
+ {
+ guard l(lock_);
+ UErrorCode err = U_ZERO_ERROR;
+ bool res = ( calendar_->inDaylightTime(err) != 0 );
+ check_and_throw_dt(err);
+ return res;
+ }
+ default:
+ return 0;
+ }
+ }
+ virtual void adjust_value(period::marks::period_mark p,update_type u,int difference)
+ {
+ UErrorCode err=U_ZERO_ERROR;
+ switch(u) {
+ case move:
+ calendar_->add(to_icu(p),difference,err);
+ break;
+ case roll:
+ calendar_->roll(to_icu(p),difference,err);
+ break;
+ }
+ check_and_throw_dt(err);
+ }
+ virtual int difference(abstract_calendar const *other_ptr,period::marks::period_mark p) const
+ {
+ UErrorCode err=U_ZERO_ERROR;
+ double other_time = 0;
+ //
+ // fieldDifference has side effect of moving calendar (WTF?)
+ // So we clone it for performing this operation
+ //
+ std::auto_ptr<icu::Calendar> self(calendar_->clone());
+
+ calendar_impl const *other_cal=dynamic_cast<calendar_impl const *>(other_ptr);
+ if(other_cal){
+ guard l(other_cal->lock_);
+ other_time = other_cal->calendar_->getTime(err);
+ check_and_throw_dt(err);
+ }
+ else {
+ posix_time p = other_ptr->get_time();
+ other_time = p.seconds * 1000.0 + p.nanoseconds / 1000000.0;
+ }
+
+ int diff = self->fieldDifference(other_time,to_icu(p),err);
+
+ check_and_throw_dt(err);
+ return diff;
+ }
+ virtual void set_timezone(std::string const &tz)
+ {
+ calendar_->adoptTimeZone(get_time_zone(tz));
+ }
+ virtual std::string get_timezone() const
+ {
+ icu::UnicodeString tz;
+ calendar_->getTimeZone().getID(tz);
+ icu_std_converter<char> cvt(encoding_);
+ return cvt.std(tz);
+ }
+ virtual bool same(abstract_calendar const *other) const
+ {
+ calendar_impl const *oc=dynamic_cast<calendar_impl const *>(other);
+ if(!oc)
+ return false;
+ return calendar_->isEquivalentTo(*oc->calendar_)!=0;
+ }
+
+ private:
+ typedef boost::unique_lock<boost::mutex> guard;
+ mutable boost::mutex lock_;
+ std::string encoding_;
+ hold_ptr<icu::Calendar> calendar_;
+ };
+
+ class icu_calendar_facet : public calendar_facet {
+ public:
+ icu_calendar_facet(cdata const &d,size_t refs = 0) :
+ calendar_facet(refs),
+ data_(d)
+ {
+ }
+ virtual abstract_calendar *create_calendar() const
+ {
+ return new calendar_impl(data_);
+ }
+ private:
+ cdata data_;
+ };
+
+ std::locale create_calendar(std::locale const &in,cdata const &d)
+ {
+ return std::locale(in,new icu_calendar_facet(d));
+ }
+
+} // impl_icu
+} // locale
+} // boost
+
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/src/icu/formatter.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/formatter.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,618 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/formatting.hpp>
+#include "formatter.hpp"
+#include <boost/locale/info.hpp>
+#include "uconv.hpp"
+
+
+#include <unicode/numfmt.h>
+#include <unicode/rbnf.h>
+#include <unicode/datefmt.h>
+#include <unicode/smpdtfmt.h>
+#include <unicode/decimfmt.h>
+
+#include <limits>
+
+#include <iostream>
+
+#include "predefined_formatters.hpp"
+#include "time_zone.hpp"
+
+#ifdef BOOST_MSVC
+# pragma warning(disable : 4244) // lose data
+#endif
+
+
+namespace boost {
+namespace locale {
+ namespace impl_icu {
+
+
+ std::locale::id icu_formatters_cache::id;
+
+ namespace {
+ struct init { init() { std::has_facet<icu_formatters_cache>(std::locale::classic()); } } instance;
+ }
+
+
+ template<typename CharType>
+ class number_format : public formatter<CharType> {
+ public:
+ typedef CharType char_type;
+ typedef std::basic_string<CharType> string_type;
+
+ virtual string_type format(double value,size_t &code_points) const
+ {
+ icu::UnicodeString tmp;
+ icu_fmt_->format(value,tmp);
+ code_points=tmp.countChar32();
+ return cvt_.std(tmp);
+ }
+ virtual string_type format(int64_t value,size_t &code_points) const
+ {
+ icu::UnicodeString tmp;
+ icu_fmt_->format(value,tmp);
+ code_points=tmp.countChar32();
+ return cvt_.std(tmp);
+ }
+
+ virtual string_type format(int32_t value,size_t &code_points) const
+ {
+ icu::UnicodeString tmp;
+ #ifdef __SUNPRO_CC
+ icu_fmt_->format(static_cast<int>(value),tmp);
+ #else
+ icu_fmt_->format(::int32_t(value),tmp);
+ #endif
+ code_points=tmp.countChar32();
+ return cvt_.std(tmp);
+ }
+
+ virtual size_t parse(string_type const &str,double &value) const
+ {
+ return do_parse(str,value);
+ }
+
+ virtual size_t parse(string_type const &str,int64_t &value) const
+ {
+ return do_parse(str,value);
+ }
+ virtual size_t parse(string_type const &str,int32_t &value) const
+ {
+ return do_parse(str,value);
+ }
+
+ number_format(icu::NumberFormat *fmt,std::string codepage) :
+ cvt_(codepage),
+ icu_fmt_(fmt)
+ {
+ }
+
+ private:
+
+ bool get_value(double &v,icu::Formattable &fmt) const
+ {
+ UErrorCode err=U_ZERO_ERROR;
+ v=fmt.getDouble(err);
+ if(U_FAILURE(err))
+ return false;
+ return true;
+ }
+
+ bool get_value(int64_t &v,icu::Formattable &fmt) const
+ {
+ UErrorCode err=U_ZERO_ERROR;
+ v=fmt.getInt64(err);
+ if(U_FAILURE(err))
+ return false;
+ return true;
+ }
+
+ bool get_value(int32_t &v,icu::Formattable &fmt) const
+ {
+ UErrorCode err=U_ZERO_ERROR;
+ v=fmt.getLong(err);
+ if(U_FAILURE(err))
+ return false;
+ return true;
+ }
+
+ template<typename ValueType>
+ size_t do_parse(string_type const &str,ValueType &v) const
+ {
+ icu::Formattable val;
+ icu::ParsePosition pp;
+ icu::UnicodeString tmp = cvt_.icu(str.data(),str.data()+str.size());
+
+ icu_fmt_->parse(tmp,val,pp);
+
+ ValueType tmp_v;
+
+ if(pp.getIndex() == 0 || !get_value(tmp_v,val))
+ return 0;
+ size_t cut = cvt_.cut(tmp,str.data(),str.data()+str.size(),pp.getIndex());
+ if(cut==0)
+ return 0;
+ v=tmp_v;
+ return cut;
+ }
+
+ icu_std_converter<CharType> cvt_;
+ icu::NumberFormat *icu_fmt_;
+ };
+
+
+ template<typename CharType>
+ class date_format : public formatter<CharType> {
+ public:
+ typedef CharType char_type;
+ typedef std::basic_string<CharType> string_type;
+
+ virtual string_type format(double value,size_t &code_points) const
+ {
+ return do_format(value,code_points);
+ }
+ virtual string_type format(int64_t value,size_t &code_points) const
+ {
+ return do_format(value,code_points);
+ }
+
+ virtual string_type format(int32_t value,size_t &code_points) const
+ {
+ return do_format(value,code_points);
+ }
+
+ virtual size_t parse(string_type const &str,double &value) const
+ {
+ return do_parse(str,value);
+ }
+ virtual size_t parse(string_type const &str,int64_t &value) const
+ {
+ return do_parse(str,value);
+ }
+ virtual size_t parse(string_type const &str,int32_t &value) const
+ {
+ return do_parse(str,value);
+ }
+
+ date_format(std::auto_ptr<icu::DateFormat> fmt,std::string codepage) :
+ cvt_(codepage),
+ aicu_fmt_(fmt)
+ {
+ icu_fmt_ = aicu_fmt_.get();
+ }
+ date_format(icu::DateFormat *fmt,std::string codepage) :
+ cvt_(codepage),
+ icu_fmt_(fmt)
+ {
+ }
+
+ private:
+
+ template<typename ValueType>
+ size_t do_parse(string_type const &str,ValueType &value) const
+ {
+ icu::ParsePosition pp;
+ icu::UnicodeString tmp = cvt_.icu(str.data(),str.data() + str.size());
+
+ UDate udate = icu_fmt_->parse(tmp,pp);
+ if(pp.getIndex() == 0)
+ return 0;
+ double date = udate / 1000.0;
+ typedef std::numeric_limits<ValueType> limits_type;
+ if(date > limits_type::max() || date < limits_type::min())
+ return 0;
+ size_t cut = cvt_.cut(tmp,str.data(),str.data()+str.size(),pp.getIndex());
+ if(cut==0)
+ return 0;
+ value=static_cast<ValueType>(date);
+ return cut;
+
+ }
+
+ string_type do_format(double value,size_t &codepoints) const
+ {
+ UDate date = value * 1000.0; /// UDate is time_t in miliseconds
+ icu::UnicodeString tmp;
+ icu_fmt_->format(date,tmp);
+ codepoints=tmp.countChar32();
+ return cvt_.std(tmp);
+ }
+
+ icu_std_converter<CharType> cvt_;
+ std::auto_ptr<icu::DateFormat> aicu_fmt_;
+ icu::DateFormat *icu_fmt_;
+ };
+
+ icu::UnicodeString strftime_to_icu_full(icu::DateFormat *dfin,char const *alt)
+ {
+ std::auto_ptr<icu::DateFormat> df(dfin);
+ icu::SimpleDateFormat *sdf=dynamic_cast<icu::SimpleDateFormat *>(df.get());
+ icu::UnicodeString tmp;
+ if(sdf) {
+ sdf->toPattern(tmp);
+ }
+ else {
+ tmp=alt;
+ }
+ return tmp;
+
+ }
+
+ icu::UnicodeString strftime_to_icu_symbol(char c,icu::Locale const &locale,icu_formatters_cache const *cache=0)
+ {
+ switch(c) {
+ case 'a': // Abbr Weekday
+ return "EE";
+ case 'A': // Full Weekday
+ return "EEEE";
+ case 'b': // Abbr Month
+ return "MMM";
+ case 'B': // Full Month
+ return "MMMM";
+ case 'c': // DateTile Full
+ {
+ if(cache)
+ return cache->date_time_format_[1][1];
+ return strftime_to_icu_full(
+ icu::DateFormat::createDateTimeInstance(icu::DateFormat::kFull,icu::DateFormat::kFull,locale),
+ "YYYY-MM-dd HH:mm:ss"
+ );
+ }
+ // not supported by ICU ;(
+ // case 'C': // Century -> 1980 -> 19
+ // retur
+ case 'd': // Day of Month [01,31]
+ return "dd";
+ case 'D': // %m/%d/%y
+ return "MM/dd/YY";
+ case 'e': // Day of Month [1,31]
+ return "d";
+ case 'h': // == b
+ return "MMM";
+ case 'H': // 24 clock hour 00,23
+ return "HH";
+ case 'I': // 12 clock hour 01,12
+ return "hh";
+ case 'j': // day of year 001,366
+ return "D";
+ case 'm': // month as [01,12]
+ return "MM";
+ case 'M': // minute [00,59]
+ return "mm";
+ case 'n': // \n
+ return "\n";
+ case 'p': // am-pm
+ return "a";
+ case 'r': // time with AM/PM %I:%M:%S %p
+ return "hh:mm:ss a";
+ case 'R': // %H:%M
+ return "HH:mm";
+ case 'S': // second [00,61]
+ return "ss";
+ case 't': // \t
+ return "\t";
+ case 'T': // %H:%M:%S
+ return "HH:mm:ss";
+/* case 'u': // weekday 1,7 1=Monday
+ case 'U': // week number of year [00,53] Sunday first
+ case 'V': // week number of year [01,53] Moday first
+ case 'w': // weekday 0,7 0=Sunday
+ case 'W': // week number of year [00,53] Moday first, */
+ case 'x': // Date
+ {
+ if(cache)
+ return cache->date_format_[1];
+ return strftime_to_icu_full(
+ icu::DateFormat::createDateInstance(icu::DateFormat::kMedium,locale),
+ "YYYY-MM-dd"
+ );
+ }
+ case 'X': // Time
+ {
+ if(cache)
+ return cache->time_format_[1];
+ return strftime_to_icu_full(
+ icu::DateFormat::createTimeInstance(icu::DateFormat::kMedium,locale),
+ "HH:mm:ss"
+ );
+ }
+ case 'y': // Year [00-99]
+ return "YY";
+ case 'Y': // Year 1998
+ return "YYYY";
+ case 'Z': // timezone
+ return "vvvv";
+ case '%': // %
+ return "%";
+ default:
+ return "";
+ }
+ }
+
+ icu::UnicodeString strftime_to_icu(icu::UnicodeString const &ftime,icu::Locale const &locale)
+ {
+ unsigned len=ftime.length();
+ icu::UnicodeString result;
+ bool escaped=false;
+ for(unsigned i=0;i<len;i++) {
+ UChar c=ftime[i];
+ if(c=='%') {
+ i++;
+ c=ftime[i];
+ if(c=='E' || c=='O') {
+ i++;
+ c=ftime[i];
+ }
+ if(escaped) {
+ result+="'";
+ escaped=false;
+ }
+ result+=strftime_to_icu_symbol(c,locale);
+ }
+ else if(c=='\'') {
+ result+="''";
+ }
+ else {
+ if(!escaped) {
+ result+="'";
+ escaped=true;
+ }
+ result+=c;
+ }
+ }
+ if(escaped)
+ result+="'";
+ return result;
+ }
+
+ template<typename CharType>
+ std::auto_ptr<formatter<CharType> > generate_formatter(
+ std::ios_base &ios,
+ icu::Locale const &locale,
+ std::string const &encoding)
+ {
+ using namespace boost::locale::flags;
+
+ std::auto_ptr<formatter<CharType> > fmt;
+ ios_info &info=ios_info::get(ios);
+ uint64_t disp = info.display_flags();
+
+ icu_formatters_cache const &cache = std::use_facet<icu_formatters_cache>(ios.getloc());
+
+
+ if(disp == posix)
+ return fmt;
+
+ UErrorCode err=U_ZERO_ERROR;
+
+ switch(disp) {
+ case number:
+ {
+ std::ios_base::fmtflags how = (ios.flags() & std::ios_base::floatfield);
+ icu::NumberFormat *nf = 0;
+
+ if(how == std::ios_base::scientific)
+ nf = cache.number_format(icu_formatters_cache::fmt_sci);
+ else
+ nf = cache.number_format(icu_formatters_cache::fmt_number);
+
+ nf->setMaximumFractionDigits(ios.precision());
+ if(how == std::ios_base::scientific || how == std::ios_base::fixed ) {
+ nf->setMinimumFractionDigits(ios.precision());
+ }
+ else {
+ nf->setMinimumFractionDigits(0);
+ }
+ fmt.reset(new number_format<CharType>(nf,encoding));
+ }
+ break;
+ case currency:
+ {
+ icu::NumberFormat *nf;
+
+ uint64_t curr = info.currency_flags();
+
+ if(curr == currency_default || curr == currency_national)
+ nf = cache.number_format(icu_formatters_cache::fmt_curr_nat);
+ else
+ nf = cache.number_format(icu_formatters_cache::fmt_curr_iso);
+
+ fmt.reset(new number_format<CharType>(nf,encoding));
+ }
+ break;
+ case percent:
+ {
+ icu::NumberFormat *nf = cache.number_format(icu_formatters_cache::fmt_per);
+ nf->setMaximumFractionDigits(ios.precision());
+ std::ios_base::fmtflags how = (ios.flags() & std::ios_base::floatfield);
+ if(how == std::ios_base::scientific || how == std::ios_base::fixed ) {
+ nf->setMinimumFractionDigits(ios.precision());
+ }
+ else {
+ nf->setMinimumFractionDigits(0);
+ }
+ fmt.reset(new number_format<CharType>(nf,encoding));
+
+ }
+ break;
+ case spellout:
+ fmt.reset(new number_format<CharType>(cache.number_format(icu_formatters_cache::fmt_spell),encoding));
+ break;
+ case ordinal:
+ fmt.reset(new number_format<CharType>(cache.number_format(icu_formatters_cache::fmt_ord),encoding));
+ break;
+ case date:
+ case time:
+ case datetime:
+ case strftime:
+ {
+ using namespace flags;
+ std::auto_ptr<icu::DateFormat> adf;
+ icu::DateFormat *df = 0;
+ icu::SimpleDateFormat *sdf = cache.date_formatter();
+ // try to use cached first
+ if(sdf) {
+ int tmf=info.time_flags();
+ switch(tmf) {
+ case time_short:
+ tmf=0;
+ break;
+ case time_long:
+ tmf=2;
+ break;
+ case time_full:
+ tmf=3;
+ break;
+ case time_default:
+ case time_medium:
+ default:
+ tmf=1;
+ }
+ int dtf=info.date_flags();
+ switch(dtf) {
+ case date_short:
+ dtf=0;
+ break;
+ case date_long:
+ dtf=2;
+ break;
+ case date_full:
+ dtf=3;
+ break;
+ case date_default:
+ case date_medium:
+ default:
+ dtf=1;
+ }
+
+ icu::UnicodeString pattern;
+ switch(disp) {
+ case date:
+ pattern = cache.date_format_[dtf];
+ break;
+ case time:
+ pattern = cache.time_format_[tmf];
+ break;
+ case datetime:
+ pattern = cache.date_time_format_[dtf][tmf];
+ break;
+ case strftime:
+ {
+ if( !cache.date_format_[1].isEmpty()
+ && !cache.time_format_[1].isEmpty()
+ && !cache.date_time_format_[1][1].isEmpty())
+ {
+ icu_std_converter<CharType> cvt_(encoding);
+ std::basic_string<CharType> const &f=info.date_time_pattern<CharType>();
+ pattern = strftime_to_icu(cvt_.icu(f.c_str(),f.c_str()+f.size()),locale);
+ }
+ }
+ break;
+ }
+ if(!pattern.isEmpty()) {
+ sdf->applyPattern(pattern);
+ df = sdf;
+ sdf = 0;
+ }
+ sdf = 0;
+ }
+
+ if(!df) {
+ icu::DateFormat::EStyle dstyle = icu::DateFormat::kDefault;
+ icu::DateFormat::EStyle tstyle = icu::DateFormat::kDefault;
+
+ switch(info.time_flags()) {
+ case time_short: tstyle=icu::DateFormat::kShort; break;
+ case time_medium: tstyle=icu::DateFormat::kMedium; break;
+ case time_long: tstyle=icu::DateFormat::kLong; break;
+ case time_full: tstyle=icu::DateFormat::kFull; break;
+ }
+ switch(info.date_flags()) {
+ case date_short: dstyle=icu::DateFormat::kShort; break;
+ case date_medium: dstyle=icu::DateFormat::kMedium; break;
+ case date_long: dstyle=icu::DateFormat::kLong; break;
+ case date_full: dstyle=icu::DateFormat::kFull; break;
+ }
+
+ if(disp==date)
+ adf.reset(icu::DateFormat::createDateInstance(dstyle,locale));
+ else if(disp==time)
+ adf.reset(icu::DateFormat::createTimeInstance(tstyle,locale));
+ else if(disp==datetime)
+ adf.reset(icu::DateFormat::createDateTimeInstance(dstyle,tstyle,locale));
+ else {// strftime
+ icu_std_converter<CharType> cvt_(encoding);
+ std::basic_string<CharType> const &f=info.date_time_pattern<CharType>();
+ icu::UnicodeString fmt = strftime_to_icu(cvt_.icu(f.data(),f.data()+f.size()),locale);
+ adf.reset(new icu::SimpleDateFormat(fmt,locale,err));
+ }
+ if(U_FAILURE(err))
+ return fmt;
+ df = adf.get();
+ }
+
+ df->adoptTimeZone(get_time_zone(info.time_zone()));
+
+ // Depending if we own formatter or not
+ if(adf.get())
+ fmt.reset(new date_format<CharType>(adf,encoding));
+ else
+ fmt.reset(new date_format<CharType>(df,encoding));
+ }
+ break;
+ }
+
+ return fmt;
+ }
+
+
+
+ template<>
+ std::auto_ptr<formatter<char> > formatter<char>::create(std::ios_base &ios,icu::Locale const &l,std::string const &e)
+ {
+ return generate_formatter<char>(ios,l,e);
+ }
+
+ template<>
+ std::auto_ptr<formatter<wchar_t> > formatter<wchar_t>::create(std::ios_base &ios,icu::Locale const &l,std::string const &e)
+ {
+ return generate_formatter<wchar_t>(ios,l,e);
+ }
+
+
+ #ifdef BOOST_HAS_CHAR16_T
+ template<>
+ std::auto_ptr<formatter<char16_t> > formatter<char16_t>::create(std::ios_base &ios,icu::Locale const &l,std::string const &e)
+ {
+ return generate_formatter<char16_t>(ios,l,e);
+ }
+
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+ template<>
+ std::auto_ptr<formatter<char32_t> > formatter<char32_t>::create(std::ios_base &ios,icu::Locale const &l,std::string const &e)
+ {
+ return generate_formatter<char32_t>(ios,l,e);
+ }
+
+ #endif
+
+} // impl_icu
+
+} // locale
+} // boost
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+
+
+

Added: trunk/libs/locale/src/icu/formatter.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/formatter.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,132 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_FORMATTER_HPP_INCLUDED
+#define BOOST_LOCALE_FORMATTER_HPP_INCLUDED
+
+#include <string>
+#include <memory>
+#include <boost/cstdint.hpp>
+#include <boost/locale/config.hpp>
+#include <unicode/locid.h>
+
+namespace boost {
+namespace locale {
+namespace impl_icu {
+
+ ///
+ /// \brief Special base polymorphic class that is used as a character type independent base for all formatter classes
+ ///
+
+ class base_formatter {
+ public:
+ virtual ~base_formatter()
+ {
+ }
+ };
+
+ ///
+ /// \brief A class that is used for formatting numbers, currency and dates/times
+ ///
+ template<typename CharType>
+ class formatter : public base_formatter {
+ public:
+ typedef CharType char_type;
+ typedef std::basic_string<CharType> string_type;
+
+ ///
+ /// Format the value and return the number of Unicode code points
+ ///
+ virtual string_type format(double value,size_t &code_points) const = 0;
+ ///
+ /// Format the value and return the number of Unicode code points
+ ///
+ virtual string_type format(int64_t value,size_t &code_points) const = 0;
+ ///
+ /// Format the value and return the number of Unicode code points
+ ///
+ virtual string_type format(int32_t value,size_t &code_points) const = 0;
+
+ ///
+ /// Parse the string and return the number of used characters. If it returns 0
+ /// then parsing failed.
+ ///
+ virtual size_t parse(string_type const &str,double &value) const = 0;
+ ///
+ /// Parse the string and return the number of used characters. If it returns 0
+ /// then parsing failed.
+ ///
+ virtual size_t parse(string_type const &str,int64_t &value) const = 0;
+ ///
+ /// Parse the string and return the number of used characters. If it returns 0
+ /// then parsing failed.
+ ///
+ virtual size_t parse(string_type const &str,int32_t &value) const = 0;
+
+ ///
+ /// Get formatter for the current state of ios_base -- flags and locale,
+ /// NULL may be returned if an invalid combination of flags is provided or this type
+ /// of formatting is not supported by locale. See: create
+ ///
+ /// Note: formatter is cached. If \a ios is not changed (no flags or locale changed)
+ /// the formatter would remain the same. Otherwise it would be rebuild and cached
+ /// for future use. It is useful for saving time for generation
+ /// of multiple values with same locale.
+ ///
+ /// For example, this code:
+ ///
+ /// \code
+ /// std::cout << as::spellout;
+ /// for(int i=1;i<=10;i++)
+ /// std::cout << i <<std::endl;
+ /// \endcode
+ ///
+ /// Would create a new spelling formatter only once.
+ ///
+ static std::auto_ptr<formatter> create(std::ios_base &ios,icu::Locale const &l,std::string const &enc);
+
+ virtual ~formatter()
+ {
+ }
+ }; // class formatter
+
+ ///
+ /// Specialization for real implementation
+ ///
+ template<>
+ std::auto_ptr<formatter<char> > formatter<char>::create(std::ios_base &ios,icu::Locale const &l,std::string const &enc);
+
+ ///
+ /// Specialization for real implementation
+ ///
+ template<>
+ std::auto_ptr<formatter<wchar_t> > formatter<wchar_t>::create(std::ios_base &ios,icu::Locale const &l,std::string const &e);
+
+ #ifdef BOOST_HAS_CHAR16_T
+ ///
+ /// Specialization for real implementation
+ ///
+ template<>
+ std::auto_ptr<formatter<char16_t> > formatter<char16_t>::create(std::ios_base &ios,icu::Locale const &l,std::string const &e);
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+ ///
+ /// Specialization for real implementation
+ ///
+ template<>
+ std::auto_ptr<formatter<char32_t> > formatter<char32_t>::create(std::ios_base &ios,icu::Locale const &l,std::string const &e);
+ #endif
+
+} // namespace impl_icu
+} // namespace locale
+} // namespace boost
+
+
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/icu/icu_backend.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/icu_backend.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,166 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/localization_backend.hpp>
+#include <boost/locale/gnu_gettext.hpp>
+#include <boost/locale/util.hpp>
+#include "all_generator.hpp"
+#include "cdata.hpp"
+#include "icu_backend.hpp"
+#include "../util/locale_data.hpp"
+#include <algorithm>
+#include <iterator>
+
+#include <unicode/ucnv.h>
+
+namespace boost {
+namespace locale {
+namespace impl_icu {
+ class icu_localization_backend : public localization_backend {
+ public:
+ icu_localization_backend() :
+ invalid_(true),
+ use_ansi_encoding_(false)
+ {
+ }
+ icu_localization_backend(icu_localization_backend const &other) :
+ localization_backend(),
+ paths_(other.paths_),
+ domains_(other.domains_),
+ locale_id_(other.locale_id_),
+ invalid_(true),
+ use_ansi_encoding_(other.use_ansi_encoding_)
+ {
+ }
+ virtual icu_localization_backend *clone() const
+ {
+ return new icu_localization_backend(*this);
+ }
+
+ void set_option(std::string const &name,std::string const &value)
+ {
+ invalid_ = true;
+ if(name=="locale")
+ locale_id_ = value;
+ else if(name=="message_path")
+ paths_.push_back(value);
+ else if(name=="message_application")
+ domains_.push_back(value);
+ else if(name=="use_ansi_encoding")
+ use_ansi_encoding_ = value == "true";
+
+ }
+ void clear_options()
+ {
+ invalid_ = true;
+ use_ansi_encoding_ = false;
+ locale_id_.clear();
+ paths_.clear();
+ domains_.clear();
+ }
+
+ void prepare_data()
+ {
+ if(!invalid_)
+ return;
+ invalid_ = false;
+ real_id_ = locale_id_;
+ if(real_id_.empty()) {
+ bool utf8 = ! use_ansi_encoding_;
+ real_id_ = util::get_system_locale(utf8);
+ }
+
+ util::locale_data d;
+ d.parse(real_id_);
+
+ data_.locale = icu::Locale::createCanonical(real_id_.c_str());
+ data_.encoding = d.encoding;
+ data_.utf8 = d.utf8;
+ language_ = d.language;
+ country_ = d.country;
+ variant_ = d.variant;
+ }
+
+ virtual std::locale install(std::locale const &base,
+ locale_category_type category,
+ character_facet_type type = nochar_facet)
+ {
+ prepare_data();
+
+ switch(category) {
+ case convert_facet:
+ return create_convert(base,data_,type);
+ case collation_facet:
+ return create_collate(base,data_,type);
+ case formatting_facet:
+ return create_formatting(base,data_,type);
+ case parsing_facet:
+ return create_parsing(base,data_,type);
+ case codepage_facet:
+ return create_codecvt(base,data_.encoding,type);
+ case message_facet:
+ {
+ gnu_gettext::messages_info minf;
+ minf.language = language_;
+ minf.country = country_;
+ minf.variant = variant_;
+ minf.encoding = data_.encoding;
+ std::copy(domains_.begin(),domains_.end(),std::back_inserter<gnu_gettext::messages_info::domains_type>(minf.domains));
+ minf.paths = paths_;
+ switch(type) {
+ case char_facet:
+ return std::locale(base,gnu_gettext::create_messages_facet<char>(minf));
+ case wchar_t_facet:
+ return std::locale(base,gnu_gettext::create_messages_facet<wchar_t>(minf));
+ #ifdef BOOST_HAS_CHAR16_T
+ case char16_t_facet:
+ return std::locale(base,gnu_gettext::create_messages_facet<char16_t>(minf));
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ case char32_t_facet:
+ return std::locale(base,gnu_gettext::create_messages_facet<char32_t>(minf));
+ #endif
+ default:
+ return base;
+ }
+ }
+ case boundary_facet:
+ return create_boundary(base,data_,type);
+ case calendar_facet:
+ return create_calendar(base,data_);
+ case information_facet:
+ return util::create_info(base,real_id_);
+ default:
+ return base;
+ }
+ }
+
+ private:
+
+ std::vector<std::string> paths_;
+ std::vector<std::string> domains_;
+ std::string locale_id_;
+
+ cdata data_;
+ std::string language_;
+ std::string country_;
+ std::string variant_;
+ std::string real_id_;
+ bool invalid_;
+ bool use_ansi_encoding_;
+ };
+
+ localization_backend *create_localization_backend()
+ {
+ return new icu_localization_backend();
+ }
+
+} // impl icu
+} // locale
+} // boost
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/icu/icu_backend.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/icu_backend.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,20 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_ICU_LOCALIZATION_BACKEND_HPP
+#define BOOST_LOCALE_IMPL_ICU_LOCALIZATION_BACKEND_HPP
+namespace boost {
+ namespace locale {
+ class localization_backend;
+ namespace impl_icu {
+ localization_backend *create_localization_backend();
+ } // impl_icu
+ } // locale
+} // boost
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/src/icu/icu_util.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/icu_util.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,32 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_SRC_ICU_UTIL_HPP
+#define BOOST_SRC_ICU_UTIL_HPP
+#include <unicode/utypes.h>
+#include <stdexcept>
+
+namespace boost {
+namespace locale {
+namespace impl_icu {
+
+ inline void throw_icu_error(UErrorCode err)
+ {
+ throw std::runtime_error(u_errorName(err));
+ }
+
+ inline void check_and_throw_icu_error(UErrorCode err)
+ {
+ if(U_FAILURE(err))
+ throw_icu_error(err);
+ }
+} // impl
+} // locale
+} // boost
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/icu/numeric.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/numeric.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,420 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <locale>
+#include <string>
+#include <ios>
+#include <limits>
+#include "formatter.hpp"
+#include <boost/locale/formatting.hpp>
+#include "all_generator.hpp"
+#include "cdata.hpp"
+#include <algorithm>
+#include "predefined_formatters.hpp"
+
+namespace boost {
+namespace locale {
+namespace impl_icu {
+
+namespace details {
+ template<typename V,int n=std::numeric_limits<V>::digits,bool integer=std::numeric_limits<V>::is_integer>
+ struct cast_traits;
+
+ template<typename v>
+ struct cast_traits<v,7,true> {
+ typedef int32_t cast_type;
+ };
+ template<typename v>
+ struct cast_traits<v,8,true> {
+ typedef int32_t cast_type;
+ };
+
+ template<typename v>
+ struct cast_traits<v,15,true> {
+ typedef int32_t cast_type;
+ };
+ template<typename v>
+ struct cast_traits<v,16,true> {
+ typedef int32_t cast_type;
+ };
+ template<typename v>
+ struct cast_traits<v,31,true> {
+ typedef int32_t cast_type;
+ };
+ template<typename v>
+ struct cast_traits<v,32,true> {
+ typedef int64_t cast_type;
+ };
+ template<typename v>
+ struct cast_traits<v,63,true> {
+ typedef int64_t cast_type;
+ };
+ template<typename v>
+ struct cast_traits<v,64,true> {
+ typedef int64_t cast_type;
+ };
+ template<typename V,int u>
+ struct cast_traits<V,u,false> {
+ typedef double cast_type;
+ };
+
+ // ICU does not support uint64_t values so fallback
+ // to POSIX formatting
+ template< typename V,
+ bool Sig=std::numeric_limits<V>::is_signed,
+ bool Int=std::numeric_limits<V>::is_integer,
+ bool Big=(sizeof(V) >= 8)
+ >
+ struct use_parent_traits
+ {
+ static bool use(V /*v*/) { return false; }
+ };
+ template<typename V>
+ struct use_parent_traits<V,false,true,true>
+ {
+ static bool use(V v) { return static_cast<int64_t>(v) < 0; }
+ };
+
+}
+
+
+
+class num_base {
+protected:
+
+ template<typename ValueType>
+ static bool use_parent(std::ios_base &ios,ValueType v)
+ {
+ uint64_t flg = ios_info::get(ios).display_flags();
+ if(flg == flags::posix)
+ return true;
+ if(details::use_parent_traits<ValueType>::use(v))
+ return true;
+
+ if(!std::numeric_limits<ValueType>::is_integer)
+ return false;
+
+ if(flg == flags::number && (ios.flags() & std::ios_base::basefield) != std::ios_base::dec) {
+ return true;
+ }
+ return false;
+ }
+};
+
+
+template<typename CharType>
+class num_format : public std::num_put<CharType>, protected num_base
+{
+public:
+ typedef typename std::num_put<CharType>::iter_type iter_type;
+ typedef std::basic_string<CharType> string_type;
+ typedef CharType char_type;
+ typedef formatter<CharType> formatter_type;
+ typedef std::auto_ptr<formatter_type> formatter_ptr;
+
+ num_format(cdata const &d,size_t refs = 0) :
+ std::num_put<CharType>(refs),
+ loc_(d.locale),
+ enc_(d.encoding)
+ {
+ }
+protected:
+
+
+ virtual iter_type do_put (iter_type out, std::ios_base &ios, char_type fill, long val) const
+ {
+ return do_real_put(out,ios,fill,val);
+ }
+ virtual iter_type do_put (iter_type out, std::ios_base &ios, char_type fill, unsigned long val) const
+ {
+ return do_real_put(out,ios,fill,val);
+ }
+ virtual iter_type do_put (iter_type out, std::ios_base &ios, char_type fill, double val) const
+ {
+ return do_real_put(out,ios,fill,val);
+ }
+ virtual iter_type do_put (iter_type out, std::ios_base &ios, char_type fill, long double val) const
+ {
+ return do_real_put(out,ios,fill,val);
+ }
+
+ #ifndef BOOST_NO_LONG_LONG
+ virtual iter_type do_put (iter_type out, std::ios_base &ios, char_type fill, long long val) const
+ {
+ return do_real_put(out,ios,fill,val);
+ }
+ virtual iter_type do_put (iter_type out, std::ios_base &ios, char_type fill, unsigned long long val) const
+ {
+ return do_real_put(out,ios,fill,val);
+ }
+ #endif
+
+
+private:
+
+
+
+ template<typename ValueType>
+ iter_type do_real_put (iter_type out, std::ios_base &ios, char_type fill, ValueType val) const
+ {
+ formatter_ptr formatter;
+
+ if(use_parent<ValueType>(ios,val) || (formatter = formatter_type::create(ios,loc_,enc_)).get() == 0) {
+ return std::num_put<char_type>::do_put(out,ios,fill,val);
+ }
+
+ size_t code_points;
+ typedef typename details::cast_traits<ValueType>::cast_type cast_type;
+ string_type const &str = formatter->format(static_cast<cast_type>(val),code_points);
+ std::streamsize on_left=0,on_right = 0,points = code_points;
+ if(points < ios.width()) {
+ std::streamsize n = ios.width() - points;
+
+ std::ios_base::fmtflags flags = ios.flags() & std::ios_base::adjustfield;
+
+ //
+ // We do not really know internal point, so we assume that it does not
+ // exist. So according to the standard field should be right aligned
+ //
+ if(flags != std::ios_base::left)
+ on_left = n;
+ on_right = n - on_left;
+ }
+ while(on_left > 0) {
+ *out++ = fill;
+ on_left--;
+ }
+ std::copy(str.begin(),str.end(),out);
+ while(on_right > 0) {
+ *out++ = fill;
+ on_right--;
+ }
+ ios.width(0);
+ return out;
+
+ }
+
+ icu::Locale loc_;
+ std::string enc_;
+
+}; /// num_format
+
+
+template<typename CharType>
+class num_parse : public std::num_get<CharType>, protected num_base
+{
+public:
+ num_parse(cdata const &d,size_t refs = 0) :
+ std::num_get<CharType>(refs),
+ loc_(d.locale),
+ enc_(d.encoding)
+ {
+ }
+protected:
+ typedef typename std::num_get<CharType>::iter_type iter_type;
+ typedef std::basic_string<CharType> string_type;
+ typedef CharType char_type;
+ typedef formatter<CharType> formatter_type;
+ typedef std::auto_ptr<formatter_type> formatter_ptr;
+ typedef std::basic_istream<CharType> stream_type;
+
+ virtual iter_type do_get(iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,long &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ virtual iter_type do_get(iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,unsigned short &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ virtual iter_type do_get(iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,unsigned int &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ virtual iter_type do_get(iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,unsigned long &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ virtual iter_type do_get(iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,float &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ virtual iter_type do_get(iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,double &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ virtual iter_type do_get (iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,long double &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ #ifndef BOOST_NO_LONG_LONG
+ virtual iter_type do_get (iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,long long &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ virtual iter_type do_get (iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,unsigned long long &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ #endif
+
+private:
+
+
+ //
+ // This is not really an efficient solution, but it works
+ //
+ template<typename ValueType>
+ iter_type do_real_get(iter_type in,iter_type end,std::ios_base &ios,std::ios_base::iostate &err,ValueType &val) const
+ {
+ formatter_ptr formatter;
+ stream_type *stream_ptr = dynamic_cast<stream_type *>(&ios);
+
+ if(!stream_ptr || use_parent<ValueType>(ios,0) || (formatter = formatter_type::create(ios,loc_,enc_)).get()==0) {
+ return std::num_get<CharType>::do_get(in,end,ios,err,val);
+ }
+
+ typedef typename details::cast_traits<ValueType>::cast_type cast_type;
+ string_type tmp;
+ tmp.reserve(64);
+
+ CharType c;
+ while(in!=end && (((c=*in)<=32 && (c>0)) || c==127)) // Assuming that ASCII is a subset
+ ++in;
+
+ while(tmp.size() < 4096 && in!=end && *in!='\n') {
+ tmp += *in++;
+ }
+
+ cast_type value;
+ size_t parsed_chars;
+
+ if((parsed_chars = formatter->parse(tmp,value))==0 || !valid<ValueType>(value)) {
+ err |= std::ios_base::failbit;
+ }
+ else {
+ val=static_cast<ValueType>(value);
+ }
+
+ for(size_t n=tmp.size();n>parsed_chars;n--) {
+ stream_ptr->putback(tmp[n-1]);
+ }
+
+ in = iter_type(*stream_ptr);
+
+ if(in==end)
+ err |=std::ios_base::eofbit;
+ return in;
+ }
+
+ template<typename ValueType,typename CastedType>
+ bool valid(CastedType v) const
+ {
+ typedef std::numeric_limits<ValueType> value_limits;
+ typedef std::numeric_limits<CastedType> casted_limits;
+ if(v < 0 && value_limits::is_signed == false)
+ return false;
+
+ static const CastedType max_val = value_limits::max();
+
+ if(sizeof(CastedType) > sizeof(ValueType) && v > max_val)
+ return false;
+
+ if(value_limits::is_integer == casted_limits::is_integer) {
+ return true;
+ }
+ if(value_limits::is_integer) { // and casted is not
+ if(static_cast<CastedType>(static_cast<ValueType>(v))!=v)
+ return false;
+ }
+ return true;
+ }
+
+ icu::Locale loc_;
+ std::string enc_;
+
+};
+
+
+template<typename CharType>
+std::locale install_formatting_facets(std::locale const &in,cdata const &cd)
+{
+ std::locale tmp=std::locale(in,new num_format<CharType>(cd));
+ if(!std::has_facet<icu_formatters_cache>(in)) {
+ tmp=std::locale(tmp,new icu_formatters_cache(cd.locale));
+ }
+ return tmp;
+}
+
+template<typename CharType>
+std::locale install_parsing_facets(std::locale const &in,cdata const &cd)
+{
+ std::locale tmp=std::locale(in,new num_parse<CharType>(cd));
+ if(!std::has_facet<icu_formatters_cache>(in)) {
+ tmp=std::locale(tmp,new icu_formatters_cache(cd.locale));
+ }
+ return tmp;
+}
+
+std::locale create_formatting(std::locale const &in,cdata const &cd,character_facet_type type)
+{
+ switch(type) {
+ case char_facet:
+ return install_formatting_facets<char>(in,cd);
+ case wchar_t_facet:
+ return install_formatting_facets<wchar_t>(in,cd);
+ #ifdef BOOST_HAS_CHAR16_T
+ case char16_t_facet:
+ return install_formatting_facets<char16_t>(in,cd);
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ case char32_t_facet:
+ return install_formatting_facets<char32_t>(in,cd);
+ #endif
+ default:
+ return in;
+ }
+}
+
+std::locale create_parsing(std::locale const &in,cdata const &cd,character_facet_type type)
+{
+ switch(type) {
+ case char_facet:
+ return install_parsing_facets<char>(in,cd);
+ case wchar_t_facet:
+ return install_parsing_facets<wchar_t>(in,cd);
+ #ifdef BOOST_HAS_CHAR16_T
+ case char16_t_facet:
+ return install_parsing_facets<char16_t>(in,cd);
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ case char32_t_facet:
+ return install_parsing_facets<char32_t>(in,cd);
+ #endif
+ default:
+ return in;
+ }
+}
+
+
+} // impl_icu
+
+} // locale
+} //boost
+
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/icu/predefined_formatters.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/predefined_formatters.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,186 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_PREDEFINED_FORMATTERS_HPP_INCLUDED
+#define BOOST_LOCALE_PREDEFINED_FORMATTERS_HPP_INCLUDED
+
+#include <string>
+#include <memory>
+#include <boost/cstdint.hpp>
+#include <boost/thread.hpp>
+#include <boost/locale/config.hpp>
+
+#include <unicode/locid.h>
+#include <unicode/numfmt.h>
+#include <unicode/rbnf.h>
+#include <unicode/datefmt.h>
+#include <unicode/smpdtfmt.h>
+#include <unicode/decimfmt.h>
+
+namespace boost {
+namespace locale {
+ namespace impl_icu {
+
+ class icu_formatters_cache : public std::locale::facet {
+ public:
+
+ static std::locale::id id;
+
+ icu_formatters_cache(icu::Locale const &locale) :
+ locale_(locale)
+ {
+
+ static const icu::DateFormat::EStyle styles[4] = {
+ icu::DateFormat::kShort,
+ icu::DateFormat::kMedium,
+ icu::DateFormat::kLong,
+ icu::DateFormat::kFull
+ };
+
+
+ for(int i=0;i<4;i++) {
+ std::auto_ptr<icu::DateFormat> fmt(icu::DateFormat::createDateInstance(styles[i],locale));
+ icu::SimpleDateFormat *sfmt = dynamic_cast<icu::SimpleDateFormat*>(fmt.get());
+ if(sfmt) {
+ sfmt->toPattern(date_format_[i]);
+ }
+ }
+
+ for(int i=0;i<4;i++) {
+ std::auto_ptr<icu::DateFormat> fmt(icu::DateFormat::createTimeInstance(styles[i],locale));
+ icu::SimpleDateFormat *sfmt = dynamic_cast<icu::SimpleDateFormat*>(fmt.get());
+ if(sfmt) {
+ sfmt->toPattern(time_format_[i]);
+ }
+ }
+
+ for(int i=0;i<4;i++) {
+ for(int j=0;j<4;j++) {
+ std::auto_ptr<icu::DateFormat> fmt(
+ icu::DateFormat::createDateTimeInstance(styles[i],styles[j],locale));
+ icu::SimpleDateFormat *sfmt = dynamic_cast<icu::SimpleDateFormat*>(fmt.get());
+ if(sfmt) {
+ sfmt->toPattern(date_time_format_[i][j]);
+ }
+ }
+ }
+
+
+ }
+
+ typedef enum {
+ fmt_number,
+ fmt_sci,
+ fmt_curr_nat,
+ fmt_curr_iso,
+ fmt_per,
+ fmt_spell,
+ fmt_ord,
+ fmt_count
+ } fmt_type;
+
+ icu::NumberFormat *number_format(fmt_type type) const
+ {
+ icu::NumberFormat *ptr = number_format_[type].get();
+ if(ptr)
+ return ptr;
+ UErrorCode err=U_ZERO_ERROR;
+ std::auto_ptr<icu::NumberFormat> ap;
+
+ switch(type) {
+ case fmt_number:
+ ap.reset(icu::NumberFormat::createInstance(locale_,err));
+ break;
+ case fmt_sci:
+ ap.reset(icu::NumberFormat::createScientificInstance(locale_,err));
+ break;
+ #if U_ICU_VERSION_MAJOR_NUM*100 + U_ICU_VERSION_MINOR_NUM >= 402
+ #if U_ICU_VERSION_MAJOR_NUM*100 + U_ICU_VERSION_MINOR_NUM >= 408
+ case fmt_curr_nat:
+ ap.reset(icu::NumberFormat::createInstance(locale_,UNUM_CURRENCY,err));
+ break;
+ case fmt_curr_iso:
+ ap.reset(icu::NumberFormat::createInstance(locale_,UNUM_CURRENCY_ISO,err));
+ break;
+ #else
+ case fmt_curr_nat:
+ ap.reset(icu::NumberFormat::createInstance(locale_,icu::NumberFormat::kCurrencyStyle,err));
+ break;
+ case fmt_curr_iso:
+ ap.reset(icu::NumberFormat::createInstance(locale_,icu::NumberFormat::kIsoCurrencyStyle,err));
+ break;
+ #endif
+ #else
+ case fmt_curr_nat:
+ case fmt_curr_iso:
+ ap.reset(icu::NumberFormat::createCurrencyInstance(locale_,err));
+ break;
+ #endif
+ case fmt_per:
+ ap.reset(icu::NumberFormat::createPercentInstance(locale_,err));
+ break;
+ case fmt_spell:
+ ap.reset(new icu::RuleBasedNumberFormat(URBNF_SPELLOUT,locale_,err));
+ break;
+ case fmt_ord:
+ ap.reset(new icu::RuleBasedNumberFormat(URBNF_ORDINAL,locale_,err));
+ break;
+ default:
+ throw std::runtime_error("locale::internal error should not get there");
+ }
+
+ test(err);
+ ptr = ap.get();
+ number_format_[type].reset(ap.release());
+ return ptr;
+ }
+
+ void test(UErrorCode err) const
+ {
+ if(U_FAILURE(err))
+ throw std::runtime_error("Failed to create a formatter");
+ }
+
+ icu::UnicodeString date_format_[4];
+ icu::UnicodeString time_format_[4];
+ icu::UnicodeString date_time_format_[4][4];
+
+ icu::SimpleDateFormat *date_formatter() const
+ {
+ icu::SimpleDateFormat *p=date_formatter_.get();
+ if(p)
+ return p;
+
+ std::auto_ptr<icu::DateFormat> fmt(icu::DateFormat::createDateTimeInstance(
+ icu::DateFormat::kMedium,
+ icu::DateFormat::kMedium,
+ locale_));
+
+ if(dynamic_cast<icu::SimpleDateFormat *>(fmt.get())) {
+ p = static_cast<icu::SimpleDateFormat *>(fmt.release());
+ date_formatter_.reset(p);
+ }
+ return p;
+ }
+
+ private:
+
+ mutable boost::thread_specific_ptr<icu::NumberFormat> number_format_[fmt_count];
+ mutable boost::thread_specific_ptr<icu::SimpleDateFormat> date_formatter_;
+ icu::Locale locale_;
+ };
+
+
+
+ } // namespace impl_icu
+} // namespace locale
+} // namespace boost
+
+
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/icu/time_zone.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/time_zone.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,237 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include "time_zone.hpp"
+
+//
+// Bug - when ICU tries to find a file that is equivalent to /etc/localtime it finds /usr/share/zoneinfo/localtime
+// that is just a symbolic link to /etc/localtime.
+//
+// It started in 4.0 and was fixed in version 4.6, also the fix was backported to the 4.4 branch so it should be
+// available from 4.4.3... So we test if the workaround is required
+//
+// It is also relevant only for Linux, BSD and Apple (as I see in ICU code)
+//
+
+#if U_ICU_VERSION_MAJOR_NUM == 4 && (U_ICU_VERSION_MINOR_NUM * 100 + U_ICU_VERSION_PATCHLEVEL_NUM) <= 402
+# if defined(__linux) || defined(__FreeBSD__) || defined(__APPLE__)
+# define BOOST_LOCALE_WORKAROUND_ICU_BUG
+# endif
+#endif
+
+#ifdef BOOST_LOCALE_WORKAROUND_ICU_BUG
+#include <dirent.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <fstream>
+#include <pthread.h>
+#include <string.h>
+#include <memory>
+#endif
+
+namespace boost {
+ namespace locale {
+ namespace impl_icu {
+
+ #ifndef BOOST_LOCALE_WORKAROUND_ICU_BUG
+
+ // This is normal behavior
+
+ icu::TimeZone *get_time_zone(std::string const &time_zone)
+ {
+
+ if(time_zone.empty()) {
+ return icu::TimeZone::createDefault();
+ }
+ else {
+ return icu::TimeZone::createTimeZone(time_zone.c_str());
+ }
+ }
+
+ #else
+
+ //
+ // This is a workaround for an ICU timezone detection bug.
+ // It is \b very ICU specific and should not be used
+ // in general. It is also designed to work only on
+ // specific patforms: Linux, BSD and Apple, where this bug may actually
+ // occur
+ //
+ namespace {
+
+ // Under BSD, Linux and Mac OS X dirent has normal size
+ // so no issues with readdir_r
+
+ class directory {
+ public:
+ directory(char const *name) : d(0),read_result(0)
+ {
+ d=opendir(name);
+ if(!d)
+ return;
+ }
+ ~directory()
+ {
+ if(d)
+ closedir(d);
+ }
+ bool is_open()
+ {
+ return d;
+ }
+ char const *next()
+ {
+ if(d && readdir_r(d,&de,&read_result)==0 && read_result!=0)
+ return de.d_name;
+ return 0;
+ }
+ private:
+ DIR *d;
+ struct dirent de;
+ struct dirent *read_result;
+ };
+
+ bool files_equal(std::string const &left,std::string const &right)
+ {
+ char l[256],r[256];
+ std::ifstream ls(left.c_str());
+ if(!ls)
+ return false;
+ std::ifstream rs(right.c_str());
+ if(!rs)
+ return false;
+ do {
+ ls.read(l,sizeof(l));
+ rs.read(r,sizeof(r));
+ size_t n;
+ if((n=ls.gcount())!=size_t(rs.gcount()))
+ return false;
+ if(memcmp(l,r,n)!=0)
+ return false;
+ }while(!ls.eof() || !rs.eof());
+ if(bool(ls.eof())!=bool(rs.eof()))
+ return false;
+ return true;
+ }
+
+ std::string find_file_in(std::string const &ref,size_t size,std::string const &dir)
+ {
+ directory d(dir.c_str());
+ if(!d.is_open())
+ return std::string();
+
+ char const *name=0;
+ while((name=d.next())!=0) {
+ std::string file_name = name;
+ if( file_name == "."
+ || file_name ==".."
+ || file_name=="posixrules"
+ || file_name=="localtime")
+ {
+ continue;
+ }
+ struct stat st;
+ std::string path = dir+"/"+file_name;
+ if(stat(path.c_str(),&st)==0) {
+ if(S_ISDIR(st.st_mode)) {
+ std::string res = find_file_in(ref,size,path);
+ if(!res.empty())
+ return file_name + "/" + res;
+ }
+ else {
+ if(size_t(st.st_size) == size && files_equal(path,ref)) {
+ return file_name;
+ }
+ }
+ }
+ }
+ return std::string();
+ }
+
+ // This actually emulates ICU's search
+ // algorithm... just it ignores localtime
+ std::string detect_correct_time_zone()
+ {
+
+ char const *tz_dir = "/usr/share/zoneinfo";
+ char const *tz_file = "/etc/localtime";
+
+ struct stat st;
+ if(::stat(tz_file,&st)!=0)
+ return std::string();
+ size_t size = st.st_size;
+ std::string r = find_file_in(tz_file,size,tz_dir);
+ if(r.empty())
+ return r;
+ if(r.compare(0,6,"posix/")==0 || r.compare(0,6,"right/",6)==0)
+ return r.substr(6);
+ return r;
+ }
+
+
+ //
+ // Using pthread as:
+ // - This bug is relevant for only Linux, BSD, Mac OS X and
+ // pthreads are native threading API
+ // - The dependency on boost.thread may be removed when using
+ // more recent ICU versions (so TLS would not be needed)
+ //
+ // This the dependency on Boost.Thread is eliminated
+ //
+
+ pthread_once_t init_tz = PTHREAD_ONCE_INIT;
+ std::string default_time_zone_name;
+
+ extern "C" {
+ static void init_tz_proc()
+ {
+ try {
+ default_time_zone_name = detect_correct_time_zone();
+ }
+ catch(...){}
+ }
+ }
+
+ std::string get_time_zone_name()
+ {
+ pthread_once(&init_tz,init_tz_proc);
+ return default_time_zone_name;
+ }
+
+
+ } // namespace
+
+ icu::TimeZone *get_time_zone(std::string const &time_zone)
+ {
+
+ if(!time_zone.empty()) {
+ return icu::TimeZone::createTimeZone(time_zone.c_str());
+ }
+ std::auto_ptr<icu::TimeZone> tz(icu::TimeZone::createDefault());
+ icu::UnicodeString id;
+ tz->getID(id);
+ // Check if there is a bug?
+ if(id != icu::UnicodeString("localtime"))
+ return tz.release();
+ // Now let's deal with the bug and run the fixed
+ // search loop as that of ICU
+ std::string real_id = get_time_zone_name();
+ if(real_id.empty()) {
+ // if we failed fallback to ICU's time zone
+ return tz.release();
+ }
+ return icu::TimeZone::createTimeZone(real_id.c_str());
+ }
+ #endif // bug workaround
+
+ }
+ }
+}
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/icu/time_zone.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/time_zone.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,26 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_ICU_GET_TIME_ZONE_HPP
+#define BOOST_LOCALE_IMPL_ICU_GET_TIME_ZONE_HPP
+
+#include <unicode/calendar.h>
+#include <string>
+
+namespace boost {
+ namespace locale {
+ namespace impl_icu {
+
+ // Provides a workaround for an ICU default timezone bug and also
+ // handles time_zone string correctly - if empty returns default
+ // otherwise returns the instance created with time_zone
+ icu::TimeZone *get_time_zone(std::string const &time_zone);
+ }
+ }
+}
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/icu/uconv.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/icu/uconv.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,316 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_SRC_LOCALE_ICU_UCONV_HPP
+#define BOOST_SRC_LOCALE_ICU_UCONV_HPP
+#include <unicode/unistr.h>
+#include <unicode/ucnv.h>
+#include <unicode/ustring.h>
+#include <unicode/utf.h>
+#include <unicode/utf16.h>
+
+#include <boost/locale/encoding.hpp>
+
+#include <string>
+#include <memory>
+#include "icu_util.hpp"
+
+namespace boost {
+namespace locale {
+namespace impl_icu {
+
+ typedef enum {
+ cvt_skip,
+ cvt_stop
+ } cpcvt_type;
+
+
+ template<typename CharType,int char_size = sizeof(CharType) >
+ class icu_std_converter {
+ public:
+ typedef CharType char_type;
+ typedef std::basic_string<char_type> string_type;
+
+ icu_std_converter(std::string charset,cpcvt_type cv=cvt_skip);
+ icu::UnicodeString icu(char_type const *begin,char_type const *end) const;
+ string_type std(icu::UnicodeString const &str) const;
+ size_t cut(icu::UnicodeString const &str,char_type const *begin,char_type const *end,size_t n,size_t from_u=0,size_t from_c=0) const;
+ };
+
+ template<typename CharType>
+ class icu_std_converter<CharType,1> {
+ public:
+ typedef CharType char_type;
+ typedef std::basic_string<char_type> string_type;
+
+
+ icu::UnicodeString icu_checked(char_type const *vb,char_type const *ve) const
+ {
+ return icu(vb,ve); // Already done
+ }
+ icu::UnicodeString icu(char_type const *vb,char_type const *ve) const
+ {
+ char const *begin=reinterpret_cast<char const *>(vb);
+ char const *end=reinterpret_cast<char const *>(ve);
+ uconv cvt(charset_,cvt_type_);
+ UErrorCode err=U_ZERO_ERROR;
+ icu::UnicodeString tmp(begin,end-begin,cvt.cvt(),err);
+ check_and_throw_icu_error(err);
+ return tmp;
+ }
+
+ string_type std(icu::UnicodeString const &str) const
+ {
+ uconv cvt(charset_,cvt_type_);
+ return cvt.go(str.getBuffer(),str.length(),max_len_);
+ }
+
+ icu_std_converter(std::string charset,cpcvt_type cvt_type = cvt_skip) :
+ charset_(charset),
+ cvt_type_(cvt_type)
+ {
+ uconv cvt(charset_,cvt_type);
+ max_len_=cvt.max_char_size();
+ }
+
+ size_t cut(icu::UnicodeString const &str,char_type const *begin,char_type const *end,
+ size_t n,size_t from_u=0,size_t from_char=0) const
+ {
+ size_t code_points = str.countChar32(from_u,n);
+ uconv cvt(charset_,cvt_type_);
+ return cvt.cut(code_points,begin+from_char,end);
+ }
+
+ struct uconv {
+ uconv(uconv const &other);
+ void operator=(uconv const &other);
+ public:
+ uconv(std::string const &charset,cpcvt_type cvt_type=cvt_skip)
+ {
+ UErrorCode err=U_ZERO_ERROR;
+ cvt_ = ucnv_open(charset.c_str(),&err);
+ if(!cvt_ || U_FAILURE(err)) {
+ if(cvt_)
+ ucnv_close(cvt_);
+ throw conv::invalid_charset_error(charset);
+ }
+
+ try {
+ if(cvt_type==cvt_skip) {
+ ucnv_setFromUCallBack(cvt_,UCNV_FROM_U_CALLBACK_SKIP,0,0,0,&err);
+ check_and_throw_icu_error(err);
+
+ err=U_ZERO_ERROR;
+ ucnv_setToUCallBack(cvt_,UCNV_TO_U_CALLBACK_SKIP,0,0,0,&err);
+ check_and_throw_icu_error(err);
+ }
+ else {
+ ucnv_setFromUCallBack(cvt_,UCNV_FROM_U_CALLBACK_STOP,0,0,0,&err);
+ check_and_throw_icu_error(err);
+
+ err=U_ZERO_ERROR;
+ ucnv_setToUCallBack(cvt_,UCNV_TO_U_CALLBACK_STOP,0,0,0,&err);
+ check_and_throw_icu_error(err);
+ }
+ }
+ catch(...) { ucnv_close(cvt_) ; throw; }
+ }
+
+ int max_char_size()
+ {
+ return ucnv_getMaxCharSize(cvt_);
+ }
+
+ string_type go(UChar const *buf,int length,int max_size)
+ {
+ string_type res;
+ res.resize(UCNV_GET_MAX_BYTES_FOR_STRING(length,max_size));
+ char *ptr=reinterpret_cast<char *>(&res[0]);
+ UErrorCode err=U_ZERO_ERROR;
+ int n = ucnv_fromUChars(cvt_,ptr,res.size(),buf,length,&err);
+ check_and_throw_icu_error(err);
+ res.resize(n);
+ return res;
+ }
+
+ size_t cut(size_t n,char_type const *begin,char_type const *end)
+ {
+ char_type const *saved = begin;
+ while(n > 0 && begin < end) {
+ UErrorCode err=U_ZERO_ERROR;
+ ucnv_getNextUChar(cvt_,&begin,end,&err);
+ if(U_FAILURE(err))
+ return 0;
+ n--;
+ }
+ return begin - saved;
+ }
+
+ UConverter *cvt() { return cvt_; }
+
+ ~uconv()
+ {
+ ucnv_close(cvt_);
+ }
+
+ private:
+ UConverter *cvt_;
+ };
+
+ private:
+ int max_len_;
+ std::string charset_;
+ cpcvt_type cvt_type_;
+ };
+
+ template<typename CharType>
+ class icu_std_converter<CharType,2> {
+ public:
+ typedef CharType char_type;
+ typedef std::basic_string<char_type> string_type;
+
+
+ icu::UnicodeString icu_checked(char_type const *begin,char_type const *end) const
+ {
+ icu::UnicodeString tmp(end-begin,0,0); // make inital capacity
+ while(begin!=end) {
+ UChar cl = *begin++;
+ if(U16_IS_SINGLE(cl))
+ tmp.append(static_cast<UChar32>(cl));
+ else if(U16_IS_LEAD(cl)) {
+ if(begin==end) {
+ throw_if_needed();
+ }
+ else {
+ UChar ct=*begin++;
+ if(!U16_IS_TRAIL(ct))
+ throw_if_needed();
+ else {
+ UChar32 c=U16_GET_SUPPLEMENTARY(cl,ct);
+ tmp.append(c);
+ }
+ }
+ }
+ else
+ throw_if_needed();
+ }
+ return tmp;
+ }
+ void throw_if_needed() const
+ {
+ if(mode_ == cvt_stop)
+ throw conv::conversion_error();
+ }
+ icu::UnicodeString icu(char_type const *vb,char_type const *ve) const
+ {
+ UChar const *begin=reinterpret_cast<UChar const *>(vb);
+ UChar const *end=reinterpret_cast<UChar const *>(ve);
+ icu::UnicodeString tmp(begin,end-begin);
+ return tmp;
+
+ }
+
+ string_type std(icu::UnicodeString const &str) const
+ {
+ char_type const *ptr=reinterpret_cast<char_type const *>(str.getBuffer());
+ return string_type(ptr,str.length());
+ }
+ size_t cut(icu::UnicodeString const &/*str*/,char_type const * /*begin*/,char_type const * /*end*/,size_t n,
+ size_t /*from_u*/=0,size_t /*from_c*/=0) const
+ {
+ return n;
+ }
+
+ icu_std_converter(std::string /*charset*/,cpcvt_type mode=cvt_skip) :
+ mode_(mode)
+ {
+ }
+ private:
+ cpcvt_type mode_;
+
+ };
+
+ template<typename CharType>
+ class icu_std_converter<CharType,4> {
+ public:
+
+ typedef CharType char_type;
+ typedef std::basic_string<char_type> string_type;
+
+ icu::UnicodeString icu_checked(char_type const *begin,char_type const *end) const
+ {
+ icu::UnicodeString tmp(end-begin,0,0); // make inital capacity
+ while(begin!=end) {
+ UChar32 c = static_cast<UChar32>(*begin++);
+ if(U_IS_UNICODE_CHAR(c))
+ tmp.append(c);
+ else
+ throw_if_needed();
+ }
+ return tmp;
+ }
+ void throw_if_needed() const
+ {
+ if(mode_ == cvt_stop)
+ throw conv::conversion_error();
+ }
+
+ icu::UnicodeString icu(char_type const *begin,char_type const *end) const
+ {
+ icu::UnicodeString tmp(end-begin,0,0); // make inital capacity
+ while(begin!=end) {
+ UChar32 c=static_cast<UChar32>(*begin++);
+ tmp.append(c);
+ }
+ return tmp;
+
+ }
+
+ string_type std(icu::UnicodeString const &str) const
+ {
+ string_type tmp;
+ tmp.resize(str.length());
+ UChar32 *ptr=reinterpret_cast<UChar32 *>(&tmp[0]);
+
+ #ifdef __SUNPRO_CC
+ int len=0;
+ #else
+ ::int32_t len=0;
+ #endif
+
+ UErrorCode code=U_ZERO_ERROR;
+ u_strToUTF32(ptr,tmp.size(),&len,str.getBuffer(),str.length(),&code);
+
+ check_and_throw_icu_error(code);
+
+ tmp.resize(len);
+
+ return tmp;
+ }
+
+ size_t cut(icu::UnicodeString const &str,char_type const * /*begin*/,char_type const * /*end*/,size_t n,
+ size_t from_u=0,size_t /*from_c*/=0) const
+ {
+ return str.countChar32(from_u,n);
+ }
+
+ icu_std_converter(std::string /*charset*/,cpcvt_type mode=cvt_skip) :
+ mode_(mode)
+ {
+ }
+ private:
+ cpcvt_type mode_;
+
+ };
+} /// impl_icu
+} // locale
+} // boost
+
+#endif
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/posix/all_generator.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/posix/all_generator.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,48 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_POSIX_ALL_GENERATOR_HPP
+#define BOOST_LOCALE_IMPL_POSIX_ALL_GENERATOR_HPP
+
+#include <boost/locale/generator.hpp>
+#include <boost/shared_ptr.hpp>
+#include <vector>
+#include <locale.h>
+
+#ifdef __APPLE__
+#include <xlocale.h>
+#endif
+
+namespace boost {
+ namespace locale {
+ namespace impl_posix {
+
+ std::locale create_convert( std::locale const &in,
+ boost::shared_ptr<locale_t> lc,
+ character_facet_type type);
+
+ std::locale create_collate( std::locale const &in,
+ boost::shared_ptr<locale_t> lc,
+ character_facet_type type);
+
+ std::locale create_formatting( std::locale const &in,
+ boost::shared_ptr<locale_t> lc,
+ character_facet_type type);
+
+ std::locale create_parsing( std::locale const &in,
+ boost::shared_ptr<locale_t> lc,
+ character_facet_type type);
+ std::locale create_codecvt( std::locale const &in,
+ std::string const &encoding,
+ character_facet_type type);
+
+ }
+ }
+}
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/posix/codecvt.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/posix/codecvt.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,251 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/encoding.hpp>
+#include <boost/shared_ptr.hpp>
+#include "../encoding/conv.hpp"
+#include <boost/locale/util.hpp>
+#include "all_generator.hpp"
+
+#include <errno.h>
+#include <algorithm>
+#include <stdexcept>
+#include <vector>
+#include "codecvt.hpp"
+
+#ifdef BOOST_LOCALE_WITH_ICONV
+#include "../util/iconv.hpp"
+#endif
+
+namespace boost {
+namespace locale {
+namespace impl_posix {
+
+#ifdef BOOST_LOCALE_WITH_ICONV
+ class mb2_iconv_converter : public util::base_converter {
+ public:
+
+ mb2_iconv_converter(std::string const &encoding) :
+ encoding_(encoding),
+ to_utf_((iconv_t)(-1)),
+ from_utf_((iconv_t)(-1))
+ {
+ iconv_t d = (iconv_t)(-1);
+ std::vector<uint32_t> first_byte_table;
+ try {
+ d = iconv_open(utf32_encoding(),encoding.c_str());
+ if(d == (iconv_t)(-1)) {
+ throw std::runtime_error("Unsupported encoding" + encoding);
+ }
+ for(unsigned c=0;c<256;c++) {
+ char ibuf[2] = { char(c) , 0 };
+ char *in = ibuf;
+ size_t insize =2;
+ uint32_t obuf[2] = {illegal,illegal};
+ char *out = reinterpret_cast<char *>(obuf);
+ size_t outsize = 8;
+ // Basic sigle codepoint conversion
+ iconv(d,&in,&insize,&out,&outsize);
+ if(insize == 0 && outsize == 0 && obuf[1] == 0) {
+ first_byte_table.push_back(obuf[0]);
+ continue;
+ }
+
+ // Test if this is illegal first byte or incomplete
+ in = ibuf;
+ insize = 1;
+ out = reinterpret_cast<char *>(obuf);
+ outsize = 8;
+ iconv(d,0,0,0,0);
+ size_t res = iconv(d,&in,&insize,&out,&outsize);
+
+ // Now if this single byte starts a sequence we add incomplete
+ // to know to ask that we need two bytes, othewise it may only be
+ // illegal
+
+ uint32_t point;
+ if(res == (size_t)(-1) && errno == EINVAL)
+ point = incomplete;
+ else
+ point = illegal;
+ first_byte_table.push_back(point);
+
+ }
+ }
+ catch(...) {
+ if(d!=(iconv_t)(-1))
+ iconv_close(d);
+ throw;
+ }
+ iconv_close(d);
+ first_byte_table_.reset(new std::vector<uint32_t>());
+ first_byte_table_->swap(first_byte_table);
+ }
+
+ mb2_iconv_converter(mb2_iconv_converter const &other) :
+ first_byte_table_(other.first_byte_table_),
+ encoding_(other.encoding_),
+ to_utf_((iconv_t)(-1)),
+ from_utf_((iconv_t)(-1))
+ {
+ }
+
+ virtual ~mb2_iconv_converter()
+ {
+ if(to_utf_ != (iconv_t)(-1))
+ iconv_close(to_utf_);
+ if(from_utf_ != (iconv_t)(-1))
+ iconv_close(from_utf_);
+
+ }
+
+ virtual bool is_thread_safe() const
+ {
+ return false;
+ }
+
+ virtual mb2_iconv_converter *clone() const
+ {
+ return new mb2_iconv_converter(*this);
+ }
+
+ uint32_t to_unicode(char const *&begin,char const *end)
+ {
+ if(begin == end)
+ return incomplete;
+
+ unsigned char seq0 = *begin;
+ uint32_t index = (*first_byte_table_)[seq0];
+ if(index == illegal)
+ return illegal;
+ if(index != incomplete) {
+ begin++;
+ return index;
+ }
+ else if(begin+1 == end)
+ return incomplete;
+
+ open(to_utf_,utf32_encoding(),encoding_.c_str());
+
+ // maybe illegal or may be double byte
+
+ char inseq[3] = {seq0 , begin[1], 0};
+ char *inbuf = inseq;
+ size_t insize = 3;
+ uint32_t result[2] = { illegal, illegal };
+ size_t outsize = 8;
+ char *outbuf = reinterpret_cast<char*>(result);
+ iconv(to_utf_,&inbuf,&insize,&outbuf,&outsize);
+ if(outsize == 0 && insize == 0 && result[1]==0 ) {
+ begin+=2;
+ return result[0];
+ }
+ return illegal;
+ }
+
+ uint32_t from_unicode(uint32_t cp,char *begin,char const *end)
+ {
+ if(cp == 0) {
+ if(begin!=end) {
+ *begin = 0;
+ return 1;
+ }
+ else {
+ return incomplete;
+ }
+ }
+
+ open(from_utf_,encoding_.c_str(),utf32_encoding());
+
+ uint32_t codepoints[2] = {cp,0};
+ char *inbuf = reinterpret_cast<char *>(codepoints);
+ size_t insize = sizeof(codepoints);
+ char outseq[3] = {0};
+ char *outbuf = outseq;
+ size_t outsize = 3;
+
+ iconv(from_utf_,&inbuf,&insize,&outbuf,&outsize);
+
+ if(insize != 0 || outsize > 1)
+ return illegal;
+ size_t len = 2 - outsize ;
+ size_t reminder = end - begin;
+ if(reminder < len)
+ return incomplete;
+ for(unsigned i=0;i<len;i++)
+ *begin++ = outseq[i];
+ return len;
+ }
+
+ void open(iconv_t &d,char const *to,char const *from)
+ {
+ if(d!=(iconv_t)(-1))
+ return;
+ d=iconv_open(to,from);
+ }
+
+ static char const *utf32_encoding()
+ {
+ union { char one; uint32_t value; } test;
+ test.value = 1;
+ if(test.one == 1)
+ return "UTF-32LE";
+ else
+ return "UTF-32BE";
+ }
+
+ virtual int max_len() const
+ {
+ return 2;
+ }
+
+ private:
+ boost::shared_ptr<std::vector<uint32_t> > first_byte_table_;
+ std::string encoding_;
+ iconv_t to_utf_;
+ iconv_t from_utf_;
+ };
+
+ std::auto_ptr<util::base_converter> create_iconv_converter(std::string const &encoding)
+ {
+ std::auto_ptr<util::base_converter> cvt;
+ try {
+ cvt.reset(new mb2_iconv_converter(encoding));
+ }
+ catch(std::exception const &e) {
+ // Nothing to do, just retrun empty cvt
+ }
+ return cvt;
+ }
+
+#else // no iconv
+ std::auto_ptr<util::base_converter> create_iconv_converter(std::string const &/*encoding*/)
+ {
+ std::auto_ptr<util::base_converter> cvt;
+ return cvt;
+ }
+#endif
+
+ std::locale create_codecvt(std::locale const &in,std::string const &encoding,character_facet_type type)
+ {
+ std::auto_ptr<util::base_converter> cvt;
+ if(conv::impl::normalize_encoding(encoding.c_str())=="utf8")
+ cvt = util::create_utf8_converter();
+ else {
+ cvt = util::create_simple_converter(encoding);
+ if(!cvt.get())
+ cvt = create_iconv_converter(encoding);
+ }
+ return util::create_codecvt(in,cvt,type);
+ }
+
+} // impl_posix
+} // locale
+} // boost
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/posix/codecvt.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/posix/codecvt.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,28 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_POSIX_CODECVT_HPP
+#define BOOST_LOCALE_IMPL_POSIX_CODECVT_HPP
+#include <boost/locale/config.hpp>
+#include <boost/locale/util.hpp>
+
+#include <memory>
+#include <string>
+
+namespace boost {
+namespace locale {
+namespace impl_posix {
+ BOOST_LOCALE_DECL
+ std::auto_ptr<util::base_converter> create_iconv_converter(std::string const &encoding);
+
+} // impl_posix
+} // locale
+} // boost
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/src/posix/collate.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/posix/collate.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,121 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <locale>
+#include <locale.h>
+#include <string.h>
+#include <wchar.h>
+#include <string>
+#include <stdexcept>
+#include <ios>
+#include <vector>
+#include <boost/locale/generator.hpp>
+#include "../shared/mo_hash.hpp"
+
+#include "all_generator.hpp"
+
+namespace boost {
+namespace locale {
+namespace impl_posix {
+
+template<typename CharType>
+struct coll_traits;
+
+template<>
+struct coll_traits<char> {
+ static size_t xfrm(char *out,char const *in,size_t n,locale_t l)
+ {
+ return strxfrm_l(out,in,n,l);
+ }
+ static size_t coll(char const *left,char const *right,locale_t l)
+ {
+ return strcoll_l(left,right,l);
+ }
+};
+
+template<>
+struct coll_traits<wchar_t> {
+ static size_t xfrm(wchar_t *out,wchar_t const *in,size_t n,locale_t l)
+ {
+ return wcsxfrm_l(out,in,n,l);
+ }
+ static size_t coll(wchar_t const *left,wchar_t const *right,locale_t l)
+ {
+ return wcscoll_l(left,right,l);
+ }
+};
+
+template<typename CharType>
+class collator : public std::collate<CharType> {
+public:
+ typedef CharType char_type;
+ typedef std::basic_string<char_type> string_type;
+ collator(boost::shared_ptr<locale_t> l,size_t refs = 0) :
+ std::collate<CharType>(refs),
+ lc_(l)
+ {
+ }
+ virtual ~collator()
+ {
+ }
+ virtual int do_compare(char_type const *lb,char_type const *le,char_type const *rb,char_type const *re) const
+ {
+ string_type left(lb,le-lb);
+ string_type right(rb,re-rb);
+ int res = coll_traits<char_type>::coll(left.c_str(),right.c_str(),*lc_);
+ if(res < 0)
+ return -1;
+ if(res > 0)
+ return 1;
+ return 0;
+ }
+ virtual long do_hash(char_type const *b,char_type const *e) const
+ {
+ string_type s(do_transform(b,e));
+ char const *begin = reinterpret_cast<char const *>(s.c_str());
+ char const *end = begin + s.size() * sizeof(char_type);
+ return gnu_gettext::pj_winberger_hash_function(begin,end);
+ }
+ virtual string_type do_transform(char_type const *b,char_type const *e) const
+ {
+ string_type s(b,e-b);
+ std::vector<char_type> buf((e-b)*2+1);
+ size_t n = coll_traits<char_type>::xfrm(&buf.front(),s.c_str(),buf.size(),*lc_);
+ if(n>buf.size()) {
+ buf.resize(n);
+ coll_traits<char_type>::xfrm(&buf.front(),s.c_str(),n,*lc_);
+ }
+ return string_type(&buf.front(),n);
+ }
+private:
+ boost::shared_ptr<locale_t> lc_;
+};
+
+
+std::locale create_collate( std::locale const &in,
+ boost::shared_ptr<locale_t> lc,
+ character_facet_type type)
+{
+ switch(type) {
+ case char_facet:
+ return std::locale(in,new collator<char>(lc));
+ case wchar_t_facet:
+ return std::locale(in,new collator<wchar_t>(lc));
+ default:
+ return in;
+ }
+}
+
+
+} // impl_std
+} // locale
+} //boost
+
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/posix/converter.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/posix/converter.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,162 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+
+#include <locale>
+#include <stdexcept>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/conversion.hpp>
+#include <boost/locale/encoding.hpp>
+#include <boost/shared_ptr.hpp>
+#include <vector>
+#include <string.h>
+#include <wctype.h>
+#include <ctype.h>
+#include <langinfo.h>
+#include "all_generator.hpp"
+
+namespace boost {
+namespace locale {
+namespace impl_posix {
+
+template<typename CharType>
+struct case_traits;
+
+template<>
+struct case_traits<char> {
+ static char lower(char c,locale_t lc)
+ {
+ return tolower_l(c,lc);
+ }
+ static char upper(char c,locale_t lc)
+ {
+ return toupper_l(c,lc);
+ }
+};
+
+template<>
+struct case_traits<wchar_t> {
+ static wchar_t lower(wchar_t c,locale_t lc)
+ {
+ return towlower_l(c,lc);
+ }
+ static wchar_t upper(wchar_t c,locale_t lc)
+ {
+ return towupper_l(c,lc);
+ }
+};
+
+
+template<typename CharType>
+class std_converter : public converter<CharType>
+{
+public:
+ typedef CharType char_type;
+ typedef std::basic_string<char_type> string_type;
+ typedef std::ctype<char_type> ctype_type;
+ std_converter(boost::shared_ptr<locale_t> lc,size_t refs = 0) :
+ converter<CharType>(refs),
+ lc_(lc)
+ {
+ }
+ virtual string_type convert(converter_base::conversion_type how,char_type const *begin,char_type const *end,int /*flags*/ = 0) const
+ {
+ switch(how) {
+ case converter_base::upper_case:
+ {
+ string_type res;
+ res.reserve(end-begin);
+ while(begin!=end) {
+ res+=case_traits<char_type>::upper(*begin++,*lc_);
+ }
+ return res;
+ }
+ case converter_base::lower_case:
+ case converter_base::case_folding:
+ {
+ string_type res;
+ res.reserve(end-begin);
+ while(begin!=end) {
+ res+=case_traits<char_type>::lower(*begin++,*lc_);
+ }
+ return res;
+ }
+ default:
+ return string_type(begin,end-begin);
+ }
+ }
+private:
+ boost::shared_ptr<locale_t> lc_;
+};
+
+class utf8_converter : public converter<char> {
+public:
+ utf8_converter(boost::shared_ptr<locale_t> lc,size_t refs = 0) :
+ converter<char>(refs),
+ lc_(lc)
+ {
+ }
+ virtual std::string convert(converter_base::conversion_type how,char const *begin,char const *end,int /*flags*/ = 0) const
+ {
+ switch(how) {
+ case upper_case:
+ {
+ std::wstring tmp = conv::to_utf<wchar_t>(begin,end,"UTF-8");
+ std::wstring wres;
+ wres.reserve(tmp.size());
+ for(unsigned i=0;i<tmp.size();i++)
+ wres+=towupper_l(tmp[i],*lc_);
+ return conv::from_utf<wchar_t>(wres,"UTF-8");
+ }
+
+ case lower_case:
+ case case_folding:
+ {
+ std::wstring tmp = conv::to_utf<wchar_t>(begin,end,"UTF-8");
+ std::wstring wres;
+ wres.reserve(tmp.size());
+ for(unsigned i=0;i<tmp.size();i++)
+ wres+=towlower_l(tmp[i],*lc_);
+ return conv::from_utf<wchar_t>(wres,"UTF-8");
+ }
+ default:
+ return std::string(begin,end-begin);
+ }
+ }
+private:
+ boost::shared_ptr<locale_t> lc_;
+};
+
+std::locale create_convert( std::locale const &in,
+ boost::shared_ptr<locale_t> lc,
+ character_facet_type type)
+{
+ switch(type) {
+ case char_facet:
+ {
+ std::string encoding = nl_langinfo_l(CODESET,*lc);
+ for(unsigned i=0;i<encoding.size();i++)
+ if('A'<=encoding[i] && encoding[i]<='Z')
+ encoding[i]=encoding[i]-'A'+'a';
+ if(encoding=="utf-8" || encoding=="utf8" || encoding=="utf_8") {
+ return std::locale(in,new utf8_converter(lc));
+ }
+ return std::locale(in,new std_converter<char>(lc));
+ }
+ case wchar_t_facet:
+ return std::locale(in,new std_converter<wchar_t>(lc));
+ default:
+ return in;
+ }
+}
+
+
+} // namespace impl_std
+} // locale
+} // boost
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/posix/numeric.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/posix/numeric.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,505 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <locale>
+#include <string>
+#include <ios>
+#include <boost/locale/formatting.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/encoding.hpp>
+#include <boost/shared_ptr.hpp>
+#include <sstream>
+#include <stdlib.h>
+#include <time.h>
+#include <string.h>
+#include <wctype.h>
+#include <ctype.h>
+#include <langinfo.h>
+#include <monetary.h>
+#include <errno.h>
+#include "../util/numeric.hpp"
+#include "all_generator.hpp"
+
+
+#if defined(__linux) || defined(__APPLE__)
+#define BOOST_LOCALE_HAVE_WCSFTIME_L
+#endif
+
+namespace boost {
+namespace locale {
+namespace impl_posix {
+
+template<typename CharType>
+class num_format : public util::base_num_format<CharType>
+{
+public:
+ typedef typename std::num_put<CharType>::iter_type iter_type;
+ typedef std::basic_string<CharType> string_type;
+ typedef CharType char_type;
+
+ num_format(boost::shared_ptr<locale_t> lc,size_t refs = 0) :
+ util::base_num_format<CharType>(refs),
+ lc_(lc)
+ {
+ }
+protected:
+
+ virtual iter_type do_format_currency(bool intl,iter_type out,std::ios_base &/*ios*/,char_type /*fill*/,long double val) const
+ {
+ char buf[4]={};
+ char const *format = intl ? "%i" : "%n";
+ errno=0;
+ ssize_t n = strfmon_l(buf,sizeof(buf),*lc_,format,static_cast<double>(val));
+ if(n >= 0)
+ return write_it(out,buf,n);
+
+ for(std::vector<char> tmp(sizeof(buf)*2);tmp.size() <= 4098;tmp.resize(tmp.size()*2)) {
+ n = strfmon_l(&tmp.front(),tmp.size(),*lc_,format,static_cast<double>(val));
+ if(n >= 0)
+ return write_it(out,&tmp.front(),n);
+ }
+ return out;
+ }
+
+ std::ostreambuf_iterator<char> write_it(std::ostreambuf_iterator<char> out,char const *ptr,size_t n) const
+ {
+ for(size_t i=0;i<n;i++)
+ *out++ = *ptr++;
+ return out;
+ }
+
+ std::ostreambuf_iterator<wchar_t> write_it(std::ostreambuf_iterator<wchar_t> out,char const *ptr,size_t n) const
+ {
+ std::wstring tmp = conv::to_utf<wchar_t>(ptr,ptr+n,nl_langinfo_l(CODESET,*lc_));
+ for(size_t i=0;i<tmp.size();i++)
+ *out++ = tmp[i];
+ return out;
+ }
+private:
+
+ boost::shared_ptr<locale_t> lc_;
+
+}; /// num_format
+
+
+template<typename CharType>
+struct ftime_traits;
+
+template<>
+struct ftime_traits<char> {
+ static std::string ftime(char const *format,const struct tm *t,locale_t lc)
+ {
+ char buf[16];
+ size_t n=strftime_l(buf,sizeof(buf),format,t,lc);
+ if(n == 0) {
+ // should be big enough
+ //
+ // Note standard specifies that in case of the error
+ // the function returns 0, however 0 may be actually
+ // valid output value of for example empty format or an
+ // output of %p in some locales
+ //
+ // Thus we try to guess that 1024 would be enough.
+ std::vector<char> v(1024);
+ n = strftime_l(&v.front(),1024,format,t,lc);
+ return std::string(&v.front(),n);
+ }
+ return std::string(buf,n);
+ }
+};
+
+template<>
+struct ftime_traits<wchar_t> {
+ static std::wstring ftime(wchar_t const *format,const struct tm *t,locale_t lc)
+ {
+ #ifdef HAVE_WCSFTIME_L
+ wchar_t buf[16];
+ size_t n=wcsftime_l(buf,sizeof(buf)/sizeof(buf[0]),format,t,lc);
+ if(n == 0) {
+ // should be big enough
+ //
+ // Note standard specifies that in case of the error
+ // the function returns 0, however 0 may be actually
+ // valid output value of for example empty format or an
+ // output of %p in some locales
+ //
+ // Thus we try to guess that 1024 would be enough.
+ std::vector<wchar_t> v(1024);
+ n = wcsftime_l(&v.front(),1024,format,t,lc);
+ }
+ return std::wstring(&v.front(),n);
+ #else
+ std::string enc = nl_langinfo_l(CODESET,lc);
+ std::string nformat = conv::from_utf<wchar_t>(format,enc);
+ std::string nres = ftime_traits<char>::ftime(nformat.c_str(),t,lc);
+ return conv::to_utf<wchar_t>(nres,enc);
+ #endif
+ }
+};
+
+
+template<typename CharType>
+class time_put_posix : public std::time_put<CharType> {
+public:
+ time_put_posix(boost::shared_ptr<locale_t> lc, size_t refs = 0) :
+ std::time_put<CharType>(refs),
+ lc_(lc)
+ {
+ }
+ virtual ~time_put_posix()
+ {
+ }
+ typedef typename std::time_put<CharType>::iter_type iter_type;
+ typedef CharType char_type;
+ typedef std::basic_string<char_type> string_type;
+
+ virtual iter_type do_put(iter_type out,std::ios_base &/*ios*/,CharType /*fill*/,std::tm const *tm,char format,char modifier) const
+ {
+ char_type fmt[4] = { '%' , modifier != 0 ? modifier : format , modifier == 0 ? '\0' : format };
+ string_type res = ftime_traits<char_type>::ftime(fmt,tm,*lc_);
+ for(unsigned i=0;i<res.size();i++)
+ *out++ = res[i];
+ return out;
+ }
+
+private:
+ boost::shared_ptr<locale_t> lc_;
+};
+
+
+template<typename CharType>
+class ctype_posix;
+
+template<>
+class ctype_posix<char> : public std::ctype<char> {
+public:
+
+ ctype_posix(boost::shared_ptr<locale_t> lc)
+ {
+ lc_ = lc;
+ }
+
+ bool do_is(mask m,char c) const
+ {
+ if((m & space) && isspace_l(c,*lc_))
+ return true;
+ if((m & print) && isprint_l(c,*lc_))
+ return true;
+ if((m & cntrl) && iscntrl_l(c,*lc_))
+ return true;
+ if((m & upper) && isupper_l(c,*lc_))
+ return true;
+ if((m & lower) && islower_l(c,*lc_))
+ return true;
+ if((m & alpha) && isalpha_l(c,*lc_))
+ return true;
+ if((m & digit) && isdigit_l(c,*lc_))
+ return true;
+ if((m & xdigit) && isxdigit_l(c,*lc_))
+ return true;
+ if((m & punct) && ispunct_l(c,*lc_))
+ return true;
+ return false;
+ }
+ char const *do_is(char const *begin,char const *end,mask *m) const
+ {
+ while(begin!=end) {
+ char c= *begin++;
+ mask r=0;
+ if(isspace_l(c,*lc_))
+ r|=space;
+ if(isprint_l(c,*lc_))
+ r|=cntrl;
+ if(iscntrl_l(c,*lc_))
+ r|=space;
+ if(isupper_l(c,*lc_))
+ r|=upper;
+ if(islower_l(c,*lc_))
+ r|=lower;
+ if(isalpha_l(c,*lc_))
+ r|=alpha;
+ if(isdigit_l(c,*lc_))
+ r|=digit;
+ if(isxdigit_l(c,*lc_))
+ r|=xdigit;
+ if(ispunct_l(c,*lc_))
+ r|=punct;
+ *m++ = r;
+ }
+ return begin;
+ }
+ char const *do_scan_is(mask m,char const *begin,char const *end) const
+ {
+ while(begin!=end)
+ if(do_is(m,*begin))
+ return begin;
+ return begin;
+ }
+ char const *do_scan_not(mask m,char const *begin,char const *end) const
+ {
+ while(begin!=end)
+ if(!do_is(m,*begin))
+ return begin;
+ return begin;
+ }
+ char toupper(char c) const
+ {
+ return toupper_l(c,*lc_);
+ }
+ char const *toupper(char *begin,char const *end) const
+ {
+ for(;begin!=end;begin++)
+ *begin = toupper_l(*begin,*lc_);
+ return begin;
+ }
+ char tolower(char c) const
+ {
+ return tolower_l(c,*lc_);
+ }
+ char const *tolower(char *begin,char const *end) const
+ {
+ for(;begin!=end;begin++)
+ *begin = tolower_l(*begin,*lc_);
+ return begin;
+ }
+private:
+ boost::shared_ptr<locale_t> lc_;
+};
+
+template<>
+class ctype_posix<wchar_t> : public std::ctype<wchar_t> {
+public:
+ ctype_posix(boost::shared_ptr<locale_t> lc)
+ {
+ lc_ = lc;
+ }
+
+ bool do_is(mask m,wchar_t c) const
+ {
+ if((m & space) && iswspace_l(c,*lc_))
+ return true;
+ if((m & print) && iswprint_l(c,*lc_))
+ return true;
+ if((m & cntrl) && iswcntrl_l(c,*lc_))
+ return true;
+ if((m & upper) && iswupper_l(c,*lc_))
+ return true;
+ if((m & lower) && iswlower_l(c,*lc_))
+ return true;
+ if((m & alpha) && iswalpha_l(c,*lc_))
+ return true;
+ if((m & digit) && iswdigit_l(c,*lc_))
+ return true;
+ if((m & xdigit) && iswxdigit_l(c,*lc_))
+ return true;
+ if((m & punct) && iswpunct_l(c,*lc_))
+ return true;
+ return false;
+ }
+ wchar_t const *do_is(wchar_t const *begin,wchar_t const *end,mask *m) const
+ {
+ while(begin!=end) {
+ wchar_t c= *begin++;
+ mask r=0;
+ if(iswspace_l(c,*lc_))
+ r|=space;
+ if(iswprint_l(c,*lc_))
+ r|=cntrl;
+ if(iswcntrl_l(c,*lc_))
+ r|=space;
+ if(iswupper_l(c,*lc_))
+ r|=upper;
+ if(iswlower_l(c,*lc_))
+ r|=lower;
+ if(iswalpha_l(c,*lc_))
+ r|=alpha;
+ if(iswdigit_l(c,*lc_))
+ r|=digit;
+ if(iswxdigit_l(c,*lc_))
+ r|=xdigit;
+ if(iswpunct_l(c,*lc_))
+ r|=punct;
+ *m++ = r;
+ }
+ return begin;
+ }
+ wchar_t const *do_scan_is(mask m,wchar_t const *begin,wchar_t const *end) const
+ {
+ while(begin!=end)
+ if(do_is(m,*begin))
+ return begin;
+ return begin;
+ }
+ wchar_t const *do_scan_not(mask m,wchar_t const *begin,wchar_t const *end) const
+ {
+ while(begin!=end)
+ if(!do_is(m,*begin))
+ return begin;
+ return begin;
+ }
+ wchar_t toupper(wchar_t c) const
+ {
+ return towupper_l(c,*lc_);
+ }
+ wchar_t const *toupper(wchar_t *begin,wchar_t const *end) const
+ {
+ for(;begin!=end;begin++)
+ *begin = towupper_l(*begin,*lc_);
+ return begin;
+ }
+ wchar_t tolower(wchar_t c) const
+ {
+ return tolower_l(c,*lc_);
+ }
+ wchar_t const *tolower(wchar_t *begin,wchar_t const *end) const
+ {
+ for(;begin!=end;begin++)
+ *begin = tolower_l(*begin,*lc_);
+ return begin;
+ }
+private:
+ boost::shared_ptr<locale_t> lc_;
+};
+
+
+
+
+struct basic_numpunct {
+ std::string grouping;
+ std::string thousands_sep;
+ std::string decimal_point;
+ basic_numpunct() :
+ decimal_point(".")
+ {
+ }
+ basic_numpunct(locale_t lc)
+ {
+ #ifdef __APPLE__
+ lconv *cv = localeconv_l(lc);
+ grouping = cv->grouping;
+ thousands_sep = cv->thousands_sep;
+ decimal_point = cv->decimal_point;
+ #else
+ thousands_sep = nl_langinfo_l(THOUSEP,lc);
+ decimal_point = nl_langinfo_l(RADIXCHAR,lc);
+ #ifdef GROUPING
+ grouping = nl_langinfo_l(GROUPING,lc);
+ #endif
+ #endif
+ }
+};
+
+template<typename CharType>
+class num_punct_posix : public std::numpunct<CharType> {
+public:
+ typedef std::basic_string<CharType> string_type;
+ num_punct_posix(locale_t lc,size_t refs = 0) :
+ std::numpunct<CharType>(refs)
+ {
+ basic_numpunct np(lc);
+ to_str(np.thousands_sep,thousands_sep_,lc);
+ to_str(np.decimal_point,decimal_point_,lc);
+ grouping_ = np.grouping;
+ if(thousands_sep_.size() > 1)
+ grouping_ = std::string();
+ if(decimal_point_.size() > 1)
+ decimal_point_ = CharType('.');
+ }
+ void to_str(std::string &s1,std::string &s2,locale_t /*lc*/)
+ {
+ s2.swap(s1);
+ }
+ void to_str(std::string &s1,std::wstring &s2,locale_t lc)
+ {
+ s2=conv::to_utf<wchar_t>(s1,nl_langinfo_l(CODESET,lc));
+ }
+ virtual CharType do_decimal_point() const
+ {
+ return *decimal_point_.c_str();
+ }
+ virtual CharType do_thousands_sep() const
+ {
+ return *thousands_sep_.c_str();
+ }
+ virtual std::string do_grouping() const
+ {
+ return grouping_;
+ }
+ virtual string_type do_truename() const
+ {
+ static const char t[]="true";
+ return string_type(t,t+sizeof(t)-1);
+ }
+ virtual string_type do_falsename() const
+ {
+ static const char t[]="false";
+ return string_type(t,t+sizeof(t)-1);
+ }
+private:
+ string_type decimal_point_;
+ string_type thousands_sep_;
+ std::string grouping_;
+};
+
+template<typename CharType>
+std::locale create_formatting_impl(std::locale const &in,boost::shared_ptr<locale_t> lc)
+{
+ std::locale tmp = std::locale(in,new num_punct_posix<CharType>(*lc));
+ tmp = std::locale(tmp,new ctype_posix<CharType>(lc));
+ tmp = std::locale(tmp,new time_put_posix<CharType>(lc));
+ tmp = std::locale(tmp,new num_format<CharType>(lc));
+ return tmp;
+}
+
+template<typename CharType>
+std::locale create_parsing_impl(std::locale const &in,boost::shared_ptr<locale_t> lc)
+{
+ std::locale tmp = std::locale(in,new num_punct_posix<CharType>(*lc));
+ tmp = std::locale(tmp,new ctype_posix<CharType>(lc));
+ tmp = std::locale(tmp,new util::base_num_parse<CharType>());
+ return tmp;
+}
+
+
+std::locale create_formatting( std::locale const &in,
+ boost::shared_ptr<locale_t> lc,
+ character_facet_type type)
+{
+ switch(type) {
+ case char_facet:
+ return create_formatting_impl<char>(in,lc);
+ case wchar_t_facet:
+ return create_formatting_impl<wchar_t>(in,lc);
+ default:
+ return in;
+ }
+}
+
+std::locale create_parsing( std::locale const &in,
+ boost::shared_ptr<locale_t> lc,
+ character_facet_type type)
+{
+ switch(type) {
+ case char_facet:
+ return create_parsing_impl<char>(in,lc);
+ case wchar_t_facet:
+ return create_parsing_impl<wchar_t>(in,lc);
+ default:
+ return in;
+ }
+}
+
+
+
+} // impl_std
+} // locale
+} //boost
+
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/posix/posix_backend.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/posix/posix_backend.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,181 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/localization_backend.hpp>
+#include <boost/locale/gnu_gettext.hpp>
+#include <boost/locale/info.hpp>
+#include "all_generator.hpp"
+#include "posix_backend.hpp"
+
+#include "../util/locale_data.hpp"
+#include "../util/gregorian.hpp"
+#include <boost/locale/util.hpp>
+#include <algorithm>
+#include <iterator>
+
+#include <langinfo.h>
+
+namespace boost {
+namespace locale {
+namespace impl_posix {
+
+ class posix_localization_backend : public localization_backend {
+ public:
+ posix_localization_backend() :
+ invalid_(true)
+ {
+ }
+ posix_localization_backend(posix_localization_backend const &other) :
+ localization_backend(),
+ paths_(other.paths_),
+ domains_(other.domains_),
+ locale_id_(other.locale_id_),
+ invalid_(true)
+ {
+ }
+ virtual posix_localization_backend *clone() const
+ {
+ return new posix_localization_backend(*this);
+ }
+
+ void set_option(std::string const &name,std::string const &value)
+ {
+ invalid_ = true;
+ if(name=="locale")
+ locale_id_ = value;
+ else if(name=="message_path")
+ paths_.push_back(value);
+ else if(name=="message_application")
+ domains_.push_back(value);
+
+ }
+ void clear_options()
+ {
+ invalid_ = true;
+ locale_id_.clear();
+ paths_.clear();
+ domains_.clear();
+ }
+
+ static void free_locale_by_ptr(locale_t *lc)
+ {
+ freelocale(*lc);
+ delete lc;
+ }
+
+ void prepare_data()
+ {
+ if(!invalid_)
+ return;
+ invalid_ = false;
+ lc_.reset();
+ real_id_ = locale_id_;
+ if(real_id_.empty())
+ real_id_ = util::get_system_locale();
+
+ locale_t tmp = newlocale(LC_ALL_MASK,real_id_.c_str(),0);
+
+ if(!tmp) {
+ tmp=newlocale(LC_ALL_MASK,"C",0);
+ }
+ if(!tmp) {
+ throw std::runtime_error("newlocale failed");
+ }
+
+ locale_t *tmp_p = 0;
+
+ try {
+ tmp_p = new locale_t();
+ }
+ catch(...) {
+ freelocale(tmp);
+ throw;
+ }
+
+ *tmp_p = tmp;
+ lc_ = boost::shared_ptr<locale_t>(tmp_p,free_locale_by_ptr);
+ }
+
+ virtual std::locale install(std::locale const &base,
+ locale_category_type category,
+ character_facet_type type = nochar_facet)
+ {
+ prepare_data();
+
+ switch(category) {
+ case convert_facet:
+ return create_convert(base,lc_,type);
+ case collation_facet:
+ return create_collate(base,lc_,type);
+ case formatting_facet:
+ return create_formatting(base,lc_,type);
+ case parsing_facet:
+ return create_parsing(base,lc_,type);
+ case codepage_facet:
+ return create_codecvt(base,nl_langinfo_l(CODESET,*lc_),type);
+ case calendar_facet:
+ {
+ util::locale_data inf;
+ inf.parse(real_id_);
+ return util::install_gregorian_calendar(base,inf.country);
+ }
+ case message_facet:
+ {
+ gnu_gettext::messages_info minf;
+ util::locale_data inf;
+ inf.parse(real_id_);
+ minf.language = inf.language;
+ minf.country = inf.country;
+ minf.variant = inf.variant;
+ minf.encoding = inf.encoding;
+ std::copy(domains_.begin(),domains_.end(),std::back_inserter<gnu_gettext::messages_info::domains_type>(minf.domains));
+ minf.paths = paths_;
+ switch(type) {
+ case char_facet:
+ return std::locale(base,gnu_gettext::create_messages_facet<char>(minf));
+ case wchar_t_facet:
+ return std::locale(base,gnu_gettext::create_messages_facet<wchar_t>(minf));
+ #ifdef BOOST_HAS_CHAR16_T
+ case char16_t_facet:
+ return std::locale(base,gnu_gettext::create_messages_facet<char16_t>(minf));
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ case char32_t_facet:
+ return std::locale(base,gnu_gettext::create_messages_facet<char32_t>(minf));
+ #endif
+ default:
+ return base;
+ }
+ }
+ case information_facet:
+ return util::create_info(base,real_id_);
+ default:
+ return base;
+ }
+ }
+
+ private:
+
+ std::vector<std::string> paths_;
+ std::vector<std::string> domains_;
+ std::string locale_id_;
+ std::string real_id_;
+
+ bool invalid_;
+ boost::shared_ptr<locale_t> lc_;
+ };
+
+ localization_backend *create_localization_backend()
+ {
+ return new posix_localization_backend();
+ }
+
+} // impl posix
+} // locale
+} // boost
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/posix/posix_backend.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/posix/posix_backend.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,20 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_POSIX_LOCALIZATION_BACKEND_HPP
+#define BOOST_LOCALE_IMPL_POSIX_LOCALIZATION_BACKEND_HPP
+namespace boost {
+ namespace locale {
+ class localization_backend;
+ namespace impl_posix {
+ localization_backend *create_localization_backend();
+ } // impl_std
+ } // locale
+} // boost
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/src/shared/date_time.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/shared/date_time.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,468 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/date_time.hpp>
+#include <boost/locale/formatting.hpp>
+#include <boost/thread.hpp>
+#include <math.h>
+
+namespace boost {
+namespace locale {
+
+using namespace period;
+
+/////////////////////////
+// Calendar
+////////////////////////
+
+calendar::calendar(std::locale const &l,std::string const &zone) :
+ locale_(l),
+ tz_(zone),
+ impl_(std::use_facet<calendar_facet>(l).create_calendar())
+{
+ impl_->set_timezone(tz_);
+}
+
+calendar::calendar(std::string const &zone) :
+ tz_(zone),
+ impl_(std::use_facet<calendar_facet>(std::locale()).create_calendar())
+{
+ impl_->set_timezone(tz_);
+}
+
+
+calendar::calendar(std::locale const &l) :
+ locale_(l),
+ tz_(time_zone::global()),
+ impl_(std::use_facet<calendar_facet>(l).create_calendar())
+{
+ impl_->set_timezone(tz_);
+}
+
+calendar::calendar(std::ios_base &ios) :
+ locale_(ios.getloc()),
+ tz_(ios_info::get(ios).time_zone()),
+ impl_(std::use_facet<calendar_facet>(locale_).create_calendar())
+{
+ impl_->set_timezone(tz_);
+
+}
+
+calendar::calendar() :
+ tz_(time_zone::global()),
+ impl_(std::use_facet<calendar_facet>(std::locale()).create_calendar())
+{
+ impl_->set_timezone(tz_);
+}
+
+calendar::~calendar()
+{
+}
+
+calendar::calendar(calendar const &other) :
+ locale_(other.locale_),
+ tz_(other.tz_),
+ impl_(other.impl_->clone())
+{
+}
+
+calendar const &calendar::operator = (calendar const &other)
+{
+ if(this !=&other) {
+ impl_.reset(other.impl_->clone());
+ locale_ = other.locale_;
+ tz_ = other.tz_;
+ }
+ return *this;
+}
+
+
+bool calendar::is_gregorian() const
+{
+ return impl_->get_option(abstract_calendar::is_gregorian)!=0;
+}
+
+std::string calendar::get_time_zone() const
+{
+ return tz_;
+}
+
+std::locale calendar::get_locale() const
+{
+ return locale_;
+}
+
+int calendar::minimum(period_type f) const
+{
+ return impl_->get_value(f.mark(),abstract_calendar::absolute_minimum);
+}
+
+int calendar::greatest_minimum(period_type f) const
+{
+ return impl_->get_value(f.mark(),abstract_calendar::greatest_minimum);
+}
+
+int calendar::maximum(period_type f) const
+{
+ return impl_->get_value(f.mark(),abstract_calendar::absolute_maximum);
+}
+
+int calendar::least_maximum(period_type f) const
+{
+ return impl_->get_value(f.mark(),abstract_calendar::least_maximum);
+}
+
+int calendar::first_day_of_week() const
+{
+ return impl_->get_value(period::marks::first_day_of_week,abstract_calendar::current);
+}
+
+bool calendar::operator==(calendar const &other) const
+{
+ return impl_->same(other.impl_.get());
+}
+
+bool calendar::operator!=(calendar const &other) const
+{
+ return !(*this==other);
+}
+
+//////////////////////////////////
+// date_time
+/////////////////
+
+date_time::date_time() :
+ impl_(std::use_facet<calendar_facet>(std::locale()).create_calendar())
+{
+ impl_->set_timezone(time_zone::global());
+}
+
+date_time::date_time(date_time const &other)
+{
+ impl_.reset(other.impl_->clone());
+}
+
+date_time::date_time(date_time const &other,date_time_period_set const &s)
+{
+ impl_.reset(other.impl_->clone());
+ for(unsigned i=0;i<s.size();i++) {
+ impl_->set_value(s[i].type.mark(),s[i].value);
+ }
+ impl_->normalize();
+}
+
+date_time const &date_time::operator = (date_time const &other)
+{
+ if(this != &other) {
+ date_time tmp(other);
+ swap(tmp);
+ }
+ return *this;
+}
+
+date_time::~date_time()
+{
+}
+
+date_time::date_time(double t) :
+ impl_(std::use_facet<calendar_facet>(std::locale()).create_calendar())
+{
+ impl_->set_timezone(time_zone::global());
+ time(t);
+}
+
+date_time::date_time(double t,calendar const &cal) :
+ impl_(cal.impl_->clone())
+{
+ time(t);
+}
+
+date_time::date_time(calendar const &cal) :
+ impl_(cal.impl_->clone())
+{
+}
+
+
+
+date_time::date_time(date_time_period_set const &s) :
+ impl_(std::use_facet<calendar_facet>(std::locale()).create_calendar())
+{
+ impl_->set_timezone(time_zone::global());
+ for(unsigned i=0;i<s.size();i++) {
+ impl_->set_value(s[i].type.mark(),s[i].value);
+ }
+ impl_->normalize();
+}
+date_time::date_time(date_time_period_set const &s,calendar const &cal) :
+ impl_(cal.impl_->clone())
+{
+ for(unsigned i=0;i<s.size();i++) {
+ impl_->set_value(s[i].type.mark(),s[i].value);
+ }
+ impl_->normalize();
+}
+
+date_time const &date_time::operator=(date_time_period_set const &s)
+{
+ for(unsigned i=0;i<s.size();i++)
+ impl_->set_value(s[i].type.mark(),s[i].value);
+ impl_->normalize();
+ return *this;
+}
+
+void date_time::set(period_type f,int v)
+{
+ impl_->set_value(f.mark(),v);
+ impl_->normalize();
+}
+
+int date_time::get(period_type f) const
+{
+ return impl_->get_value(f.mark(),abstract_calendar::current);
+}
+
+date_time date_time::operator+(date_time_period const &v) const
+{
+ date_time tmp(*this);
+ tmp+=v;
+ return tmp;
+}
+
+date_time date_time::operator-(date_time_period const &v) const
+{
+ date_time tmp(*this);
+ tmp-=v;
+ return tmp;
+}
+
+date_time date_time::operator<<(date_time_period const &v) const
+{
+ date_time tmp(*this);
+ tmp<<=v;
+ return tmp;
+}
+
+date_time date_time::operator>>(date_time_period const &v) const
+{
+ date_time tmp(*this);
+ tmp>>=v;
+ return tmp;
+}
+
+date_time const &date_time::operator+=(date_time_period const &v)
+{
+ impl_->adjust_value(v.type.mark(),abstract_calendar::move,v.value);
+ return *this;
+}
+
+date_time const &date_time::operator-=(date_time_period const &v)
+{
+ impl_->adjust_value(v.type.mark(),abstract_calendar::move,-v.value);
+ return *this;
+}
+
+date_time const &date_time::operator<<=(date_time_period const &v)
+{
+ impl_->adjust_value(v.type.mark(),abstract_calendar::roll,v.value);
+ return *this;
+}
+
+date_time const &date_time::operator>>=(date_time_period const &v)
+{
+ impl_->adjust_value(v.type.mark(),abstract_calendar::roll,-v.value);
+ return *this;
+}
+
+
+date_time date_time::operator+(date_time_period_set const &v) const
+{
+ date_time tmp(*this);
+ tmp+=v;
+ return tmp;
+}
+
+date_time date_time::operator-(date_time_period_set const &v) const
+{
+ date_time tmp(*this);
+ tmp-=v;
+ return tmp;
+}
+
+date_time date_time::operator<<(date_time_period_set const &v) const
+{
+ date_time tmp(*this);
+ tmp<<=v;
+ return tmp;
+}
+
+date_time date_time::operator>>(date_time_period_set const &v) const
+{
+ date_time tmp(*this);
+ tmp>>=v;
+ return tmp;
+}
+
+date_time const &date_time::operator+=(date_time_period_set const &v)
+{
+ for(unsigned i=0;i<v.size();i++) {
+ *this+=v[i];
+ }
+ return *this;
+}
+
+date_time const &date_time::operator-=(date_time_period_set const &v)
+{
+ for(unsigned i=0;i<v.size();i++) {
+ *this-=v[i];
+ }
+ return *this;
+}
+
+date_time const &date_time::operator<<=(date_time_period_set const &v)
+{
+ for(unsigned i=0;i<v.size();i++) {
+ *this<<=v[i];
+ }
+ return *this;
+}
+
+date_time const &date_time::operator>>=(date_time_period_set const &v)
+{
+ for(unsigned i=0;i<v.size();i++) {
+ *this>>=v[i];
+ }
+ return *this;
+}
+
+double date_time::time() const
+{
+ posix_time ptime = impl_->get_time();
+ return double(ptime.seconds)+1e-9*ptime.nanoseconds;
+}
+
+void date_time::time(double v)
+{
+ double dseconds = floor(v);
+ int64_t seconds = static_cast<int64_t>(dseconds);
+ double fract = v - dseconds;
+ int nano = static_cast<int>(fract * 1e9);
+ if(nano < 0)
+ nano = 0;
+ else if(nano >999999999)
+ nano = 999999999;
+ posix_time ptime;
+ ptime.seconds = seconds;
+ ptime.nanoseconds = nano;
+ impl_->set_time(ptime);
+}
+
+namespace {
+ int compare(posix_time const &left,posix_time const &right)
+ {
+ if(left.seconds < right.seconds)
+ return -1;
+ if(left.seconds > right.seconds)
+ return 1;
+ if(left.nanoseconds < right.nanoseconds)
+ return -1;
+ if(left.nanoseconds > right.nanoseconds)
+ return 1;
+ return 0;
+ }
+}
+
+bool date_time::operator==(date_time const &other) const
+{
+ return compare(impl_->get_time(),other.impl_->get_time()) == 0;
+}
+
+bool date_time::operator!=(date_time const &other) const
+{
+ return !(*this==other);
+}
+
+bool date_time::operator<(date_time const &other) const
+{
+ return compare(impl_->get_time(),other.impl_->get_time()) < 0;
+}
+
+bool date_time::operator>=(date_time const &other) const
+{
+ return !(*this<other);
+}
+
+bool date_time::operator>(date_time const &other) const
+{
+ return compare(impl_->get_time(),other.impl_->get_time()) > 0;
+}
+
+bool date_time::operator<=(date_time const &other) const
+{
+ return !(*this>other);
+}
+
+void date_time::swap(date_time &other)
+{
+ impl_.swap(other.impl_);
+}
+
+int date_time::difference(date_time const &other,period_type f) const
+{
+ return impl_->difference(other.impl_.get(),f.mark());
+}
+
+int date_time::maximum(period_type f) const
+{
+ return impl_->get_value(f.mark(),abstract_calendar::actual_maximum);
+}
+
+int date_time::minimum(period_type f) const
+{
+ return impl_->get_value(f.mark(),abstract_calendar::actual_minimum);
+}
+
+bool date_time::is_in_daylight_saving_time() const
+{
+ return impl_->get_option(abstract_calendar::is_dst)!=0;
+}
+
+namespace time_zone {
+ boost::mutex &tz_mutex()
+ {
+ static boost::mutex m;
+ return m;
+ }
+ std::string &tz_id()
+ {
+ static std::string id;
+ return id;
+ }
+ std::string global()
+ {
+ boost::unique_lock<boost::mutex> lock(tz_mutex());
+ std::string id = tz_id();
+ return id;
+ }
+ std::string global(std::string const &new_id)
+ {
+ boost::unique_lock<boost::mutex> lock(tz_mutex());
+ std::string id = tz_id();
+ tz_id() = new_id;
+ return id;
+ }
+}
+
+
+
+} // locale
+} // boost
+
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/src/shared/format.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/shared/format.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,188 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/format.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/info.hpp>
+#include <limits>
+#include <stdlib.h>
+
+#include <iostream>
+
+namespace boost {
+ namespace locale {
+ namespace details {
+ struct format_parser::data {
+ unsigned position;
+ std::streamsize precision;
+ std::ios_base::fmtflags flags;
+ ios_info info;
+ std::locale saved_locale;
+ bool restore_locale;
+ void *cookie;
+ void (*imbuer)(void *,std::locale const &);
+ };
+
+ format_parser::format_parser(std::ios_base &ios,void *cookie,void (*imbuer)(void *,std::locale const &)) :
+ ios_(ios),
+ d(new data)
+ {
+ d->position=std::numeric_limits<unsigned>::max();
+ d->precision=ios.precision();
+ d->flags = ios.flags();
+ d->info=ios_info::get(ios);
+ d->saved_locale = ios.getloc();
+ d->restore_locale=false;
+ d->cookie = cookie;
+ d->imbuer = imbuer;
+ }
+
+ void format_parser::imbue(std::locale const &l)
+ {
+ d->imbuer(d->cookie,l);
+ }
+
+ format_parser::~format_parser()
+ {
+ }
+
+ void format_parser::restore()
+ {
+ ios_info::get(ios_) = d->info;
+ ios_.width(0);
+ ios_.flags(d->flags);
+ if(d->restore_locale)
+ imbue(d->saved_locale);
+ }
+
+ unsigned format_parser::get_position()
+ {
+ return d->position;
+ }
+
+ void format_parser::set_one_flag(std::string const &key,std::string const &value)
+ {
+ if(key.empty())
+ return;
+ unsigned i;
+ for(i=0;i<key.size();i++) {
+ if(key[i] < '0' || '9'< key[i])
+ break;
+ }
+ if(i==key.size()) {
+ d->position=atoi(key.c_str()) - 1;
+ return;
+ }
+
+ if(key=="num" || key=="number") {
+ as::number(ios_);
+
+ if(value=="hex")
+ ios_.setf(std::ios_base::hex,std::ios_base::basefield);
+ else if(value=="oct")
+ ios_.setf(std::ios_base::oct,std::ios_base::basefield);
+ else if(value=="sci" || value=="scientific")
+ ios_.setf(std::ios_base::scientific,std::ios_base::floatfield);
+ else if(value=="fix" || value=="fixed")
+ ios_.setf(std::ios_base::fixed,std::ios_base::floatfield);
+ }
+ else if(key=="cur" || key=="currency") {
+ as::currency(ios_);
+ if(value=="iso")
+ as::currency_iso(ios_);
+ else if(value=="nat" || value=="national")
+ as::currency_national(ios_);
+ }
+ else if(key=="per" || key=="percent") {
+ as::percent(ios_);
+ }
+ else if(key=="date") {
+ as::date(ios_);
+ if(value=="s" || value=="short")
+ as::date_short(ios_);
+ else if(value=="m" || value=="medium")
+ as::date_medium(ios_);
+ else if(value=="l" || value=="long")
+ as::date_long(ios_);
+ else if(value=="f" || value=="full")
+ as::date_full(ios_);
+ }
+ else if(key=="time") {
+ as::time(ios_);
+ if(value=="s" || value=="short")
+ as::time_short(ios_);
+ else if(value=="m" || value=="medium")
+ as::time_medium(ios_);
+ else if(value=="l" || value=="long")
+ as::time_long(ios_);
+ else if(value=="f" || value=="full")
+ as::time_full(ios_);
+ }
+ else if(key=="dt" || key=="datetime") {
+ as::datetime(ios_);
+ if(value=="s" || value=="short") {
+ as::date_short(ios_);
+ as::time_short(ios_);
+ }
+ else if(value=="m" || value=="medium") {
+ as::date_medium(ios_);
+ as::time_medium(ios_);
+ }
+ else if(value=="l" || value=="long") {
+ as::date_long(ios_);
+ as::time_long(ios_);
+ }
+ else if(value=="f" || value=="full") {
+ as::date_full(ios_);
+ as::time_full(ios_);
+ }
+ }
+ else if(key=="spell" || key=="spellout") {
+ as::spellout(ios_);
+ }
+ else if(key=="ord" || key=="ordinal") {
+ as::ordinal(ios_);
+ }
+ else if(key=="left" || key=="<")
+ ios_.setf(std::ios_base::left,std::ios_base::adjustfield);
+ else if(key=="right" || key==">")
+ ios_.setf(std::ios_base::right,std::ios_base::adjustfield);
+ else if(key=="gmt")
+ as::gmt(ios_);
+ else if(key=="local")
+ as::local_time(ios_);
+ else if(key=="timezone" || key=="tz")
+ ios_info::get(ios_).time_zone(value);
+ else if(key=="w" || key=="width")
+ ios_.width(atoi(value.c_str()));
+ else if(key=="p" || key=="precision")
+ ios_.precision(atoi(value.c_str()));
+ else if(key=="locale") {
+ if(!d->restore_locale) {
+ d->saved_locale=ios_.getloc();
+ d->restore_locale=true;
+ }
+
+ std::string encoding=std::use_facet<info>(d->saved_locale).encoding();
+ generator gen;
+ gen.categories(formatting_facet);
+
+ std::locale new_loc;
+ if(value.find('.')==std::string::npos)
+ new_loc = gen(value + "." + encoding);
+ else
+ new_loc = gen(value);
+
+ imbue(new_loc);
+ }
+
+ }
+ }
+ }
+}
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/shared/formatting.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/shared/formatting.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,180 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/formatting.hpp>
+#include <boost/locale/date_time.hpp>
+#include <typeinfo>
+#include <algorithm>
+#include "ios_prop.hpp"
+
+namespace boost {
+ namespace locale {
+
+ ios_info::string_set::string_set() :
+ type(0),
+ size(0),
+ ptr(0)
+ {
+ }
+ ios_info::string_set::~string_set()
+ {
+ delete [] ptr;
+ }
+ ios_info::string_set::string_set(string_set const &other)
+ {
+ if(other.ptr!=0) {
+ ptr=new char[other.size];
+ size=other.size;
+ type=other.type;
+ memcpy(ptr,other.ptr,size);
+ }
+ else {
+ ptr=0;
+ size=0;
+ type=0;
+ }
+ }
+
+ void ios_info::string_set::swap(string_set &other)
+ {
+ std::swap(type,other.type);
+ std::swap(size,other.size);
+ std::swap(ptr,other.ptr);
+ }
+
+ ios_info::string_set const &ios_info::string_set::operator=(string_set const &other)
+ {
+ if(this!=&other) {
+ string_set tmp(other);
+ swap(tmp);
+ }
+ return *this;
+ }
+
+ struct ios_info::data {};
+
+ ios_info::ios_info() :
+ flags_(0),
+ domain_id_(0),
+ d(0)
+ {
+ time_zone_ = time_zone::global();
+ }
+ ios_info::~ios_info()
+ {
+ }
+
+ ios_info::ios_info(ios_info const &other)
+ {
+ flags_ = other.flags_;
+ domain_id_ = other.domain_id_;
+ time_zone_ = other.time_zone_;
+ datetime_ = other.datetime_;
+ }
+
+
+ ios_info const &ios_info::operator=(ios_info const &other)
+ {
+ if(this!=&other) {
+ flags_ = other.flags_;
+ domain_id_ = other.domain_id_;
+ time_zone_ = other.time_zone_;
+ datetime_ = other.datetime_;
+ }
+ return *this;
+ }
+
+ void ios_info::display_flags(uint64_t f)
+ {
+ flags_ = (flags_ & ~uint64_t(flags::display_flags_mask)) | f;
+ }
+ void ios_info::currency_flags(uint64_t f)
+ {
+ flags_ = (flags_ & ~uint64_t(flags::currency_flags_mask)) | f;
+ }
+ void ios_info::date_flags(uint64_t f)
+ {
+ flags_ = (flags_ & ~uint64_t(flags::date_flags_mask)) | f;
+ }
+ void ios_info::time_flags(uint64_t f)
+ {
+ flags_ = (flags_ & ~uint64_t(flags::time_flags_mask)) | f;
+ }
+
+ void ios_info::domain_id(int id)
+ {
+ domain_id_ = id;
+ }
+
+ void ios_info::time_zone(std::string const &tz)
+ {
+ time_zone_ = tz;
+ }
+
+ uint64_t ios_info::display_flags() const
+ {
+ return flags_ & flags::display_flags_mask;
+ }
+
+ uint64_t ios_info::currency_flags() const
+ {
+ return flags_ & flags::currency_flags_mask;
+ }
+
+ uint64_t ios_info::date_flags() const
+ {
+ return flags_ & flags::date_flags_mask;
+ }
+
+ uint64_t ios_info::time_flags() const
+ {
+ return flags_ & flags::time_flags_mask;
+ }
+
+ int ios_info::domain_id() const
+ {
+ return domain_id_;
+ }
+
+ std::string ios_info::time_zone() const
+ {
+ return time_zone_;
+ }
+
+ ios_info::string_set const &ios_info::date_time_pattern_set() const
+ {
+ return datetime_;
+ }
+
+
+ ios_info::string_set &ios_info::date_time_pattern_set()
+ {
+ return datetime_;
+ }
+
+ ios_info &ios_info::get(std::ios_base &ios)
+ {
+ return impl::ios_prop<ios_info>::get(ios);
+ }
+
+ void ios_info::on_imbue()
+ {
+ }
+
+ namespace {
+ struct initializer {
+ initializer() {
+ impl::ios_prop<ios_info>::global_init();
+ }
+ } initializer_instance;
+ } // namespace
+
+ } // locale
+} // boost
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/shared/generator.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/shared/generator.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,191 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/generator.hpp>
+#include <boost/locale/encoding.hpp>
+#include <boost/locale/localization_backend.hpp>
+#include <map>
+#include <vector>
+#include <algorithm>
+#include <boost/shared_ptr.hpp>
+#include <boost/thread.hpp>
+
+namespace boost {
+ namespace locale {
+ struct generator::data {
+ data(localization_backend_manager const &mgr) :
+ cats(all_categories),
+ chars(all_characters),
+ caching_enabled(false),
+ use_ansi_encoding(false),
+ backend_manager(mgr)
+ {
+ }
+
+ typedef std::map<std::string,std::locale> cached_type;
+ mutable cached_type cached;
+ mutable boost::mutex cached_lock;
+
+ locale_category_type cats;
+ character_facet_type chars;
+
+ bool caching_enabled;
+ bool use_ansi_encoding;
+
+ std::vector<std::string> paths;
+ std::vector<std::string> domains;
+
+ std::map<std::string,std::vector<std::string> > options;
+
+ localization_backend_manager backend_manager;
+
+ };
+
+ generator::generator(localization_backend_manager const &mgr) :
+ d(new generator::data(mgr))
+ {
+ }
+ generator::generator() :
+ d(new generator::data(localization_backend_manager::global()))
+ {
+ }
+ generator::~generator()
+ {
+ }
+
+ locale_category_type generator::categories() const
+ {
+ return d->cats;
+ }
+ void generator::categories(locale_category_type t)
+ {
+ d->cats=t;
+ }
+
+ void generator::characters(character_facet_type t)
+ {
+ d->chars=t;
+ }
+
+ character_facet_type generator::characters() const
+ {
+ return d->chars;
+ }
+
+ void generator::add_messages_domain(std::string const &domain)
+ {
+ if(std::find(d->domains.begin(),d->domains.end(),domain) == d->domains.end())
+ d->domains.push_back(domain);
+ }
+
+ void generator::set_default_messages_domain(std::string const &domain)
+ {
+ std::vector<std::string>::iterator p;
+ if((p=std::find(d->domains.begin(),d->domains.end(),domain)) == d->domains.end()) {
+ d->domains.erase(p);
+ }
+ d->domains.insert(d->domains.begin(),domain);
+ }
+
+ void generator::clear_domains()
+ {
+ d->domains.clear();
+ }
+ void generator::add_messages_path(std::string const &path)
+ {
+ d->paths.push_back(path);
+ }
+ void generator::clear_paths()
+ {
+ d->paths.clear();
+ }
+ void generator::clear_cache()
+ {
+ d->cached.clear();
+ }
+
+ std::locale generator::generate(std::string const &id) const
+ {
+ std::locale base=std::locale::classic();
+
+ return generate(base,id);
+ }
+
+ std::locale generator::generate(std::locale const &base,std::string const &id) const
+ {
+ if(d->caching_enabled) {
+ boost::unique_lock<boost::mutex> guard(d->cached_lock);
+ data::cached_type::const_iterator p = d->cached.find(id);
+ if(p!=d->cached.end()) {
+ return p->second;
+ }
+ }
+ shared_ptr<localization_backend> backend(d->backend_manager.get());
+ set_all_options(backend,id);
+
+ std::locale result = base;
+ locale_category_type facets = d->cats;
+ character_facet_type chars = d->chars;
+
+ for(locale_category_type facet = per_character_facet_first; facet <= per_character_facet_last && facet!=0; facet <<=1) {
+ if(!(facets & facet))
+ continue;
+ for(character_facet_type ch = character_first_facet ; ch<=character_last_facet;ch <<=1) {
+ if(!(ch & chars))
+ continue;
+ result = backend->install(result,facet,ch);
+ }
+ }
+ for(locale_category_type facet = non_character_facet_first; facet <= non_character_facet_last && facet!=0; facet <<=1) {
+ if(!(facets & facet))
+ continue;
+ result = backend->install(result,facet);
+ }
+ if(d->caching_enabled) {
+ boost::unique_lock<boost::mutex> guard(d->cached_lock);
+ data::cached_type::const_iterator p = d->cached.find(id);
+ if(p==d->cached.end()) {
+ d->cached[id] = result;
+ }
+ }
+ return result;
+ }
+
+ bool generator::use_ansi_encoding() const
+ {
+ return d->use_ansi_encoding;
+ }
+
+ void generator::use_ansi_encoding(bool v)
+ {
+ d->use_ansi_encoding = v;
+ }
+
+ bool generator::locale_cache_enabled() const
+ {
+ return d->caching_enabled;
+ }
+ void generator::locale_cache_enabled(bool enabled)
+ {
+ d->caching_enabled = enabled;
+ }
+
+ void generator::set_all_options(shared_ptr<localization_backend> backend,std::string const &id) const
+ {
+ backend->set_option("locale",id);
+ if(d->use_ansi_encoding)
+ backend->set_option("use_ansi_encoding","true");
+ for(size_t i=0;i<d->domains.size();i++)
+ backend->set_option("message_application",d->domains[i]);
+ for(size_t i=0;i<d->paths.size();i++)
+ backend->set_option("message_path",d->paths[i]);
+ }
+
+ } // locale
+} // boost
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/shared/ids.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/shared/ids.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,88 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/boundary.hpp>
+#include <boost/locale/collator.hpp>
+#include <boost/locale/conversion.hpp>
+#include <boost/locale/date_time_facet.hpp>
+#include <boost/locale/message.hpp>
+#include <boost/locale/info.hpp>
+
+namespace boost {
+ namespace locale {
+
+ std::locale::id info::id;
+ std::locale::id calendar_facet::id;
+
+ std::locale::id converter<char>::id;
+ std::locale::id base_message_format<char>::id;
+
+ std::locale::id converter<wchar_t>::id;
+ std::locale::id base_message_format<wchar_t>::id;
+
+ #ifdef BOOST_HAS_CHAR16_T
+
+ std::locale::id converter<char16_t>::id;
+ std::locale::id base_message_format<char16_t>::id;
+
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+
+ std::locale::id converter<char32_t>::id;
+ std::locale::id base_message_format<char32_t>::id;
+
+ #endif
+
+ namespace boundary {
+
+ std::locale::id boundary_indexing<char>::id;
+
+ std::locale::id boundary_indexing<wchar_t>::id;
+
+ #ifdef BOOST_HAS_CHAR16_T
+ std::locale::id boundary_indexing<char16_t>::id;
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+ std::locale::id boundary_indexing<char32_t>::id;
+ #endif
+ }
+
+ namespace {
+ struct install_all {
+ install_all()
+ {
+ std::locale l = std::locale::classic();
+ install_by<char>();
+ install_by<wchar_t>();
+ #ifdef BOOST_HAS_CHAR16_T
+ install_by<char16_t>();
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ install_by<char32_t>();
+ #endif
+
+ std::has_facet<info>(l);
+ std::has_facet<calendar_facet>(l);
+ }
+ template<typename Char>
+ void install_by()
+ {
+ std::locale l = std::locale::classic();
+ std::has_facet<boundary::boundary_indexing<Char> >(l);
+ std::has_facet<converter<Char> >(l);
+ std::has_facet<base_message_format<Char> >(l);
+ }
+ } installer;
+ }
+
+ }
+}
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/shared/ios_prop.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/shared/ios_prop.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,109 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_SRC_LOCALE_IOS_PROP_HPP
+#define BOOST_SRC_LOCALE_IOS_PROP_HPP
+#include <ios>
+
+namespace boost {
+ namespace locale {
+ namespace impl {
+
+ template<typename Property>
+ class ios_prop {
+ public:
+ static void set(Property const &prop,std::ios_base &ios)
+ {
+ int id=get_id();
+ if(ios.pword(id)==0) {
+ ios.pword(id) = new Property(prop);
+ ios.register_callback(callback,id);
+ }
+ else if(ios.pword(id)==invalid) {
+ ios.pword(id) = new Property(prop);
+ }
+ else {
+ *static_cast<Property *>(ios.pword(id))=prop;
+ }
+ }
+
+ static Property &get(std::ios_base &ios)
+ {
+ int id=get_id();
+ if(!has(ios))
+ set(Property(),ios);
+ return *static_cast<Property *>(ios.pword(id));
+ }
+
+ static bool has(std::ios_base &ios)
+ {
+ int id=get_id();
+ if(ios.pword(id)==0 || ios.pword(id)==invalid)
+ return false;
+ return true;
+ }
+
+ static void unset(std::ios_base &ios)
+ {
+ if(has(ios)) {
+ int id=get_id();
+ Property *p=static_cast<Property *>(ios.pword(id));
+ delete p;
+ ios.pword(id)=invalid;
+ }
+ }
+ static void global_init()
+ {
+ get_id();
+ }
+ private:
+ static void * const invalid;
+
+ static void callback(std::ios_base::event ev,std::ios_base &ios,int id)
+ {
+ switch(ev) {
+ case std::ios_base::erase_event:
+ if(!has(ios))
+ break;
+ delete reinterpret_cast<Property *>(ios.pword(id));
+ break;
+ case std::ios_base::copyfmt_event:
+ if(ios.pword(id)==invalid || ios.pword(id)==0)
+ break;
+ ios.pword(id)=new Property(*reinterpret_cast<Property *>(ios.pword(id)));
+ break;
+ case std::ios_base::imbue_event:
+ if(ios.pword(id)==invalid || ios.pword(id)==0)
+ break;
+ reinterpret_cast<Property *>(ios.pword(id))->on_imbue();
+ break;
+
+ default: ;
+ }
+ }
+ static int get_id()
+ {
+ static int id = std::ios_base::xalloc();
+ return id;
+ }
+ };
+
+ template<typename Property>
+ void * const ios_prop<Property>::invalid = (void *)(-1);
+
+
+
+ }
+ }
+}
+
+
+
+#endif
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/src/shared/localization_backend.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/shared/localization_backend.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,257 @@
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/localization_backend.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/thread.hpp>
+#include <vector>
+
+#ifdef BOOST_LOCALE_WITH_ICU
+#include "../icu/icu_backend.hpp"
+#endif
+
+#ifndef BOOST_LOCALE_NO_POSIX_BACKEND
+#include "../posix/posix_backend.hpp"
+#endif
+
+#ifndef BOOST_LOCALE_NO_STD_BACKEND
+#include "../std/std_backend.hpp"
+#endif
+
+#ifndef BOOST_LOCALE_NO_WINAPI_BACKEND
+#include "../win32/win_backend.hpp"
+#endif
+
+namespace boost {
+ namespace locale {
+ class localization_backend_manager::impl {
+ void operator = (impl const &);
+ public:
+ impl(impl const &other) :
+ default_backends_(other.default_backends_)
+ {
+ for(all_backends_type::const_iterator p=other.all_backends_.begin();p!=other.all_backends_.end();++p) {
+ all_backends_type::value_type v;
+ v.first=p->first;
+ v.second.reset(p->second->clone());
+ all_backends_.push_back(v);
+ }
+ }
+ impl() :
+ default_backends_(32,-1)
+ {
+ }
+ std::auto_ptr<localization_backend> get() const
+ {
+ std::vector<boost::shared_ptr<localization_backend> > backends;
+ for(unsigned i=0;i<all_backends_.size();i++)
+ backends.push_back(all_backends_[i].second);
+ std::auto_ptr<localization_backend> res(new actual_backend(backends,default_backends_));
+ return res;
+ }
+ void add_backend(std::string const &name,std::auto_ptr<localization_backend> backend_ptr)
+ {
+ boost::shared_ptr<localization_backend> sptr(backend_ptr);
+ if(all_backends_.empty()) {
+ all_backends_.push_back(std::make_pair(name,sptr));
+ for(unsigned i=0;i<default_backends_.size();i++)
+ default_backends_[i]=0;
+ }
+ else {
+ for(unsigned i=0;i<all_backends_.size();i++)
+ if(all_backends_[i].first == name)
+ return;
+ all_backends_.push_back(std::make_pair(name,sptr));
+ }
+ }
+
+ void select(std::string const &backend_name,locale_category_type category = all_categories)
+ {
+ unsigned id;
+ for(id=0;id<all_backends_.size();id++) {
+ if(all_backends_[id].first == backend_name)
+ break;
+ }
+ if(id==all_backends_.size())
+ return;
+ for(unsigned flag = 1,i=0;i<default_backends_.size();flag <<=1,i++) {
+ if(category & flag) {
+ default_backends_[i]=id;
+ }
+ }
+ }
+
+ void remove_all_backends()
+ {
+ all_backends_.clear();
+ for(unsigned i=0;i<default_backends_.size();i++) {
+ default_backends_[i]=-1;
+ }
+ }
+ std::vector<std::string> get_all_backends() const
+ {
+ std::vector<std::string> res;
+ all_backends_type::const_iterator p;
+ for(p=all_backends_.begin();p!=all_backends_.end();++p) {
+ res.push_back(p->first);
+ }
+ return res;
+ }
+
+ private:
+ class actual_backend : public localization_backend {
+ public:
+ actual_backend(std::vector<boost::shared_ptr<localization_backend> > const &backends,std::vector<int> const &index):
+ index_(index)
+ {
+ backends_.resize(backends.size());
+ for(unsigned i=0;i<backends.size();i++) {
+ backends_[i].reset(backends[i]->clone());
+ }
+ }
+ virtual actual_backend *clone() const
+ {
+ return new actual_backend(backends_,index_);
+ }
+ virtual void set_option(std::string const &name,std::string const &value)
+ {
+ for(unsigned i=0;i<backends_.size();i++)
+ backends_[i]->set_option(name,value);
+ }
+ virtual void clear_options()
+ {
+ for(unsigned i=0;i<backends_.size();i++)
+ backends_[i]->clear_options();
+ }
+ virtual std::locale install(std::locale const &l,locale_category_type category,character_facet_type type = nochar_facet)
+ {
+ int id;
+ unsigned v;
+ for(v=1,id=0;v!=0;v<<=1,id++) {
+ if(category == v)
+ break;
+ }
+ if(v==0)
+ return l;
+ if(unsigned(id) >= index_.size())
+ return l;
+ if(index_[id]==-1)
+ return l;
+ return backends_[index_[id]]->install(l,category,type);
+ }
+ private:
+ std::vector<boost::shared_ptr<localization_backend> > backends_;
+ std::vector<int> index_;
+ };
+
+ typedef std::vector<std::pair<std::string,boost::shared_ptr<localization_backend> > > all_backends_type;
+ all_backends_type all_backends_;
+ std::vector<int> default_backends_;
+ };
+
+
+
+ localization_backend_manager::localization_backend_manager() :
+ pimpl_(new impl())
+ {
+ }
+
+ localization_backend_manager::~localization_backend_manager()
+ {
+ }
+
+ localization_backend_manager::localization_backend_manager(localization_backend_manager const &other) :
+ pimpl_(new impl(*other.pimpl_))
+ {
+ }
+
+ localization_backend_manager const &localization_backend_manager::operator = (localization_backend_manager const &other)
+ {
+ if(this!=&other) {
+ pimpl_.reset(new impl(*other.pimpl_));
+ }
+ return *this;
+ }
+
+ std::auto_ptr<localization_backend> localization_backend_manager::get() const
+ {
+ return pimpl_->get();
+ }
+
+ void localization_backend_manager::add_backend(std::string const &name,std::auto_ptr<localization_backend> backend)
+ {
+ pimpl_->add_backend(name,backend);
+ }
+ void localization_backend_manager::remove_all_backends()
+ {
+ pimpl_->remove_all_backends();
+ }
+ std::vector<std::string> localization_backend_manager::get_all_backends() const
+ {
+ return pimpl_->get_all_backends();
+ }
+ void localization_backend_manager::select(std::string const &backend_name,locale_category_type category)
+ {
+ pimpl_->select(backend_name,category);
+ }
+
+ namespace {
+ // prevent initialization order fiasco
+ boost::mutex &localization_backend_manager_mutex()
+ {
+ static boost::mutex the_mutex;
+ return the_mutex;
+ }
+ // prevent initialization order fiasco
+ localization_backend_manager &localization_backend_manager_global()
+ {
+ static localization_backend_manager the_manager;
+ return the_manager;
+ }
+
+ struct init {
+ init() {
+ localization_backend_manager mgr;
+ std::auto_ptr<localization_backend> backend;
+ #ifdef BOOST_LOCALE_WITH_ICU
+ backend.reset(impl_icu::create_localization_backend());
+ mgr.add_backend("icu",backend);
+ #endif
+
+ #ifndef BOOST_LOCALE_NO_POSIX_BACKEND
+ backend.reset(impl_posix::create_localization_backend());
+ mgr.add_backend("posix",backend);
+ #endif
+
+ #ifndef BOOST_LOCALE_NO_WINAPI_BACKEND
+ backend.reset(impl_win::create_localization_backend());
+ mgr.add_backend("winapi",backend);
+ #endif
+
+ #ifndef BOOST_LOCALE_NO_STD_BACKEND
+ backend.reset(impl_std::create_localization_backend());
+ mgr.add_backend("std",backend);
+ #endif
+
+ localization_backend_manager::global(mgr);
+ }
+ } do_init;
+ }
+
+ localization_backend_manager localization_backend_manager::global()
+ {
+ boost::unique_lock<boost::mutex> lock(localization_backend_manager_mutex());
+ localization_backend_manager mgr = localization_backend_manager_global();
+ return mgr;
+ }
+ localization_backend_manager localization_backend_manager::global(localization_backend_manager const &in)
+ {
+ boost::unique_lock<boost::mutex> lock(localization_backend_manager_mutex());
+ localization_backend_manager mgr = localization_backend_manager_global();
+ localization_backend_manager_global() = in;
+ return mgr;
+ }
+
+
+
+ } // locale
+} // boost
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/shared/message.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/shared/message.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,782 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/config.hpp>
+#include <boost/locale/message.hpp>
+#include <boost/locale/gnu_gettext.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/locale/encoding.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(disable : 4996)
+#endif
+
+
+#if BOOST_VERSION >= 103600
+#define BOOST_LOCALE_UNORDERED_CATALOG
+#endif
+
+#ifdef BOOST_LOCALE_UNORDERED_CATALOG
+#include <boost/unordered_map.hpp>
+#else
+#include <map>
+#endif
+
+#include <iostream>
+
+
+#include "mo_hash.hpp"
+#include "mo_lambda.hpp"
+
+#include <stdio.h>
+
+#include <string.h>
+
+namespace boost {
+ namespace locale {
+ namespace gnu_gettext {
+
+ class c_file {
+ c_file(c_file const &);
+ void operator=(c_file const &);
+ public:
+
+ FILE *file;
+
+ c_file() :
+ file(0)
+ {
+ }
+ ~c_file()
+ {
+ close();
+ }
+
+ void close()
+ {
+ if(file) {
+ fclose(file);
+ file=0;
+ }
+ }
+
+ #if defined(BOOST_WINDOWS)
+
+ bool open(std::string const &file_name,std::string const &encoding)
+ {
+ close();
+
+ //
+ // Under windows we have to use "_wfopen" to get
+ // access to path's with Unicode in them
+ //
+ // As not all standard C++ libraries support nonstandard std::istream::open(wchar_t const *)
+ // we would use old and good stdio and _wfopen CRTL functions
+ //
+
+ std::wstring wfile_name = conv::to_utf<wchar_t>(file_name,encoding);
+ file = _wfopen(wfile_name.c_str(),L"rb");
+
+ return file!=0;
+ }
+
+ #else // POSIX systems do not have all this Wide API crap, as native codepages are UTF-8
+
+ // We do not use encoding as we use native file name encoding
+
+ bool open(std::string const &file_name,std::string const &/* encoding */)
+ {
+ close();
+
+ file = fopen(file_name.c_str(),"rb");
+
+ return file!=0;
+ }
+
+ #endif
+
+ };
+
+ class mo_file {
+ public:
+ typedef std::pair<char const *,char const *> pair_type;
+
+ mo_file(std::vector<char> &file) :
+ native_byteorder_(true),
+ size_(0)
+ {
+ load_file(file);
+ init();
+ }
+
+ mo_file(FILE *file) :
+ native_byteorder_(true),
+ size_(0)
+ {
+ load_file(file);
+ init();
+ }
+
+ pair_type find(char const *context_in,char const *key_in) const
+ {
+ pair_type null_pair((char const *)0,(char const *)0);
+ if(hash_size_==0)
+ return null_pair;
+ uint32_t hkey = 0;
+ if(context_in == 0)
+ hkey = pj_winberger_hash_function(key_in);
+ else {
+ pj_winberger_hash::state_type st = pj_winberger_hash::initial_state;
+ st = pj_winberger_hash::update_state(st,context_in);
+ st = pj_winberger_hash::update_state(st,'\4'); // EOT
+ st = pj_winberger_hash::update_state(st,key_in);
+ hkey = st;
+ }
+ uint32_t incr = 1 + hkey % (hash_size_-2);
+ hkey %= hash_size_;
+ uint32_t orig=hkey;
+
+
+ do {
+ uint32_t idx = get(hash_offset_ + 4*hkey);
+ /// Not found
+ if(idx == 0)
+ return null_pair;
+ /// If equal values return translation
+ if(key_equals(key(idx-1),context_in,key_in))
+ return value(idx-1);
+ /// Rehash
+ hkey=(hkey + incr) % hash_size_;
+ } while(hkey!=orig);
+ return null_pair;
+ }
+
+ static bool key_equals(char const *real_key,char const *cntx,char const *key)
+ {
+ if(cntx == 0)
+ return strcmp(real_key,key) == 0;
+ else {
+ size_t real_len = strlen(real_key);
+ size_t cntx_len = strlen(cntx);
+ size_t key_len = strlen(key);
+ if(cntx_len + 1 + key_len != real_len)
+ return false;
+ return
+ memcmp(real_key,cntx,cntx_len) == 0
+ && real_key[cntx_len] == '\4'
+ && memcmp(real_key + cntx_len + 1 ,key,key_len) == 0;
+ }
+ }
+
+ char const *key(int id) const
+ {
+ uint32_t off = get(keys_offset_ + id*8 + 4);
+ return data_ + off;
+ }
+
+ pair_type value(int id) const
+ {
+ uint32_t len = get(translations_offset_ + id*8);
+ uint32_t off = get(translations_offset_ + id*8 + 4);
+ if(off >= file_size_ || off + len >= file_size_)
+ throw std::runtime_error("Bad mo-file format");
+ return pair_type(&data_[off],&data_[off]+len);
+ }
+
+ bool has_hash() const
+ {
+ return hash_size_ != 0;
+ }
+
+ size_t size() const
+ {
+ return size_;
+ }
+
+ bool empty()
+ {
+ return size_ == 0;
+ }
+
+ private:
+ void init()
+ {
+ // Read all format sizes
+ size_=get(8);
+ keys_offset_=get(12);
+ translations_offset_=get(16);
+ hash_size_=get(20);
+ hash_offset_=get(24);
+ }
+
+ void load_file(std::vector<char> &data)
+ {
+ vdata_.swap(data);
+ file_size_ = vdata_.size();
+ data_ = &vdata_[0];
+ if(file_size_ < 4 )
+ throw std::runtime_error("invalid 'mo' file format - the file is too short");
+ uint32_t magic=0;
+ memcpy(&magic,data_,4);
+ if(magic == 0x950412de)
+ native_byteorder_ = true;
+ else if(magic == 0xde120495)
+ native_byteorder_ = false;
+ else
+ throw std::runtime_error("Invalid file format - invalid magic number");
+ }
+
+ void load_file(FILE *file)
+ {
+ uint32_t magic=0;
+ // if the size is wrong magic would be wrong
+ // ok to ingnore fread result
+ size_t four_bytes = fread(&magic,4,1,file);
+ (void)four_bytes; // shut GCC
+
+ if(magic == 0x950412de)
+ native_byteorder_ = true;
+ else if(magic == 0xde120495)
+ native_byteorder_ = false;
+ else
+ throw std::runtime_error("Invalid file format");
+
+ fseek(file,0,SEEK_END);
+ long len=ftell(file);
+ if(len < 0) {
+ throw std::runtime_error("Wrong file object");
+ }
+ fseek(file,0,SEEK_SET);
+ vdata_.resize(len+1,0); // +1 to make sure the vector is not empty
+ if(fread(&vdata_.front(),1,len,file)!=unsigned(len))
+ throw std::runtime_error("Failed to read file");
+ data_ = &vdata_[0];
+ file_size_ = len;
+ }
+
+ uint32_t get(unsigned offset) const
+ {
+ uint32_t tmp;
+ if(offset > file_size_ - 4) {
+ throw std::runtime_error("Bad mo-file format");
+ }
+ memcpy(&tmp,data_ + offset,4);
+ convert(tmp);
+ return tmp;
+ }
+
+ void convert(uint32_t &v) const
+ {
+ if(native_byteorder_)
+ return;
+ v = ((v & 0xFF) << 24)
+ | ((v & 0xFF00) << 8)
+ | ((v & 0xFF0000) >> 8)
+ | ((v & 0xFF000000) >> 24);
+ }
+
+ uint32_t keys_offset_;
+ uint32_t translations_offset_;
+ uint32_t hash_size_;
+ uint32_t hash_offset_;
+
+ char const *data_;
+ size_t file_size_;
+ std::vector<char> vdata_;
+ bool native_byteorder_;
+ size_t size_;
+ };
+
+ template<typename CharType>
+ struct mo_file_use_traits {
+ static const bool in_use = false;
+ typedef CharType char_type;
+ typedef std::pair<char_type const *,char_type const *> pair_type;
+ static pair_type use(mo_file const &/*mo*/,char_type const * /*context*/,char_type const * /*key*/)
+ {
+ return pair_type((char_type const *)(0),(char_type const *)(0));
+ }
+ };
+
+ template<>
+ struct mo_file_use_traits<char> {
+ static const bool in_use = true;
+ typedef char char_type;
+ typedef std::pair<char_type const *,char_type const *> pair_type;
+ static pair_type use(mo_file const &mo,char const *context,char const *key)
+ {
+ return mo.find(context,key);
+ }
+ };
+
+ template<typename CharType>
+ class converter {
+ public:
+ converter(std::string /*out_enc*/,std::string in_enc) :
+ in_(in_enc)
+ {
+ }
+
+ std::basic_string<CharType> operator()(char const *begin,char const *end)
+ {
+ return conv::to_utf<CharType>(begin,end,in_,conv::stop);
+ }
+
+ private:
+ std::string in_;
+ };
+
+ template<>
+ class converter<char> {
+ public:
+ converter(std::string out_enc,std::string in_enc) :
+ out_(out_enc),
+ in_(in_enc)
+ {
+ }
+
+ std::string operator()(char const *begin,char const *end)
+ {
+ return conv::between(begin,end,out_,in_,conv::stop);
+ }
+
+ private:
+ std::string out_,in_;
+ };
+
+ template<typename CharType>
+ struct message_key {
+ typedef CharType char_type;
+ typedef std::basic_string<char_type> string_type;
+
+
+ message_key(string_type const &c = string_type()) :
+ c_context_(0),
+ c_key_(0)
+ {
+ size_t pos = c.find(char_type(4));
+ if(pos == string_type::npos) {
+ key_ = c;
+ }
+ else {
+ context_ = c.substr(0,pos);
+ key_ = c.substr(pos+1);
+ }
+ }
+ message_key(char_type const *c,char_type const *k) :
+ c_key_(k)
+ {
+ static const char_type empty = 0;
+ if(c!=0)
+ c_context_ = c;
+ else
+ c_context_ = &empty;
+ }
+ bool operator < (message_key const &other) const
+ {
+ int cc = compare(context(),other.context());
+ if(cc != 0)
+ return cc < 0;
+ return compare(key(),other.key()) < 0;
+ }
+ bool operator==(message_key const &other) const
+ {
+ return compare(context(),other.context()) == 0
+ && compare(key(),other.key())==0;
+ }
+ bool operator!=(message_key const &other) const
+ {
+ return !(*this==other);
+ }
+ char_type const *context() const
+ {
+ if(c_context_)
+ return c_context_;
+ return context_.c_str();
+ }
+ char_type const *key() const
+ {
+ if(c_key_)
+ return c_key_;
+ return key_.c_str();
+ }
+ private:
+ static int compare(char_type const *l,char_type const *r)
+ {
+ typedef std::char_traits<char_type> traits_type;
+ for(;;) {
+ char_type cl = *l++;
+ char_type cr = *r++;
+ if(cl == 0 && cr == 0)
+ return 0;
+ if(traits_type::lt(cl,cr))
+ return -1;
+ if(traits_type::lt(cr,cl))
+ return 1;
+ }
+ }
+ string_type context_;
+ string_type key_;
+ char_type const *c_context_;
+ char_type const *c_key_;
+ };
+
+ template<typename CharType>
+ struct hash_function {
+ size_t operator()(message_key<CharType> const &msg) const
+ {
+ pj_winberger_hash::state_type state = pj_winberger_hash::initial_state;
+ CharType const *p = msg.context();
+ if(*p != 0) {
+ CharType const *e = p;
+ while(*e)
+ e++;
+ state = pj_winberger_hash::update_state(state,
+ static_cast<char const *>(p),
+ static_cast<char const *>(e));
+ state = pj_winberger_hash::update_state(state,'\4');
+ }
+ p = msg.key();
+ CharType const *e = p;
+ while(*e)
+ e++;
+ state = pj_winberger_hash::update_state(state,
+ static_cast<char const *>(p),
+ static_cast<char const *>(e));
+ return state;
+ }
+ };
+
+
+ // By default for wide types the conversion is not requiredyy
+ template<typename CharType>
+ CharType const *runtime_conversion(CharType const *msg,
+ std::basic_string<CharType> &/*buffer*/,
+ bool /*do_conversion*/,
+ std::string const &/*locale_encoding*/,
+ std::string const &/*key_encoding*/)
+ {
+ return msg;
+ }
+
+ // But still need to specialize for char
+ template<>
+ char const *runtime_conversion( char const *msg,
+ std::string &buffer,
+ bool do_conversion,
+ std::string const &locale_encoding,
+ std::string const &key_encoding)
+ {
+ if(!do_conversion)
+ return msg;
+ if(details::is_us_ascii_string(msg))
+ return msg;
+ std::string tmp = conv::between(msg,locale_encoding,key_encoding,conv::skip);
+ buffer.swap(tmp);
+ return buffer.c_str();
+ }
+
+ template<typename CharType>
+ class mo_message : public message_format<CharType> {
+
+ typedef CharType char_type;
+ typedef std::basic_string<CharType> string_type;
+ typedef message_key<CharType> key_type;
+ #ifdef BOOST_LOCALE_UNORDERED_CATALOG
+ typedef boost::unordered_map<key_type,string_type,hash_function<CharType> > catalog_type;
+ #else
+ typedef std::map<key_type,string_type> catalog_type;
+ #endif
+ typedef std::vector<catalog_type> catalogs_set_type;
+ typedef std::map<std::string,int> domains_map_type;
+ public:
+
+ typedef std::pair<CharType const *,CharType const *> pair_type;
+
+ virtual char_type const *get(int domain_id,char_type const *context,char_type const *id) const
+ {
+ return get_string(domain_id,context,id).first;
+ }
+
+ virtual char_type const *get(int domain_id,char_type const *context,char_type const *single_id,int n) const
+ {
+ pair_type ptr = get_string(domain_id,context,single_id);
+ if(!ptr.first)
+ return 0;
+ int form=0;
+ if(plural_forms_.at(domain_id))
+ form = (*plural_forms_[domain_id])(n);
+ else
+ form = n == 1 ? 0 : 1; // Fallback to english plural form
+
+ CharType const *p=ptr.first;
+ for(int i=0;p < ptr.second && i<form;i++) {
+ p=std::find(p,ptr.second,0);
+ if(p==ptr.second)
+ return 0;
+ ++p;
+ }
+ if(p>=ptr.second)
+ return 0;
+ return p;
+ }
+
+ virtual int domain(std::string const &domain) const
+ {
+ domains_map_type::const_iterator p=domains_.find(domain);
+ if(p==domains_.end())
+ return -1;
+ return p->second;
+ }
+
+ mo_message(messages_info const &inf)
+ {
+ std::string language = inf.language;
+ std::string variant = inf.variant;
+ std::string country = inf.country;
+ std::string encoding = inf.encoding;
+ std::string lc_cat = inf.locale_category;
+ std::vector<messages_info::domain> const &domains = inf.domains;
+ std::vector<std::string> const &search_paths = inf.paths;
+
+ //
+ // List of fallbacks: en_US_at_euro, en_at_euro, en_US, en.
+ //
+ std::vector<std::string> paths;
+
+
+ if(!variant.empty() && !country.empty())
+ paths.push_back(language + "_" + country + "@" + variant);
+
+ if(!variant.empty())
+ paths.push_back(language + "@" + variant);
+
+ if(!country.empty())
+ paths.push_back(language + "_" + country);
+
+ paths.push_back(language);
+
+ catalogs_.resize(domains.size());
+ mo_catalogs_.resize(domains.size());
+ plural_forms_.resize(domains.size());
+
+
+ for(unsigned id=0;id<domains.size();id++) {
+ std::string domain=domains[id].name;
+ std::string key_encoding = domains[id].encoding;
+ domains_[domain]=id;
+
+
+ bool found=false;
+ for(unsigned j=0;!found && j<paths.size();j++) {
+ for(unsigned i=0;!found && i<search_paths.size();i++) {
+ std::string full_path = search_paths[i]+"/"+paths[j]+"/" + lc_cat + "/"+domain+".mo";
+ found = load_file(full_path,encoding,key_encoding,id,inf.callback);
+ }
+ }
+ }
+ }
+
+ char_type const *convert(char_type const *msg,string_type &buffer) const
+ {
+ return runtime_conversion<char_type>(msg,buffer,key_conversion_required_,locale_encoding_,key_encoding_);
+ }
+
+ virtual ~mo_message()
+ {
+ }
+
+ private:
+ int compare_encodings(std::string const &left,std::string const &right)
+ {
+ return convert_encoding_name(left).compare(convert_encoding_name(right));
+ }
+
+ std::string convert_encoding_name(std::string const &in)
+ {
+ std::string result;
+ for(unsigned i=0;i<in.size();i++) {
+ char c=in[i];
+ if('A' <= c && c<='Z')
+ c=c-'A' + 'a';
+ else if(('a' <= c && c<='z') || ('0' <= c && c<='9'))
+ ;
+ else
+ continue;
+ result+=c;
+ }
+ return result;
+ }
+
+
+ bool load_file( std::string const &file_name,
+ std::string const &locale_encoding,
+ std::string const &key_encoding,
+ int id,
+ messages_info::callback_type const &callback)
+ {
+ locale_encoding_ = locale_encoding;
+ key_encoding_ = key_encoding;
+
+ key_conversion_required_ = sizeof(CharType) == 1
+ && compare_encodings(locale_encoding,key_encoding)!=0;
+
+ std::auto_ptr<mo_file> mo;
+
+ if(callback) {
+ std::vector<char> vfile = callback(file_name,locale_encoding);
+ if(vfile.empty())
+ return false;
+ mo.reset(new mo_file(vfile));
+ }
+ else {
+ c_file the_file;
+ the_file.open(file_name,locale_encoding);
+ if(!the_file.file)
+ return false;
+ mo.reset(new mo_file(the_file.file));
+ }
+
+ std::string plural = extract(mo->value(0).first,"plural=","\r\n;");
+
+ std::string mo_encoding = extract(mo->value(0).first,"charset="," \r\n;");
+
+ if(mo_encoding.empty())
+ throw std::runtime_error("Invalid mo-format, encoding is not specified");
+
+ if(!plural.empty()) {
+ std::auto_ptr<lambda::plural> ptr=lambda::compile(plural.c_str());
+ plural_forms_[id] = ptr;
+ }
+
+ if( mo_useable_directly(mo_encoding,*mo) )
+ {
+ mo_catalogs_[id]=mo;
+ }
+ else {
+ converter<CharType> cvt_value(locale_encoding,mo_encoding);
+ converter<CharType> cvt_key(key_encoding,mo_encoding);
+ for(unsigned i=0;i<mo->size();i++) {
+ char const *ckey = mo->key(i);
+ string_type skey = cvt_key(ckey,ckey+strlen(ckey));
+ key_type key(skey);
+
+ mo_file::pair_type tmp = mo->value(i);
+ string_type value = cvt_value(tmp.first,tmp.second);
+ catalogs_[id][key].swap(value);
+ }
+ }
+ return true;
+
+ }
+
+ // Check if the mo file as-is is useful
+ // 1. It is char and not wide character
+ // 2. The locale encoding and mo encoding is same
+ // 3. The source strings encoding and mo encoding is same or all
+ // mo key strings are US-ASCII
+ bool mo_useable_directly( std::string const &mo_encoding,
+ mo_file const &mo)
+ {
+ if(sizeof(CharType) != 1)
+ return false;
+ if(!mo.has_hash())
+ return false;
+ if(compare_encodings(mo_encoding.c_str(),locale_encoding_.c_str())!=0)
+ return false;
+ if(compare_encodings(mo_encoding.c_str(),key_encoding_.c_str())==0) {
+ return true;
+ }
+ for(unsigned i=0;i<mo.size();i++) {
+ if(!details::is_us_ascii_string(mo.key(i))) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+
+
+ static std::string extract(std::string const &meta,std::string const &key,char const *separator)
+ {
+ size_t pos=meta.find(key);
+ if(pos == std::string::npos)
+ return "";
+ pos+=key.size(); /// size of charset=
+ size_t end_pos = meta.find_first_of(separator,pos);
+ return meta.substr(pos,end_pos - pos);
+ }
+
+
+
+
+ pair_type get_string(int domain_id,char_type const *context,char_type const *in_id) const
+ {
+ pair_type null_pair((CharType const *)0,(CharType const *)0);
+ if(domain_id < 0 || size_t(domain_id) >= catalogs_.size())
+ return null_pair;
+ if(mo_file_use_traits<char_type>::in_use && mo_catalogs_[domain_id]) {
+ return mo_file_use_traits<char_type>::use(*mo_catalogs_[domain_id],context,in_id);
+ }
+ else {
+ key_type key(context,in_id);
+ catalog_type const &cat = catalogs_[domain_id];
+ typename catalog_type::const_iterator p = cat.find(key);
+ if(p==cat.end()) {
+ return null_pair;
+ }
+ return pair_type(p->second.data(),p->second.data()+p->second.size());
+ }
+ }
+
+ catalogs_set_type catalogs_;
+ std::vector<boost::shared_ptr<mo_file> > mo_catalogs_;
+ std::vector<boost::shared_ptr<lambda::plural> > plural_forms_;
+ domains_map_type domains_;
+
+ std::string locale_encoding_;
+ std::string key_encoding_;
+ bool key_conversion_required_;
+ };
+
+ template<>
+ message_format<char> *create_messages_facet(messages_info const &info)
+ {
+ return new mo_message<char>(info);
+ }
+
+ template<>
+ message_format<wchar_t> *create_messages_facet(messages_info const &info)
+ {
+ return new mo_message<wchar_t>(info);
+ }
+
+ #ifdef BOOST_HAS_CHAR16_T
+
+ template<>
+ message_format<char16_t> *create_messages_facet(messages_info const &info)
+ {
+ return new mo_message<char16_t>(info);
+ }
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+
+ template<>
+ message_format<char32_t> *create_messages_facet(messages_info const &info)
+ {
+ return new mo_message<char32_t>(info);
+ }
+ #endif
+
+
+ } /// gnu_gettext
+
+ } // locale
+} // boost
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/src/shared/mo_hash.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/shared/mo_hash.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,61 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#include <boost/cstdint.hpp>
+
+namespace boost {
+ namespace locale {
+ namespace gnu_gettext {
+
+ struct pj_winberger_hash {
+
+ typedef uint32_t state_type;
+
+ static const state_type initial_state = 0;
+
+ static state_type update_state(state_type value,char c)
+ {
+ value = (value << 4) + static_cast<unsigned char>(c);
+ uint32_t high = (value & 0xF0000000U);
+ if(high!=0)
+ value = (value ^ (high >> 24)) ^ high;
+ return value;
+ }
+ static state_type update_state(state_type value,char const *ptr)
+ {
+ while(*ptr)
+ value = update_state(value,*ptr++);
+ return value;
+ }
+ static state_type update_state(state_type value,char const *begin,char const *end)
+ {
+ while(begin!=end)
+ value = update_state(value,*begin++);
+ return value;
+ }
+ };
+
+ inline pj_winberger_hash::state_type pj_winberger_hash_function(char const *ptr)
+ {
+ pj_winberger_hash::state_type state = pj_winberger_hash::initial_state;
+ state = pj_winberger_hash::update_state(state,ptr);
+ return state;
+ }
+
+ inline pj_winberger_hash::state_type pj_winberger_hash_function(char const *begin,char const *end)
+ {
+ pj_winberger_hash::state_type state = pj_winberger_hash::initial_state;
+ state = pj_winberger_hash::update_state(state,begin,end);
+ return state;
+ }
+ }
+ }
+}
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/src/shared/mo_lambda.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/shared/mo_lambda.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,422 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#include "mo_lambda.hpp"
+#include <string.h>
+#include <stdlib.h>
+
+namespace boost {
+namespace locale {
+namespace gnu_gettext {
+namespace lambda {
+
+namespace { // anon
+ struct identity : public plural {
+ virtual int operator()(int n) const
+ {
+ return n;
+ };
+ virtual identity *clone() const
+ {
+ return new identity();
+ }
+ };
+
+ struct unary : public plural
+ {
+ unary(plural_ptr ptr) :
+ op1(ptr)
+ {
+ }
+ protected:
+ plural_ptr op1;
+ };
+
+
+ struct binary : public plural
+ {
+ binary(plural_ptr p1,plural_ptr p2) :
+ op1(p1),
+ op2(p2)
+ {
+ }
+ protected:
+ plural_ptr op1,op2;
+ };
+
+ struct number : public plural
+ {
+ number(int v) :
+ val(v)
+ {
+ }
+ virtual int operator()(int /*n*/) const
+ {
+ return val;
+ }
+ virtual number *clone() const
+ {
+ return new number(val);
+ }
+
+ private:
+ int val;
+ };
+
+ #define UNOP(name,oper) \
+ struct name: public unary { \
+ name(plural_ptr op) : unary(op) \
+ { \
+ }; \
+ virtual int operator()(int n) const \
+ { \
+ return oper (*op1)(n); \
+ } \
+ virtual name *clone() const \
+ { \
+ plural_ptr op1_copy(op1->clone()); \
+ return new name(op1_copy); \
+ } \
+ };
+
+ #define BINOP(name,oper) \
+ struct name : public binary \
+ { \
+ name(plural_ptr p1,plural_ptr p2) : \
+ binary(p1,p2) \
+ { \
+ } \
+ \
+ virtual int operator()(int n) const \
+ { \
+ return (*op1)(n) oper (*op2)(n); \
+ } \
+ virtual name *clone() const \
+ { \
+ plural_ptr op1_copy(op1->clone()); \
+ plural_ptr op2_copy(op2->clone()); \
+ return new name(op1_copy,op2_copy); \
+ } \
+ };
+
+ #define BINOPD(name,oper) \
+ struct name : public binary { \
+ name(plural_ptr p1,plural_ptr p2) : \
+ binary(p1,p2) \
+ { \
+ } \
+ virtual int operator()(int n) const \
+ { \
+ int v1=(*op1)(n); \
+ int v2=(*op2)(n); \
+ return v2==0 ? 0 : v1 oper v2; \
+ } \
+ virtual name *clone() const \
+ { \
+ plural_ptr op1_copy(op1->clone()); \
+ plural_ptr op2_copy(op2->clone()); \
+ return new name(op1_copy,op2_copy); \
+ } \
+ };
+
+ enum { END = 0 , SHL = 256, SHR, GTE,LTE, EQ, NEQ, AND, OR, NUM, VARIABLE };
+
+ UNOP(l_not,!)
+ UNOP(minus,-)
+ UNOP(bin_not,~)
+
+ BINOP(mul,*)
+ BINOPD(div,/)
+ BINOPD(mod,%)
+ static int level10[]={3,'*','/','%'};
+
+ BINOP(add,+)
+ BINOP(sub,-)
+ static int level9[]={2,'+','-'};
+
+ BINOP(shl,<<)
+ BINOP(shr,>>)
+ static int level8[]={2,SHL,SHR};
+
+ BINOP(gt,>)
+ BINOP(lt,<)
+ BINOP(gte,>=)
+ BINOP(lte,<=)
+ static int level7[]={4,'<','>',GTE,LTE};
+
+ BINOP(eq,==)
+ BINOP(neq,!=)
+ static int level6[]={2,EQ,NEQ};
+
+ BINOP(bin_and,&)
+ static int level5[]={1,'&'};
+
+ BINOP(bin_xor,^)
+ static int level4[]={1,'^'};
+
+ BINOP(bin_or,|)
+ static int level3[]={1,'|'};
+
+ BINOP(l_and,&&)
+ static int level2[]={1,AND};
+
+ BINOP(l_or,||)
+ static int level1[]={1,OR};
+
+ struct conditional : public plural {
+ conditional(plural_ptr p1,plural_ptr p2,plural_ptr p3) :
+ op1(p1),
+ op2(p2),
+ op3(p3)
+ {
+ }
+ virtual int operator()(int n) const
+ {
+ return (*op1)(n) ? (*op2)(n) : (*op3)(n);
+ }
+ virtual conditional *clone() const
+ {
+ plural_ptr op1_copy(op1->clone());
+ plural_ptr op2_copy(op2->clone());
+ plural_ptr op3_copy(op3->clone());
+ return new conditional(op1_copy,op2_copy,op3_copy);
+ }
+ private:
+ plural_ptr op1,op2,op3;
+ };
+
+
+ plural_ptr bin_factory(int value,plural_ptr left,plural_ptr right)
+ {
+
+ switch(value) {
+ case '/': return plural_ptr(new div(left,right));
+ case '*': return plural_ptr(new mul(left,right));
+ case '%': return plural_ptr(new mod(left,right));
+ case '+': return plural_ptr(new add(left,right));
+ case '-': return plural_ptr(new sub(left,right));
+ case SHL: return plural_ptr(new shl(left,right));
+ case SHR: return plural_ptr(new shr(left,right));
+ case '>': return plural_ptr(new gt(left,right));
+ case '<': return plural_ptr(new lt(left,right));
+ case GTE: return plural_ptr(new gte(left,right));
+ case LTE: return plural_ptr(new lte(left,right));
+ case EQ: return plural_ptr(new eq(left,right));
+ case NEQ: return plural_ptr(new neq(left,right));
+ case '&': return plural_ptr(new bin_and(left,right));
+ case '^': return plural_ptr(new bin_xor(left,right));
+ case '|': return plural_ptr(new bin_or (left,right));
+ case AND: return plural_ptr(new l_and(left,right));
+ case OR: return plural_ptr(new l_or(left,right));
+ default:
+ return plural_ptr();
+ }
+ }
+
+ plural_ptr un_factory(int value,plural_ptr op)
+ {
+ switch(value) {
+ case '!': return plural_ptr(new l_not(op));
+ case '~': return plural_ptr(new bin_not(op));
+ case '-': return plural_ptr(new minus(op));
+ default:
+ return plural_ptr();
+ }
+ }
+
+ static inline bool is_in(int v,int *p)
+ {
+ int len=*p;
+ p++;
+ while(len && *p!=v) { p++;len--; }
+ return len!=0;
+ }
+
+
+ class tokenizer {
+ public:
+ tokenizer(char const *s) { text=s; pos=0; step(); };
+ int get(int *val=NULL){
+ int iv=int_value;
+ int res=next_tocken;
+ step();
+ if(val && res==NUM){
+ *val=iv;
+ }
+ return res;
+ };
+ int next(int *val=NULL) {
+ if(val && next_tocken==NUM) {
+ *val=int_value;
+ return NUM;
+ }
+ return next_tocken;
+ }
+ private:
+ char const *text;
+ int pos;
+ int next_tocken;
+ int int_value;
+ bool is_blank(char c)
+ {
+ return c==' ' || c=='\r' || c=='\n' || c=='\t';
+ }
+ bool isdigit(char c)
+ {
+ return '0'<=c && c<='9';
+ }
+ void step()
+ {
+ while(text[pos] && is_blank(text[pos])) pos++;
+ char const *ptr=text+pos;
+ char *tmp_ptr;
+ if(strncmp(ptr,"<<",2)==0) { pos+=2; next_tocken=SHL; }
+ else if(strncmp(ptr,">>",2)==0) { pos+=2; next_tocken=SHR; }
+ else if(strncmp(ptr,"&&",2)==0) { pos+=2; next_tocken=AND; }
+ else if(strncmp(ptr,"||",2)==0) { pos+=2; next_tocken=OR; }
+ else if(strncmp(ptr,"<=",2)==0) { pos+=2; next_tocken=LTE; }
+ else if(strncmp(ptr,">=",2)==0) { pos+=2; next_tocken=GTE; }
+ else if(strncmp(ptr,"==",2)==0) { pos+=2; next_tocken=EQ; }
+ else if(strncmp(ptr,"!=",2)==0) { pos+=2; next_tocken=NEQ; }
+ else if(*ptr=='n') { pos++; next_tocken=VARIABLE; }
+ else if(isdigit(*ptr)) { int_value=strtol(text+pos,&tmp_ptr,0); pos=tmp_ptr-text; next_tocken=NUM; }
+ else if(*ptr=='\0') { next_tocken=0; }
+ else { next_tocken=*ptr; pos++; }
+ }
+ };
+
+
+ #define BINARY_EXPR(expr,hexpr,list) \
+ plural_ptr expr() \
+ { \
+ plural_ptr op1,op2; \
+ if((op1=hexpr()).get()==0) \
+ return plural_ptr(); \
+ while(is_in(t.next(),list)) { \
+ int o=t.get(); \
+ if((op2=hexpr()).get()==0) \
+ return plural_ptr(); \
+ op1=bin_factory(o,op1,op2); \
+ } \
+ return op1; \
+ }
+
+ class parser {
+ public:
+
+ parser(tokenizer &tin) : t(tin) {};
+
+ plural_ptr compile()
+ {
+ plural_ptr res=cond_expr();
+ if(res.get() && t.next()!=END) {
+ return plural_ptr();
+ };
+ return res;
+ }
+
+ private:
+
+ plural_ptr value_expr()
+ {
+ plural_ptr op;
+ if(t.next()=='(') {
+ t.get();
+ if((op=cond_expr()).get()==0)
+ return plural_ptr();
+ if(t.get()!=')')
+ return plural_ptr();
+ return op;
+ }
+ else if(t.next()==NUM) {
+ int value;
+ t.get(&value);
+ return plural_ptr(new number(value));
+ }
+ else if(t.next()==VARIABLE) {
+ t.get();
+ return plural_ptr(new identity());
+ }
+ return plural_ptr();
+ };
+
+ plural_ptr un_expr()
+ {
+ plural_ptr op1;
+ static int level_unary[]={3,'-','!','~'};
+ if(is_in(t.next(),level_unary)) {
+ int op=t.get();
+ if((op1=un_expr()).get()==0)
+ return plural_ptr();
+ switch(op) {
+ case '-':
+ return plural_ptr(new minus(op1));
+ case '!':
+ return plural_ptr(new l_not(op1));
+ case '~':
+ return plural_ptr(new bin_not(op1));
+ default:
+ return plural_ptr();
+ }
+ }
+ else {
+ return value_expr();
+ }
+ };
+
+ BINARY_EXPR(l10,un_expr,level10);
+ BINARY_EXPR(l9,l10,level9);
+ BINARY_EXPR(l8,l9,level8);
+ BINARY_EXPR(l7,l8,level7);
+ BINARY_EXPR(l6,l7,level6);
+ BINARY_EXPR(l5,l6,level5);
+ BINARY_EXPR(l4,l5,level4);
+ BINARY_EXPR(l3,l4,level3);
+ BINARY_EXPR(l2,l3,level2);
+ BINARY_EXPR(l1,l2,level1);
+
+ plural_ptr cond_expr()
+ {
+ plural_ptr cond,case1,case2;
+ if((cond=l1()).get()==0)
+ return plural_ptr();
+ if(t.next()=='?') {
+ t.get();
+ if((case1=cond_expr()).get()==0)
+ return plural_ptr();
+ if(t.get()!=':')
+ return plural_ptr();
+ if((case2=cond_expr()).get()==0)
+ return plural_ptr();
+ }
+ else {
+ return cond;
+ }
+ return plural_ptr(new conditional(cond,case1,case2));
+ }
+
+ tokenizer &t;
+
+ };
+
+} // namespace anon
+
+plural_ptr compile(char const *str)
+{
+ tokenizer t(str);
+ parser p(t);
+ return p.compile();
+}
+
+
+} // lambda
+} // gnu_gettext
+} // locale
+} // boost
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/src/shared/mo_lambda.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/shared/mo_lambda.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,38 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_SRC_LOCALE_MO_LAMBDA_HPP_INCLUDED
+#define BOOST_SRC_LOCALE_MO_LAMBDA_HPP_INCLUDED
+
+#include <memory>
+
+namespace boost {
+ namespace locale {
+ namespace gnu_gettext {
+ namespace lambda {
+
+ struct plural {
+
+ virtual int operator()(int n) const = 0;
+ virtual plural *clone() const = 0;
+ virtual ~plural()
+ {
+ }
+ };
+
+ typedef std::auto_ptr<plural> plural_ptr;
+
+ plural_ptr compile(char const *c_expression);
+
+ } // lambda
+ } // gnu_gettext
+ } // locale
+} // boost
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/src/std/all_generator.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/std/all_generator.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,54 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_STD_ALL_GENERATOR_HPP
+#define BOOST_LOCALE_IMPL_STD_ALL_GENERATOR_HPP
+
+#include <boost/locale/generator.hpp>
+#include <vector>
+
+namespace boost {
+ namespace locale {
+ namespace impl_std {
+ typedef enum {
+ utf8_none,
+ utf8_native,
+ utf8_native_with_wide,
+ utf8_from_wide
+ } utf8_support;
+
+ std::locale create_convert( std::locale const &in,
+ std::string const &locale_name,
+ character_facet_type type,
+ utf8_support utf = utf8_none);
+
+ std::locale create_collate( std::locale const &in,
+ std::string const &locale_name,
+ character_facet_type type,
+ utf8_support utf = utf8_none);
+
+ std::locale create_formatting( std::locale const &in,
+ std::string const &locale_name,
+ character_facet_type type,
+ utf8_support utf = utf8_none);
+
+ std::locale create_parsing( std::locale const &in,
+ std::string const &locale_name,
+ character_facet_type type,
+ utf8_support utf = utf8_none);
+
+ std::locale create_codecvt( std::locale const &in,
+ std::string const &locale_name,
+ character_facet_type type,
+ utf8_support utf = utf8_none);
+
+ }
+ }
+}
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/std/codecvt.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/std/codecvt.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,55 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <locale>
+#include <boost/cstdint.hpp>
+#include <boost/locale/util.hpp>
+#include "all_generator.hpp"
+#include <vector>
+namespace boost {
+namespace locale {
+namespace impl_std {
+ template<typename CharType>
+ std::locale codecvt_bychar( std::locale const &in,
+ std::string const &locale_name)
+ {
+ return std::locale(in,new std::codecvt_byname<CharType,char,mbstate_t>(locale_name.c_str()));
+ }
+
+
+ std::locale create_codecvt( std::locale const &in,
+ std::string const &locale_name,
+ character_facet_type type,
+ utf8_support utf)
+ {
+ if(utf == utf8_from_wide) {
+ return util::create_codecvt(in,util::create_utf8_converter(),type);
+ }
+ switch(type) {
+ case char_facet:
+ return codecvt_bychar<char>(in,locale_name);
+ case wchar_t_facet:
+ return codecvt_bychar<wchar_t>(in,locale_name);
+ #if defined(BOOST_HAS_CHAR16_T) && !defined(BOOST_NO_CHAR16_T_CODECVT)
+ case char16_t_facet:
+ return codecvt_bychar<char16_t>(in,locale_name);
+ #endif
+ #if defined(BOOST_HAS_CHAR32_T) && !defined(BOOST_NO_CHAR32_T_CODECVT)
+ case char32_t_facet:
+ return codecvt_bychar<char32_t>(in,locale_name);
+ #endif
+ default:
+ return in;
+ }
+ }
+
+} // impl_std
+} // locale
+} // boost
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/std/collate.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/std/collate.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,113 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <locale>
+#include <string>
+#include <ios>
+#include <boost/locale/encoding.hpp>
+#include "all_generator.hpp"
+
+namespace boost {
+namespace locale {
+namespace impl_std {
+
+class utf8_collator_from_wide : public std::collate<char> {
+public:
+ typedef std::collate<wchar_t> wfacet;
+ utf8_collator_from_wide(std::locale const &base,size_t refs = 0) :
+ std::collate<char>(refs),
+ base_(base)
+ {
+ }
+ virtual int do_compare(char const *lb,char const *le,char const *rb,char const *re) const
+ {
+ std::wstring l=conv::to_utf<wchar_t>(lb,le,"UTF-8");
+ std::wstring r=conv::to_utf<wchar_t>(rb,re,"UTF-8");
+ return std::use_facet<wfacet>(base_).compare( l.c_str(),l.c_str()+l.size(),
+ r.c_str(),r.c_str()+r.size());
+ }
+ virtual long do_hash(char const *b,char const *e) const
+ {
+ std::wstring tmp=conv::to_utf<wchar_t>(b,e,"UTF-8");
+ return std::use_facet<wfacet>(base_).hash(tmp.c_str(),tmp.c_str()+tmp.size());
+ }
+ virtual std::string do_transform(char const *b,char const *e) const
+ {
+ std::wstring tmp=conv::to_utf<wchar_t>(b,e,"UTF-8");
+ std::wstring wkey =
+ std::use_facet<wfacet>(base_).transform(tmp.c_str(),tmp.c_str()+tmp.size());
+ std::string key;
+ if(sizeof(wchar_t)==2)
+ key.reserve(wkey.size()*2);
+ else
+ key.reserve(wkey.size()*3);
+ for(unsigned i=0;i<wkey.size();i++) {
+ if(sizeof(wchar_t)==2) {
+ uint16_t tv = static_cast<uint16_t>(wkey[i]);
+ key += char(tv >> 8);
+ key += char(tv & 0xFF);
+ }
+ else { // 4
+ uint32_t tv = static_cast<uint32_t>(wkey[i]);
+ // 21 bit
+ key += char((tv >> 16) & 0xFF);
+ key += char((tv >> 8) & 0xFF);
+ key += char(tv & 0xFF);
+ }
+ }
+ return key;
+ }
+private:
+ std::locale base_;
+};
+
+std::locale create_collate( std::locale const &in,
+ std::string const &locale_name,
+ character_facet_type type,
+ utf8_support utf)
+{
+ switch(type) {
+ case char_facet:
+ {
+ if(utf == utf8_from_wide) {
+ std::locale base=
+ std::locale(std::locale::classic(),
+ new std::collate_byname<wchar_t>(locale_name.c_str()));
+ return std::locale(in,new utf8_collator_from_wide(base));
+ }
+ else
+ {
+ return std::locale(in,new std::collate_byname<char>(locale_name.c_str()));
+ }
+ }
+
+ case wchar_t_facet:
+ return std::locale(in,new std::collate_byname<wchar_t>(locale_name.c_str()));
+
+ #ifdef BOOST_HAS_CHAR16_T
+ case char16_t_facet:
+ return std::locale(in,new std::collate_byname<char16_t>(locale_name.c_str()));
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+ case char32_t_facet:
+ return std::locale(in,new std::collate_byname<char32_t>(locale_name.c_str()));
+ #endif
+ default:
+ return in;
+ }
+}
+
+
+} // impl_std
+} // locale
+} //boost
+
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/std/converter.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/std/converter.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,148 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+
+#include <boost/config.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(disable : 4996)
+#endif
+
+#include <locale>
+#include <stdexcept>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/conversion.hpp>
+#include <boost/locale/encoding.hpp>
+#include <vector>
+
+
+
+#include "all_generator.hpp"
+
+namespace boost {
+namespace locale {
+namespace impl_std {
+
+
+template<typename CharType>
+class std_converter : public converter<CharType>
+{
+public:
+ typedef CharType char_type;
+ typedef std::basic_string<char_type> string_type;
+ typedef std::ctype<char_type> ctype_type;
+ std_converter(std::locale const &base,size_t refs = 0) :
+ converter<CharType>(refs),
+ base_(base)
+ {
+ }
+ virtual string_type convert(converter_base::conversion_type how,char_type const *begin,char_type const *end,int /*flags*/ = 0) const
+ {
+ switch(how) {
+ case converter_base::upper_case:
+ case converter_base::lower_case:
+ case converter_base::case_folding:
+ {
+ ctype_type const &ct=std::use_facet<ctype_type>(base_);
+ size_t len = end - begin;
+ std::vector<char_type> res(len+1,0);
+ char_type *lbegin = &res[0];
+ std::copy(begin,end,lbegin);
+ if(how == converter_base::upper_case)
+ ct.toupper(lbegin,lbegin+len);
+ else
+ ct.tolower(lbegin,lbegin+len);
+ return string_type(lbegin,len);
+ }
+ default:
+ return string_type(begin,end-begin);
+ }
+ }
+private:
+ std::locale base_;
+};
+
+class utf8_converter : public converter<char> {
+public:
+ typedef std::ctype<char> ctype_type;
+ typedef std::ctype<wchar_t> wctype_type;
+ utf8_converter(std::locale const &base,size_t refs = 0) :
+ converter<char>(refs),
+ base_(base)
+ {
+ }
+ virtual std::string convert(converter_base::conversion_type how,char const *begin,char const *end,int /*flags*/ = 0) const
+ {
+ switch(how) {
+ case upper_case:
+ case lower_case:
+ case case_folding:
+ {
+ std::wstring tmp = conv::to_utf<wchar_t>(begin,end,"UTF-8");
+ wctype_type const &ct=std::use_facet<wctype_type>(base_);
+ size_t len = tmp.size();
+ std::vector<wchar_t> res(len+1,0);
+ wchar_t *lbegin = &res[0];
+ std::copy(tmp.c_str(),tmp.c_str()+len,lbegin);
+ if(how == upper_case)
+ ct.toupper(lbegin,lbegin+len);
+ else
+ ct.tolower(lbegin,lbegin+len);
+ return conv::from_utf<wchar_t>(lbegin,lbegin+len,"UTF-8");
+ }
+ default:
+ return std::string(begin,end-begin);
+ }
+ }
+private:
+ std::locale base_;
+};
+
+std::locale create_convert( std::locale const &in,
+ std::string const &locale_name,
+ character_facet_type type,
+ utf8_support utf)
+{
+ switch(type) {
+ case char_facet:
+ {
+ if(utf == utf8_native_with_wide || utf == utf8_from_wide) {
+ std::locale base(std::locale::classic(),new std::ctype_byname<wchar_t>(locale_name.c_str()));
+ return std::locale(in,new utf8_converter(base));
+ }
+ std::locale base(std::locale::classic(),new std::ctype_byname<char>(locale_name.c_str()));
+ return std::locale(in,new std_converter<char>(base));
+ }
+ case wchar_t_facet:
+ {
+ std::locale base(std::locale::classic(),new std::ctype_byname<wchar_t>(locale_name.c_str()));
+ return std::locale(in,new std_converter<wchar_t>(base));
+ }
+ #ifdef BOOST_HAS_CHAR16_T
+ case char16_t_facet:
+ {
+ std::locale base(std::locale::classic(),new std::ctype_byname<char16_t>(locale_name.c_str()));
+ return std::locale(in,new std_converter<char16_t>(base));
+ }
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ case char32_t_facet:
+ {
+ std::locale base(std::locale::classic(),new std::ctype_byname<char32_t>(locale_name.c_str()));
+ return std::locale(in,new std_converter<char32_t>(base));
+ }
+ #endif
+ default:
+ return in;
+ }
+}
+
+
+} // namespace impl_std
+} // locale
+} // boost
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/std/numeric.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/std/numeric.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,456 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <locale>
+#include <string>
+#include <ios>
+#include <boost/locale/formatting.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/encoding.hpp>
+#include <sstream>
+#include <stdlib.h>
+
+#include "../util/numeric.hpp"
+#include "all_generator.hpp"
+
+namespace boost {
+namespace locale {
+namespace impl_std {
+
+template<typename CharType>
+class time_put_from_base : public std::time_put<CharType> {
+public:
+ time_put_from_base(std::locale const &base, size_t refs = 0) :
+ std::time_put<CharType>(refs),
+ base_(base)
+ {
+ }
+ typedef typename std::time_put<CharType>::iter_type iter_type;
+
+ virtual iter_type do_put(iter_type out,std::ios_base &/*ios*/,CharType fill,std::tm const *tm,char format,char modifier) const
+ {
+ std::basic_stringstream<CharType> ss;
+ ss.imbue(base_);
+ return std::use_facet<std::time_put<CharType> >(base_).put(out,ss,fill,tm,format,modifier);
+ }
+private:
+ std::locale base_;
+};
+
+class utf8_time_put_from_wide : public std::time_put<char> {
+public:
+ utf8_time_put_from_wide(std::locale const &base, size_t refs = 0) :
+ std::time_put<char>(refs),
+ base_(base)
+ {
+ }
+ virtual iter_type do_put(iter_type out,std::ios_base &/*ios*/,char fill,std::tm const *tm,char format,char modifier = 0) const
+ {
+ std::basic_ostringstream<wchar_t> wtmps;
+ wtmps.imbue(base_);
+ std::use_facet<std::time_put<wchar_t> >(base_).put(wtmps,wtmps,wchar_t(fill),tm,wchar_t(format),wchar_t(modifier));
+ std::wstring wtmp=wtmps.str();
+ std::string const tmp = conv::from_utf<wchar_t>(wtmp,"UTF-8");
+ for(unsigned i=0;i<tmp.size();i++) {
+ *out++ = tmp[i];
+ }
+ return out;
+ }
+private:
+ std::locale base_;
+};
+
+class utf8_numpunct_from_wide : public std::numpunct<char> {
+public:
+ utf8_numpunct_from_wide(std::locale const &base,size_t refs = 0) : std::numpunct<char>(refs)
+ {
+ typedef std::numpunct<wchar_t> wfacet_type;
+ wfacet_type const &wfacet = std::use_facet<wfacet_type>(base);
+
+ truename_ = conv::from_utf<wchar_t>(wfacet.truename(),"UTF-8");
+ falsename_ = conv::from_utf<wchar_t>(wfacet.falsename(),"UTF-8");
+
+ wchar_t tmp_decimal_point = wfacet.decimal_point();
+ wchar_t tmp_thousands_sep = wfacet.thousands_sep();
+ std::string tmp_grouping = wfacet.grouping();
+
+ if( 32 <= tmp_thousands_sep && tmp_thousands_sep <=126 &&
+ 32 <= tmp_decimal_point && tmp_decimal_point <=126)
+ {
+ thousands_sep_ = static_cast<char>(tmp_thousands_sep);
+ decimal_point_ = static_cast<char>(tmp_decimal_point);
+ grouping_ = tmp_grouping;
+ }
+ else if(32 <= tmp_decimal_point && tmp_decimal_point <=126 && tmp_thousands_sep == 0xA0) {
+ // workaround common bug - substitute NBSP with ordinary space
+ thousands_sep_ = ' ';
+ decimal_point_ = static_cast<char>(tmp_decimal_point);
+ grouping_ = tmp_grouping;
+ }
+ else if(32 <= tmp_decimal_point && tmp_decimal_point <=126)
+ {
+ thousands_sep_=',';
+ decimal_point_ = static_cast<char>(tmp_decimal_point);
+ grouping_=std::string();
+ }
+ else {
+ thousands_sep_ = ',';
+ decimal_point_ = '.';
+ grouping_=std::string();
+ }
+ }
+
+ virtual char do_decimal_point() const
+ {
+ return decimal_point_;
+ }
+ virtual char do_thousands_sep() const
+ {
+ return thousands_sep_;
+ }
+ virtual std::string do_grouping() const
+ {
+ return grouping_;
+ }
+ virtual std::string do_truename() const
+ {
+ return truename_;
+ }
+ virtual std::string do_falsename() const
+ {
+ return falsename_;
+ }
+private:
+ std::string truename_;
+ std::string falsename_;
+ char thousands_sep_;
+ char decimal_point_;
+ std::string grouping_;
+
+};
+
+template<bool Intl>
+class utf8_moneypunct_from_wide : public std::moneypunct<char,Intl> {
+public:
+ utf8_moneypunct_from_wide(std::locale const &base,size_t refs = 0) : std::moneypunct<char,Intl>(refs)
+ {
+ typedef std::moneypunct<wchar_t,Intl> wfacet_type;
+ wfacet_type const &wfacet = std::use_facet<wfacet_type>(base);
+
+ curr_symbol_ = conv::from_utf<wchar_t>(wfacet.curr_symbol(),"UTF-8");
+ positive_sign_ = conv::from_utf<wchar_t>(wfacet.positive_sign(),"UTF-8");
+ negative_sign_ = conv::from_utf<wchar_t>(wfacet.negative_sign(),"UTF-8");
+ frac_digits_ = wfacet.frac_digits();
+ pos_format_ = wfacet.pos_format();
+ neg_format_ = wfacet.neg_format();
+
+ wchar_t tmp_decimal_point = wfacet.decimal_point();
+ wchar_t tmp_thousands_sep = wfacet.thousands_sep();
+ std::string tmp_grouping = wfacet.grouping();
+ if( 32 <= tmp_thousands_sep && tmp_thousands_sep <=126 &&
+ 32 <= tmp_decimal_point && tmp_decimal_point <=126)
+ {
+ thousands_sep_ = static_cast<char>(tmp_thousands_sep);
+ decimal_point_ = static_cast<char>(tmp_decimal_point);
+ grouping_ = tmp_grouping;
+ }
+ else if(32 <= tmp_decimal_point && tmp_decimal_point <=126 && tmp_thousands_sep == 0xA0) {
+ // workaround common bug - substitute NBSP with ordinary space
+ thousands_sep_ = ' ';
+ decimal_point_ = static_cast<char>(tmp_decimal_point);
+ grouping_ = tmp_grouping;
+ }
+ else if(32 <= tmp_decimal_point && tmp_decimal_point <=126)
+ {
+ thousands_sep_=',';
+ decimal_point_ = static_cast<char>(tmp_decimal_point);
+ grouping_=std::string();
+ }
+ else {
+ thousands_sep_ = ',';
+ decimal_point_ = '.';
+ grouping_=std::string();
+ }
+ }
+
+ virtual char do_decimal_point() const
+ {
+ return decimal_point_;
+ }
+
+ virtual char do_thousands_sep() const
+ {
+ return thousands_sep_;
+ }
+
+ virtual std::string do_grouping() const
+ {
+ return grouping_;
+ }
+
+ virtual std::string do_curr_symbol() const
+ {
+ return curr_symbol_;
+ }
+ virtual std::string do_positive_sign () const
+ {
+ return positive_sign_;
+ }
+ virtual std::string do_negative_sign() const
+ {
+ return negative_sign_;
+ }
+
+ virtual int do_frac_digits() const
+ {
+ return frac_digits_;
+ }
+
+ virtual std::money_base::pattern do_pos_format() const
+ {
+ return pos_format_;
+ }
+
+ virtual std::money_base::pattern do_neg_format() const
+ {
+ return neg_format_;
+ }
+
+private:
+ char thousands_sep_;
+ char decimal_point_;
+ std::string grouping_;
+ std::string curr_symbol_;
+ std::string positive_sign_;
+ std::string negative_sign_;
+ int frac_digits_;
+ std::money_base::pattern pos_format_,neg_format_;
+
+};
+
+class utf8_numpunct : public std::numpunct_byname<char> {
+public:
+ typedef std::numpunct_byname<char> base_type;
+ utf8_numpunct(char const *name,size_t refs = 0) :
+ std::numpunct_byname<char>(name,refs)
+ {
+ }
+ virtual char do_thousands_sep() const
+ {
+ unsigned char bs = base_type::do_thousands_sep();
+ if(bs > 127)
+ if(bs == 0xA0)
+ return ' ';
+ else
+ return 0;
+ else
+ return bs;
+ }
+ virtual std::string do_grouping() const
+ {
+ unsigned char bs = base_type::do_thousands_sep();
+ if(bs > 127 && bs != 0xA0)
+ return std::string();
+ return base_type::do_grouping();
+ }
+};
+
+template<bool Intl>
+class utf8_moneypunct : public std::moneypunct_byname<char,Intl> {
+public:
+ typedef std::moneypunct_byname<char,Intl> base_type;
+ utf8_moneypunct(char const *name,size_t refs = 0) :
+ std::moneypunct_byname<char,Intl>(name,refs)
+ {
+ }
+ virtual char do_thousands_sep() const
+ {
+ unsigned char bs = base_type::do_thousands_sep();
+ if(bs > 127)
+ if(bs == 0xA0)
+ return ' ';
+ else
+ return 0;
+ else
+ return bs;
+ }
+ virtual std::string do_grouping() const
+ {
+ unsigned char bs = base_type::do_thousands_sep();
+ if(bs > 127 && bs != 0xA0)
+ return std::string();
+ return base_type::do_grouping();
+ }
+};
+
+
+template<typename CharType>
+std::locale create_basic_parsing(std::locale const &in,std::string const &locale_name)
+{
+ std::locale tmp = std::locale(in,new std::numpunct_byname<CharType>(locale_name.c_str()));
+ tmp = std::locale(tmp,new std::moneypunct_byname<CharType,true>(locale_name.c_str()));
+ tmp = std::locale(tmp,new std::moneypunct_byname<CharType,false>(locale_name.c_str()));
+ tmp = std::locale(tmp,new std::ctype_byname<CharType>(locale_name.c_str()));
+ return tmp;
+}
+
+template<typename CharType>
+std::locale create_basic_formatting(std::locale const &in,std::string const &locale_name)
+{
+ std::locale tmp = create_basic_parsing<CharType>(in,locale_name);
+ std::locale base(locale_name.c_str());
+ tmp = std::locale(tmp,new time_put_from_base<CharType>(base));
+ return tmp;
+}
+
+
+std::locale create_formatting( std::locale const &in,
+ std::string const &locale_name,
+ character_facet_type type,
+ utf8_support utf)
+{
+ switch(type) {
+ case char_facet:
+ {
+ if(utf == utf8_from_wide ) {
+ std::locale base = std::locale(locale_name.c_str());
+
+ std::locale tmp = std::locale(in,new utf8_time_put_from_wide(base));
+ tmp = std::locale(tmp,new utf8_numpunct_from_wide(base));
+ tmp = std::locale(tmp,new utf8_moneypunct_from_wide<true>(base));
+ tmp = std::locale(tmp,new utf8_moneypunct_from_wide<false>(base));
+ return std::locale(tmp,new util::base_num_format<char>());
+ }
+ else if(utf == utf8_native) {
+ std::locale base = std::locale(locale_name.c_str());
+
+ std::locale tmp = std::locale(in,new time_put_from_base<char>(base));
+ tmp = std::locale(tmp,new utf8_numpunct(locale_name.c_str()));
+ tmp = std::locale(tmp,new utf8_moneypunct<true>(locale_name.c_str()));
+ tmp = std::locale(tmp,new utf8_moneypunct<false>(locale_name.c_str()));
+ return std::locale(tmp,new util::base_num_format<char>());
+ }
+ else if(utf == utf8_native_with_wide) {
+ std::locale base = std::locale(locale_name.c_str());
+
+ std::locale tmp = std::locale(in,new time_put_from_base<char>(base));
+ tmp = std::locale(tmp,new utf8_numpunct_from_wide(base));
+ tmp = std::locale(tmp,new utf8_moneypunct_from_wide<true>(base));
+ tmp = std::locale(tmp,new utf8_moneypunct_from_wide<false>(base));
+ return std::locale(tmp,new util::base_num_format<char>());
+ }
+ else
+ {
+ std::locale tmp = create_basic_formatting<char>(in,locale_name);
+ tmp = std::locale(tmp,new util::base_num_format<char>());
+ return tmp;
+ }
+ }
+ case wchar_t_facet:
+ {
+ std::locale tmp = create_basic_formatting<wchar_t>(in,locale_name);
+ tmp = std::locale(tmp,new util::base_num_format<wchar_t>());
+ return tmp;
+ }
+ #ifdef BOOST_HAS_CHAR16_T
+ case char16_t_facet:
+ {
+ std::locale tmp = create_basic_formatting<char16_t>(in,locale_name);
+ tmp = std::locale(tmp,new util::base_num_format<char16_t>());
+ return tmp;
+ }
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ case char32_t_facet:
+ {
+ std::locale tmp = create_basic_formatting<char32_t>(in,locale_name);
+ tmp = std::locale(tmp,new util::base_num_format<char32_t>());
+ return tmp;
+ }
+ #endif
+ default:
+ return in;
+ }
+}
+
+std::locale create_parsing( std::locale const &in,
+ std::string const &locale_name,
+ character_facet_type type,
+ utf8_support utf)
+{
+ switch(type) {
+ case char_facet:
+ {
+ if(utf == utf8_from_wide ) {
+ std::locale base = std::locale::classic();
+
+ base = std::locale(base,new std::numpunct_byname<wchar_t>(locale_name.c_str()));
+ base = std::locale(base,new std::moneypunct_byname<wchar_t,true>(locale_name.c_str()));
+ base = std::locale(base,new std::moneypunct_byname<wchar_t,false>(locale_name.c_str()));
+
+ std::locale tmp = std::locale(in,new utf8_numpunct_from_wide(base));
+ tmp = std::locale(tmp,new utf8_moneypunct_from_wide<true>(base));
+ tmp = std::locale(tmp,new utf8_moneypunct_from_wide<false>(base));
+ return std::locale(tmp,new util::base_num_parse<char>());
+ }
+ else if(utf == utf8_native) {
+ std::locale tmp = std::locale(in,new utf8_numpunct(locale_name.c_str()));
+ tmp = std::locale(tmp,new utf8_moneypunct<true>(locale_name.c_str()));
+ tmp = std::locale(tmp,new utf8_moneypunct<false>(locale_name.c_str()));
+ return std::locale(tmp,new util::base_num_parse<char>());
+ }
+ else if(utf == utf8_native_with_wide) {
+ std::locale base = std::locale(locale_name.c_str());
+
+ std::locale tmp = std::locale(in,new utf8_numpunct_from_wide(base));
+ tmp = std::locale(tmp,new utf8_moneypunct_from_wide<true>(base));
+ tmp = std::locale(tmp,new utf8_moneypunct_from_wide<false>(base));
+ return std::locale(tmp,new util::base_num_parse<char>());
+ }
+ else
+ {
+ std::locale tmp = create_basic_parsing<char>(in,locale_name);
+ tmp = std::locale(in,new util::base_num_parse<char>());
+ return tmp;
+ }
+ }
+ case wchar_t_facet:
+ {
+ std::locale tmp = create_basic_parsing<wchar_t>(in,locale_name);
+ tmp = std::locale(in,new util::base_num_parse<wchar_t>());
+ return tmp;
+ }
+ #ifdef BOOST_HAS_CHAR16_T
+ case char16_t_facet:
+ {
+ std::locale tmp = create_basic_parsing<char16_t>(in,locale_name);
+ tmp = std::locale(in,new util::base_num_parse<char16_t>());
+ return tmp;
+ }
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ case char32_t_facet:
+ {
+ std::locale tmp = create_basic_parsing<char32_t>(in,locale_name);
+ tmp = std::locale(in,new util::base_num_parse<char32_t>());
+ return tmp;
+ }
+ #endif
+ default:
+ return in;
+ }
+}
+
+
+} // impl_std
+} // locale
+} //boost
+
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/std/std_backend.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/std/std_backend.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,234 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/localization_backend.hpp>
+#include <boost/locale/gnu_gettext.hpp>
+#include "all_generator.hpp"
+#include "../util/locale_data.hpp"
+#include "../util/gregorian.hpp"
+#include <boost/locale/util.hpp>
+#include <algorithm>
+#include <iterator>
+
+#if defined(BOOST_WINDOWS)
+# ifndef NOMINMAX
+# define NOMINMAX
+# endif
+# include <windows.h>
+# include "../encoding/conv.hpp"
+# include "../win32/lcid.hpp"
+#endif
+
+#include "std_backend.hpp"
+
+namespace boost {
+namespace locale {
+namespace impl_std {
+
+ class std_localization_backend : public localization_backend {
+ public:
+ std_localization_backend() :
+ invalid_(true),
+ use_ansi_encoding_(false)
+ {
+ }
+ std_localization_backend(std_localization_backend const &other) :
+ localization_backend(),
+ paths_(other.paths_),
+ domains_(other.domains_),
+ locale_id_(other.locale_id_),
+ invalid_(true),
+ use_ansi_encoding_(other.use_ansi_encoding_)
+ {
+ }
+ virtual std_localization_backend *clone() const
+ {
+ return new std_localization_backend(*this);
+ }
+
+ void set_option(std::string const &name,std::string const &value)
+ {
+ invalid_ = true;
+ if(name=="locale")
+ locale_id_ = value;
+ else if(name=="message_path")
+ paths_.push_back(value);
+ else if(name=="message_application")
+ domains_.push_back(value);
+ else if(name=="use_ansi_encoding")
+ use_ansi_encoding_ = value == "true";
+
+ }
+ void clear_options()
+ {
+ invalid_ = true;
+ use_ansi_encoding_ = false;
+ locale_id_.clear();
+ paths_.clear();
+ domains_.clear();
+ }
+
+ void prepare_data()
+ {
+ if(!invalid_)
+ return;
+ invalid_ = false;
+ std::string lid=locale_id_;
+ if(lid.empty()) {
+ bool use_utf8 = ! use_ansi_encoding_;
+ lid = util::get_system_locale(use_utf8);
+ }
+ in_use_id_ = lid;
+ data_.parse(lid);
+ name_ = "C";
+ utf_mode_ = utf8_none;
+
+ #if defined(BOOST_WINDOWS)
+ std::pair<std::string,int> wl_inf = to_windows_name(lid);
+ std::string win_name = wl_inf.first;
+ int win_codepage = wl_inf.second;
+ #endif
+
+ if(!data_.utf8) {
+ if(loadable(lid)) {
+ name_ = lid;
+ utf_mode_ = utf8_none;
+ }
+ #if defined(BOOST_WINDOWS)
+ else if(loadable(win_name)
+ && win_codepage == conv::impl::encoding_to_windows_codepage(data_.encoding.c_str()))
+ {
+ name_ = win_name;
+ utf_mode_ = utf8_none;
+ }
+ #endif
+ }
+ else {
+ if(loadable(lid)) {
+ name_ = lid;
+ utf_mode_ = utf8_native_with_wide;
+ }
+ #if defined(BOOST_WINDOWS)
+ else if(loadable(win_name)) {
+ name_ = win_name;
+ utf_mode_ = utf8_from_wide;
+ }
+ #endif
+ }
+ }
+
+ #if defined(BOOST_WINDOWS)
+ std::pair<std::string,int> to_windows_name(std::string const &l)
+ {
+ std::pair<std::string,int> res("C",0);
+ unsigned lcid = impl_win::locale_to_lcid(l);
+ char win_lang[256] = {0};
+ char win_country[256] = {0};
+ char win_codepage[10] = {0};
+ if(GetLocaleInfoA(lcid,LOCALE_SENGLANGUAGE,win_lang,sizeof(win_lang))==0)
+ return res;
+ std::string lc_name = win_lang;
+ if(GetLocaleInfoA(lcid,LOCALE_SENGCOUNTRY,win_country,sizeof(win_country))!=0) {
+ lc_name += "_";
+ lc_name += win_country;
+ }
+
+ res.first = lc_name;
+
+ if(GetLocaleInfoA(lcid,LOCALE_IDEFAULTANSICODEPAGE,win_codepage,sizeof(win_codepage))!=0)
+ res.second = atoi(win_codepage);
+ return res;
+ }
+ #endif
+
+ bool loadable(std::string name)
+ {
+ try {
+ std::locale l(name.c_str());
+ return true;
+ }
+ catch(std::exception const &/*e*/) {
+ return false;
+ }
+ }
+
+ virtual std::locale install(std::locale const &base,
+ locale_category_type category,
+ character_facet_type type = nochar_facet)
+ {
+ prepare_data();
+
+ switch(category) {
+ case convert_facet:
+ return create_convert(base,name_,type,utf_mode_);
+ case collation_facet:
+ return create_collate(base,name_,type,utf_mode_);
+ case formatting_facet:
+ return create_formatting(base,name_,type,utf_mode_);
+ case parsing_facet:
+ return create_parsing(base,name_,type,utf_mode_);
+ case codepage_facet:
+ return create_codecvt(base,name_,type,utf_mode_);
+ case calendar_facet:
+ return util::install_gregorian_calendar(base,data_.country);
+ case message_facet:
+ {
+ gnu_gettext::messages_info minf;
+ minf.language = data_.language;
+ minf.country = data_.country;
+ minf.variant = data_.variant;
+ minf.encoding = data_.encoding;
+ std::copy(domains_.begin(),domains_.end(),std::back_inserter<gnu_gettext::messages_info::domains_type>(minf.domains));
+ minf.paths = paths_;
+ switch(type) {
+ case char_facet:
+ return std::locale(base,gnu_gettext::create_messages_facet<char>(minf));
+ case wchar_t_facet:
+ return std::locale(base,gnu_gettext::create_messages_facet<wchar_t>(minf));
+ #ifdef BOOST_HAS_CHAR16_T
+ case char16_t_facet:
+ return std::locale(base,gnu_gettext::create_messages_facet<char16_t>(minf));
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ case char32_t_facet:
+ return std::locale(base,gnu_gettext::create_messages_facet<char32_t>(minf));
+ #endif
+ default:
+ return base;
+ }
+ }
+ case information_facet:
+ return util::create_info(base,in_use_id_);
+ default:
+ return base;
+ }
+ }
+
+ private:
+
+ std::vector<std::string> paths_;
+ std::vector<std::string> domains_;
+ std::string locale_id_;
+
+ util::locale_data data_;
+ std::string name_;
+ std::string in_use_id_;
+ utf8_support utf_mode_;
+ bool invalid_;
+ bool use_ansi_encoding_;
+ };
+
+ localization_backend *create_localization_backend()
+ {
+ return new std_localization_backend();
+ }
+
+} // impl icu
+} // locale
+} // boost
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/std/std_backend.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/std/std_backend.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,20 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_STD_LOCALIZATION_BACKEND_HPP
+#define BOOST_LOCALE_IMPL_STD_LOCALIZATION_BACKEND_HPP
+namespace boost {
+ namespace locale {
+ class localization_backend;
+ namespace impl_std {
+ localization_backend *create_localization_backend();
+ } // impl_std
+ } // locale
+} // boost
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/src/util/codecvt_converter.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/util/codecvt_converter.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,783 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/generator.hpp>
+#include <boost/locale/encoding.hpp>
+
+#include "../encoding/conv.hpp"
+
+#include <boost/locale/util.hpp>
+
+#ifdef BOOST_MSVC
+# pragma warning(disable : 4244 4996) // loose data
+#endif
+
+#include <cstddef>
+#include <string.h>
+#include <vector>
+#include <algorithm>
+
+//#define DEBUG_CODECVT
+
+#ifdef DEBUG_CODECVT
+#include <iostream>
+#endif
+
+namespace boost {
+namespace locale {
+namespace util {
+
+ class utf8_converter : public base_converter {
+ public:
+ virtual int max_len() const
+ {
+ return 4;
+ }
+
+ virtual utf8_converter *clone() const
+ {
+ return new utf8_converter();
+ }
+
+ bool is_thread_safe() const
+ {
+ return true;
+ }
+
+ virtual uint32_t to_unicode(char const *&begin,char const *end)
+ {
+ unsigned char const *p=reinterpret_cast<unsigned char const *>(begin);
+ unsigned char const *e=reinterpret_cast<unsigned char const *>(end);
+ if(p==e)
+ return incomplete;
+ unsigned char c=*p++;
+ unsigned char seq0,seq1=0,seq2=0,seq3=0;
+ seq0=c;
+ int len=1;
+ if((c & 0xC0) == 0xC0) {
+ if(p==e)
+ return incomplete;
+ seq1=*p++;
+ len=2;
+ }
+ if((c & 0xE0) == 0xE0) {
+ if(p==e)
+ return incomplete;
+ seq2=*p++;
+ len=3;
+ }
+ if((c & 0xF0) == 0xF0) {
+ if(p==e)
+ return incomplete;
+ seq3=*p++;
+ len=4;
+ }
+ switch(len) {
+ case 1:
+ if(seq0 <= 0x7F)
+ break;
+ return illegal;
+ case 2: // non-overloading 2 bytes
+ if( 0xC2 <= seq0 && seq0 <= 0xDF
+ && 0x80 <= seq1 && seq1<= 0xBF)
+ {
+ break;
+ }
+ return illegal;
+ case 3:
+ if(seq0==0xE0) { // exclude overloading
+ if(0xA0 <=seq1 && seq1<= 0xBF && 0x80 <=seq2 && seq2<=0xBF)
+ break;
+ }
+ else if( (0xE1 <= seq0 && seq0 <=0xEC) || seq0==0xEE || seq0==0xEF) { // stright 3 bytes
+ if(0x80 <=seq1 && seq1<=0xBF &&
+ 0x80 <=seq2 && seq2<=0xBF)
+ break;
+ }
+ else if(seq0 == 0xED) { // exclude surrogates
+ if( 0x80 <=seq1 && seq1<=0x9F &&
+ 0x80 <=seq2 && seq2<=0xBF)
+ break;
+ }
+ return illegal;
+ case 4:
+ switch(seq0) {
+ case 0xF0: // planes 1-3
+ if( 0x90 <=seq1 && seq1<=0xBF &&
+ 0x80 <=seq2 && seq2<=0xBF &&
+ 0x80 <=seq3 && seq3<=0xBF)
+ break;
+ return illegal;
+ case 0xF1: // planes 4-15
+ case 0xF2:
+ case 0xF3:
+ if( 0x80 <=seq1 && seq1<=0xBF &&
+ 0x80 <=seq2 && seq2<=0xBF &&
+ 0x80 <=seq3 && seq3<=0xBF)
+ break;
+ return illegal;
+ case 0xF4: // pane 16
+ if( 0x80 <=seq1 && seq1<=0x8F &&
+ 0x80 <=seq2 && seq2<=0xBF &&
+ 0x80 <=seq3 && seq3<=0xBF)
+ break;
+ return illegal;
+ default:
+ return illegal;
+ }
+ }
+ begin=reinterpret_cast<char const *>(p);
+ switch(len) {
+ case 1:
+ return seq0;
+ case 2:
+ return ((seq0 & 0x1F) << 6) | (seq1 & 0x3F);
+ case 3:
+ return ((seq0 & 0x0F) << 12) | ((seq1 & 0x3F) << 6) | (seq2 & 0x3F) ;
+ default: // can be only 4
+ return ((seq0 & 0x07) << 18) | ((seq1 & 0x3F) << 12) | ((seq2 & 0x3F) << 6) | (seq3 & 0x3F) ;
+ }
+ }
+ virtual uint32_t from_unicode(uint32_t u,char *begin,char const *end)
+ {
+ if(u>0x10ffff)
+ return illegal;
+ if(0xd800 <=u && u<= 0xdfff) // surrogates
+ return illegal;
+ ptrdiff_t d=end-begin;
+ if(u <=0x7F) {
+ if(d>=1) {
+ *begin++=u;
+ return 1;
+ }
+ else
+ return incomplete;
+ }
+ else if(u <= 0x7FF) {
+ if(d>=2) {
+ *begin++=(u >> 6) | 0xC0;
+ *begin++=(u & 0x3F) | 0x80;
+ return 2;
+ }
+ else
+ return incomplete;
+ }
+ else if(u <= 0xFFFF) {
+ if(d>=3) {
+ *begin++=(u >> 12) | 0xE0;
+ *begin++=((u >> 6) & 0x3F) | 0x80;
+ *begin++=(u & 0x3F) | 0x80;
+ return 3;
+ }
+ else
+ return incomplete;
+ }
+ else {
+ if(d>=4) {
+ *begin++=(u >> 18) | 0xF0;
+ *begin++=((u >> 12) & 0x3F) | 0x80;
+ *begin++=((u >> 6) & 0x3F) | 0x80;
+ *begin++=(u & 0x3F) | 0x80;
+ return 4;
+ }
+ else
+ return incomplete;
+ }
+ }
+ }; // utf8_converter
+
+ class simple_converter : public base_converter {
+ public:
+
+ virtual ~simple_converter()
+ {
+ }
+
+ simple_converter(std::string const &encoding)
+ {
+ for(unsigned i=0;i<128;i++)
+ to_unicode_tbl_[i]=i;
+ for(unsigned i=128;i<256;i++) {
+ char buf[2] = { char(i) , 0 };
+ try {
+ std::wstring const tmp = conv::to_utf<wchar_t>(buf,buf+1,encoding,conv::stop);
+ if(tmp.size() == 1) {
+ to_unicode_tbl_[i] = tmp[0];
+ }
+ else {
+ to_unicode_tbl_[i] = illegal;
+ }
+ }
+ catch(conv::conversion_error const &/*e*/) {
+ to_unicode_tbl_[i] = illegal;
+ }
+ }
+ from_unicode_tbl_.resize(256);
+ for(unsigned i=0;i<256;i++) {
+ from_unicode_tbl_[to_unicode_tbl_[i] & 0xFF].push_back(i);
+ }
+ }
+
+ virtual int max_len() const
+ {
+ return 1;
+ }
+
+ virtual bool is_thread_safe() const
+ {
+ return true;
+ }
+ virtual base_converter *clone() const
+ {
+ return new simple_converter(*this);
+ }
+ virtual uint32_t to_unicode(char const *&begin,char const *end)
+ {
+ if(begin==end)
+ return incomplete;
+ unsigned char c = *begin++;
+ return to_unicode_tbl_[c];
+ }
+ virtual uint32_t from_unicode(uint32_t u,char *begin,char const *end)
+ {
+ if(begin==end)
+ return incomplete;
+ std::vector<unsigned char> const &tbl = from_unicode_tbl_[u & 0xFF];
+ for(std::vector<unsigned char>::const_iterator p=tbl.begin();p!=tbl.end();++p) {
+ if(to_unicode_tbl_[*p]==u) {
+ *begin++ = *p;
+ return 1;
+ }
+ }
+ return illegal;
+ }
+ private:
+ uint32_t to_unicode_tbl_[256];
+ std::vector<std::vector<unsigned char> > from_unicode_tbl_;
+ };
+
+ namespace {
+ char const *simple_encoding_table[] = {
+ "cp1250",
+ "cp1251",
+ "cp1252",
+ "cp1253",
+ "cp1254",
+ "cp1255",
+ "cp1256",
+ "cp1257",
+ "iso88591",
+ "iso885913",
+ "iso885915",
+ "iso88592",
+ "iso88593",
+ "iso88594",
+ "iso88595",
+ "iso88596",
+ "iso88597",
+ "iso88598",
+ "iso88599",
+ "koi8r",
+ "koi8u",
+ "usascii",
+ "windows1250",
+ "windows1251",
+ "windows1252",
+ "windows1253",
+ "windows1254",
+ "windows1255",
+ "windows1256",
+ "windows1257"
+ };
+
+ bool compare_strings(char const *l,char const *r)
+ {
+ return strcmp(l,r) < 0;
+ }
+ }
+
+
+ std::auto_ptr<base_converter> create_simple_converter(std::string const &encoding)
+ {
+ std::auto_ptr<base_converter> res;
+ std::string norm = conv::impl::normalize_encoding(encoding.c_str());
+ if(std::binary_search<char const **>( simple_encoding_table,
+ simple_encoding_table + sizeof(simple_encoding_table)/sizeof(char const *),
+ norm.c_str(),
+ compare_strings))
+ {
+ res.reset(new simple_converter(encoding));
+ }
+ return res;
+ }
+
+
+
+ std::auto_ptr<base_converter> create_utf8_converter()
+ {
+ std::auto_ptr<base_converter> res(new utf8_converter());
+ return res;
+ }
+
+ //
+ // Traits for sizeof char
+ //
+ template<typename CharType,int n=sizeof(CharType)>
+ struct uchar_traits;
+
+ template<typename CharType>
+ struct uchar_traits<CharType,2> {
+ typedef uint16_t uint_type;
+ };
+ template<typename CharType>
+ struct uchar_traits<CharType,4> {
+ typedef uint32_t uint_type;
+ };
+
+ // Real codecvt
+
+ template<typename CharType>
+ class code_converter : public std::codecvt<CharType,char,mbstate_t>
+ {
+ public:
+ code_converter(std::auto_ptr<base_converter> cvt,size_t refs = 0) :
+ std::codecvt<CharType,char,mbstate_t>(refs),
+ cvt_(cvt)
+ {
+ max_len_ = cvt_->max_len();
+ }
+ protected:
+
+ typedef CharType uchar;
+
+ virtual std::codecvt_base::result do_unshift(std::mbstate_t &s,char *from,char * /*to*/,char *&next) const
+ {
+ uint16_t &state = *reinterpret_cast<uint16_t *>(&s);
+#ifdef DEBUG_CODECVT
+ std::cout << "Entering unshift " << std::hex << state << std::dec << std::endl;
+#endif
+ if(state != 0)
+ return std::codecvt_base::error;
+ next=from;
+ return std::codecvt_base::ok;
+ }
+ virtual int do_encoding() const throw()
+ {
+ return 0;
+ }
+ virtual int do_max_length() const throw()
+ {
+ return max_len_;
+ }
+ virtual bool do_always_noconv() const throw()
+ {
+ return false;
+ }
+
+ virtual std::codecvt_base::result
+ do_in( std::mbstate_t &state,
+ char const *from,
+ char const *from_end,
+ char const *&from_next,
+ uchar *uto,
+ uchar *uto_end,
+ uchar *&uto_next) const
+ {
+ typedef typename uchar_traits<uchar>::uint_type uint_type;
+ uint_type *to=reinterpret_cast<uint_type *>(uto);
+ uint_type *to_end=reinterpret_cast<uint_type *>(uto_end);
+ uint_type *&to_next=reinterpret_cast<uint_type *&>(uto_next);
+ return do_real_in(state,from,from_end,from_next,to,to_end,to_next);
+ }
+
+ virtual int
+ do_length( std::mbstate_t &state,
+ char const *from,
+ char const *from_end,
+ size_t max) const
+ {
+ char const *from_next=from;
+ std::vector<uchar> chrs(max+1);
+ uchar *to=&chrs.front();
+ uchar *to_end=to+max;
+ uchar *to_next=to;
+ do_in(state,from,from_end,from_next,to,to_end,to_next);
+ return from_next-from;
+ }
+
+ virtual std::codecvt_base::result
+ do_out( std::mbstate_t &state,
+ uchar const *ufrom,
+ uchar const *ufrom_end,
+ uchar const *&ufrom_next,
+ char *to,
+ char *to_end,
+ char *&to_next) const
+ {
+ typedef typename uchar_traits<uchar>::uint_type uint_type;
+ uint_type const *from=reinterpret_cast<uint_type const *>(ufrom);
+ uint_type const *from_end=reinterpret_cast<uint_type const *>(ufrom_end);
+ uint_type const *&from_next=reinterpret_cast<uint_type const *&>(ufrom_next);
+ return do_real_out(state,from,from_end,from_next,to,to_end,to_next);
+ }
+
+
+ private:
+
+ //
+ // Implementation for UTF-32
+ //
+ std::codecvt_base::result
+ do_real_in( std::mbstate_t &/*state*/,
+ char const *from,
+ char const *from_end,
+ char const *&from_next,
+ uint32_t *to,
+ uint32_t *to_end,
+ uint32_t *&to_next) const
+ {
+ std::auto_ptr<base_converter> cvtp;
+ base_converter *cvt = 0;
+ if(cvt_->is_thread_safe()) {
+ cvt = cvt_.get();
+ }
+ else {
+ cvtp.reset(cvt_->clone());
+ cvt = cvtp.get();
+ }
+ std::codecvt_base::result r=std::codecvt_base::ok;
+ while(to < to_end && from < from_end)
+ {
+ uint32_t ch=cvt->to_unicode(from,from_end);
+ if(ch==base_converter::illegal) {
+ r=std::codecvt_base::error;
+ break;
+ }
+ if(ch==base_converter::incomplete) {
+ r=std::codecvt_base::partial;
+ break;
+ }
+ *to++=ch;
+ }
+ from_next=from;
+ to_next=to;
+ if(r!=std::codecvt_base::ok)
+ return r;
+ if(from!=from_end)
+ return std::codecvt_base::partial;
+ return r;
+ }
+
+ //
+ // Implementation for UTF-32
+ //
+ std::codecvt_base::result
+ do_real_out(std::mbstate_t &/*state*/, // state is not used there
+ uint32_t const *from,
+ uint32_t const *from_end,
+ uint32_t const *&from_next,
+ char *to,
+ char *to_end,
+ char *&to_next) const
+ {
+ std::auto_ptr<base_converter> cvtp;
+ base_converter *cvt = 0;
+ if(cvt_->is_thread_safe()) {
+ cvt = cvt_.get();
+ }
+ else {
+ cvtp.reset(cvt_->clone());
+ cvt = cvtp.get();
+ }
+
+ std::codecvt_base::result r=std::codecvt_base::ok;
+ while(to < to_end && from < from_end)
+ {
+ uint32_t len=cvt->from_unicode(*from,to,to_end);
+ if(len==base_converter::illegal) {
+ r=std::codecvt_base::error;
+ break;
+ }
+ if(len==base_converter::incomplete) {
+ r=std::codecvt_base::partial;
+ break;
+ }
+ from++;
+ to+=len;
+ }
+ from_next=from;
+ to_next=to;
+ if(r!=std::codecvt_base::ok)
+ return r;
+ if(from!=from_end)
+ return std::codecvt_base::partial;
+ return r;
+ }
+
+ //
+ // Implementation for UTF-16
+ //
+ std::codecvt_base::result
+ do_real_in( std::mbstate_t &std_state,
+ char const *from,
+ char const *from_end,
+ char const *&from_next,
+ uint16_t *to,
+ uint16_t *to_end,
+ uint16_t *&to_next) const
+ {
+ std::auto_ptr<base_converter> cvtp;
+ base_converter *cvt = 0;
+ if(cvt_->is_thread_safe()) {
+ cvt = cvt_.get();
+ }
+ else {
+ cvtp.reset(cvt_->clone());
+ cvt = cvtp.get();
+ }
+ std::codecvt_base::result r=std::codecvt_base::ok;
+ // mbstate_t is POD type and should be initialized to 0 (i.a. state = stateT())
+ // according to standard. We use it to keed a flag 0/1 for surrogate pair writing
+ //
+ // if 0 no code above >0xFFFF observed, of 1 a code above 0xFFFF observerd
+ // and first pair is written, but no input consumed
+ uint16_t &state = *reinterpret_cast<uint16_t *>(&std_state);
+ while(to < to_end && from < from_end)
+ {
+#ifdef DEBUG_CODECVT
+ std::cout << "Entering IN--------------" << std::endl;
+ std::cout << "State " << std::hex << state <<std::endl;
+ std::cout << "Left in " << std::dec << from_end - from << " out " << to_end -to << std::endl;
+#endif
+ char const *from_saved = from;
+ uint32_t ch=cvt->to_unicode(from,from_end);
+ if(ch==base_converter::illegal) {
+ r=std::codecvt_base::error;
+ break;
+ }
+ if(ch==base_converter::incomplete) {
+ r=std::codecvt_base::partial;
+ break;
+ }
+ // Normal codepoints go direcly to stream
+ if(ch <= 0xFFFF) {
+ *to++=ch;
+ }
+ else {
+ // for other codepoints we do following
+ //
+ // 1. We can't consume our input as we may find ourselfs
+ // in state where all input consumed but not all output written,i.e. only
+ // 1st pair is written
+ // 2. We only write first pair and mark this in the state, we also revert back
+ // the from pointer in order to make sure this codepoint would be read
+ // once again and then we would consume our input together with writing
+ // second surrogate pair
+ ch-=0x10000;
+ uint16_t vh = ch >> 10;
+ uint16_t vl = ch & 0x3FF;
+ uint16_t w1 = vh + 0xD800;
+ uint16_t w2 = vl + 0xDC00;
+ if(state == 0) {
+ from = from_saved;
+ *to++ = w1;
+ state = 1;
+ }
+ else {
+ *to++ = w2;
+ state = 0;
+ }
+ }
+ }
+ from_next=from;
+ to_next=to;
+ if(r == std::codecvt_base::ok && (from!=from_end || state!=0))
+ r = std::codecvt_base::partial;
+#ifdef DEBUG_CODECVT
+ std::cout << "Returning ";
+ switch(r) {
+ case std::codecvt_base::ok:
+ std::cout << "ok" << std::endl;
+ break;
+ case std::codecvt_base::partial:
+ std::cout << "partial" << std::endl;
+ break;
+ case std::codecvt_base::error:
+ std::cout << "error" << std::endl;
+ break;
+ default:
+ std::cout << "other" << std::endl;
+ break;
+ }
+ std::cout << "State " << std::hex << state <<std::endl;
+ std::cout << "Left in " << std::dec << from_end - from << " out " << to_end -to << std::endl;
+#endif
+ return r;
+ }
+
+ //encoding// Implementation for UTF-16
+ //
+ std::codecvt_base::result
+ do_real_out(std::mbstate_t &std_state,
+ uint16_t const *from,
+ uint16_t const *from_end,
+ uint16_t const *&from_next,
+ char *to,
+ char *to_end,
+ char *&to_next) const
+ {
+ std::auto_ptr<base_converter> cvtp;
+ base_converter *cvt = 0;
+ if(cvt_->is_thread_safe()) {
+ cvt = cvt_.get();
+ }
+ else {
+ cvtp.reset(cvt_->clone());
+ cvt = cvtp.get();
+ }
+ std::codecvt_base::result r=std::codecvt_base::ok;
+ // mbstate_t is POD type and should be initialized to 0 (i.a. state = stateT())
+ // according to standard. We assume that sizeof(mbstate_t) >=2 in order
+ // to be able to store first observerd surrogate pair
+ //
+ // State: state!=0 - a first surrogate pair was observerd (state = first pair),
+ // we expect the second one to come and then zero the state
+ ///
+ uint16_t &state = *reinterpret_cast<uint16_t *>(&std_state);
+ while(to < to_end && from < from_end)
+ {
+#ifdef DEBUG_CODECVT
+ std::cout << "Entering OUT --------------" << std::endl;
+ std::cout << "State " << std::hex << state <<std::endl;
+ std::cout << "Left in " << std::dec << from_end - from << " out " << to_end -to << std::endl;
+#endif
+ uint32_t ch=0;
+ if(state != 0) {
+ // if the state idecates that 1st surrogate pair was written
+ // we should make sure that the second one that comes is actually
+ // second surrogate
+ uint16_t w1 = state;
+ uint16_t w2 = *from;
+ // we don't forward from as writing may fail to incomplete or
+ // partial conversion
+ if(0xDC00 <= w2 && w2<=0xDFFF) {
+ uint16_t vh = w1 - 0xD800;
+ uint16_t vl = w2 - 0xDC00;
+ ch=((uint32_t(vh) << 10) | vl) + 0x10000;
+ }
+ else {
+ // Invalid surrogate
+ r=std::codecvt_base::error;
+ break;
+ }
+ }
+ else {
+ ch = *from;
+ if(0xD800 <= ch && ch<=0xDBFF) {
+ // if this is a first surrogate pair we put
+ // it into the state and consume it, note we don't
+ // go forward as it should be illegal so we increase
+ // the from pointer manually
+ state = ch;
+ from++;
+ continue;
+ }
+ else if(0xDC00 <= ch && ch<=0xDFFF) {
+ // if we observe second surrogate pair and
+ // first only may be expected we should break from the loop with error
+ // as it is illegal input
+ r=std::codecvt_base::error;
+ break;
+ }
+ }
+
+ uint32_t len=cvt->from_unicode(ch,to,to_end);
+ if(len==base_converter::illegal) {
+ r=std::codecvt_base::error;
+ break;
+ }
+ if(len==base_converter::incomplete) {
+ r=std::codecvt_base::partial;
+ break;
+ }
+ state = 0;
+ to+=len;
+ from++;
+ }
+ from_next=from;
+ to_next=to;
+ if(r==std::codecvt_base::ok && from!=from_end)
+ r = std::codecvt_base::partial;
+#ifdef DEBUG_CODECVT
+ std::cout << "Returning ";
+ switch(r) {
+ case std::codecvt_base::ok:
+ std::cout << "ok" << std::endl;
+ break;
+ case std::codecvt_base::partial:
+ std::cout << "partial" << std::endl;
+ break;
+ case std::codecvt_base::error:
+ std::cout << "error" << std::endl;
+ break;
+ default:
+ std::cout << "other" << std::endl;
+ break;
+ }
+ std::cout << "State " << std::hex << state <<std::endl;
+ std::cout << "Left in " << std::dec << from_end - from << " out " << to_end -to << std::endl;
+#endif
+ return r;
+ }
+
+ int max_len_;
+ std::auto_ptr<base_converter> cvt_;
+
+ };
+
+ static const char ensure_mbstate_size_is_at_least_2[sizeof(mbstate_t) >= 2 ? 1 : -1] = {0};
+
+ template<>
+ class code_converter<char> : public std::codecvt<char,char,mbstate_t>
+ {
+ public:
+ code_converter(std::auto_ptr<base_converter> /*cvt*/,size_t refs = 0) :
+ std::codecvt<char,char,mbstate_t>(refs)
+ {
+ }
+ };
+
+
+ std::locale create_codecvt(std::locale const &in,std::auto_ptr<base_converter> cvt,character_facet_type type)
+ {
+ if(!cvt.get())
+ cvt.reset(new base_converter());
+ switch(type) {
+ case char_facet:
+ return std::locale(in,new code_converter<char>(cvt));
+ case wchar_t_facet:
+ return std::locale(in,new code_converter<wchar_t>(cvt));
+ #if defined(BOOST_HAS_CHAR16_T) && !defined(BOOST_NO_CHAR16_T_CODECVT)
+ case char16_t_facet:
+ return std::locale(in,new code_converter<char16_t>(cvt));
+ #endif
+ #if defined(BOOST_HAS_CHAR32_T) && !defined(BOOST_NO_CHAR32_T_CODECVT)
+ case char32_t_facet:
+ return std::locale(in,new code_converter<char32_t>(cvt));
+ #endif
+ default:
+ return in;
+ }
+ }
+
+
+} // util
+} // locale
+} // boost
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/util/default_locale.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/util/default_locale.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,80 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/util.hpp>
+#include <boost/config.hpp>
+#include <stdlib.h>
+
+#ifdef BOOST_MSVC
+# pragma warning(disable : 4996)
+#endif
+
+#if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
+#include <windows.h>
+#define BOOST_LOCALE_USE_WIN32_API
+#endif
+
+namespace boost {
+ namespace locale {
+ namespace util {
+ std::string get_system_locale(bool use_utf8)
+ {
+ char const *lang = 0;
+ if(!lang || !*lang)
+ lang = getenv("LC_CTYPE");
+ if(!lang || !*lang)
+ lang = getenv("LC_ALL");
+ if(!lang || !*lang)
+ lang = getenv("LANG");
+ #ifndef BOOST_LOCALE_USE_WIN32_API
+ (void)use_utf8; // not relevant for non-windows
+ if(!lang || !*lang)
+ lang = "C";
+ return lang;
+ #else
+ if(lang && *lang) {
+ return lang;
+ }
+ char buf[10];
+ if(GetLocaleInfoA(LOCALE_USER_DEFAULT,LOCALE_SISO639LANGNAME,buf,sizeof(buf))==0)
+ return "C";
+ std::string lc_name = buf;
+ if(GetLocaleInfoA(LOCALE_USER_DEFAULT,LOCALE_SISO3166CTRYNAME,buf,sizeof(buf))!=0) {
+ lc_name += "_";
+ lc_name += buf;
+ }
+ if(!use_utf8) {
+ if(GetLocaleInfoA(LOCALE_USER_DEFAULT,LOCALE_IDEFAULTANSICODEPAGE,buf,sizeof(buf))!=0) {
+ if(atoi(buf)==0)
+ lc_name+=".UTF-8";
+ else {
+ lc_name +=".windows-";
+ lc_name +=buf;
+ }
+ }
+ else {
+ lc_name += "UTF-8";
+ }
+ }
+ else {
+ lc_name += ".UTF-8";
+ }
+ return lc_name;
+
+ #endif
+ }
+ } // impl
+ } // locale
+} // boost
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/src/util/gregorian.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/util/gregorian.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,855 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/config.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(disable : 4996)
+#endif
+#include <locale>
+#include <string>
+#include <ios>
+#include <boost/locale/date_time_facet.hpp>
+#include <boost/locale/date_time.hpp>
+#include <stdlib.h>
+#include <ctime>
+#include <memory>
+#include <algorithm>
+#include <limits>
+
+#include "timezone.hpp"
+#include "gregorian.hpp"
+
+namespace boost {
+namespace locale {
+namespace util {
+ namespace {
+
+ int is_leap(int year)
+ {
+ if(year % 400 == 0)
+ return 1;
+ if(year % 100 == 0)
+ return 0;
+ if(year % 4 == 0)
+ return 1;
+ return 0;
+ }
+
+ int days_in_month(int year,int month)
+ {
+ static const int tbl[2][12] = {
+ { 31,28,31,30,31,30,31,31,30,31,30,31 },
+ { 31,29,31,30,31,30,31,31,30,31,30,31 }
+ };
+ return tbl[is_leap(year)][month - 1];
+ }
+
+ inline int days_from_0(int year)
+ {
+ year--;
+ return 365 * year + (year / 400) - (year/100) + (year / 4);
+ }
+
+ int days_from_1970(int year)
+ {
+ static const int days_from_0_to_1970 = days_from_0(1970);
+ return days_from_0(year) - days_from_0_to_1970;
+ }
+
+ int days_from_1jan(int year,int month,int day)
+ {
+ static const int days[2][12] = {
+ { 0,31,59,90,120,151,181,212,243,273,304,334 },
+ { 0,31,60,91,121,152,182,213,244,274,305,335 }
+ };
+ return days[is_leap(year)][month-1] + day - 1;
+ }
+
+ time_t internal_timegm(std::tm const *t)
+ {
+ int year = t->tm_year + 1900;
+ int month = t->tm_mon;
+ if(month > 11) {
+ year += month/12;
+ month %= 12;
+ }
+ else if(month < 0) {
+ int years_diff = (-month + 11)/12;
+ year -= years_diff;
+ month+=12 * years_diff;
+ }
+ month++;
+ int day = t->tm_mday;
+ int day_of_year = days_from_1jan(year,month,day);
+ int days_since_epoch = days_from_1970(year) + day_of_year;
+
+ time_t seconds_in_day = 3600 * 24;
+ time_t result = seconds_in_day * days_since_epoch + 3600 * t->tm_hour + 60 * t->tm_min + t->tm_sec;
+
+ return result;
+ }
+
+ } // anon
+
+
+
+
+ namespace {
+
+ // Locale dependent data
+
+ bool comparator(char const *left,char const *right)
+ {
+ return strcmp(left,right) < 0;
+ }
+
+ //
+ // Ref: CLDR 1.9 common/supplemental/supplementalData.xml
+ //
+ // monday - default
+ // fri - MV
+ // sat - AE AF BH DJ DZ EG ER ET IQ IR JO KE KW LY MA OM QA SA SD SO SY TN YE
+ // sun - AR AS AZ BW CA CN FO GE GL GU HK IL IN JM JP KG KR LA MH MN MO MP MT NZ PH PK SG TH TT TW UM US UZ VI ZW
+ //
+
+ int first_day_of_week(char const *terr) {
+ static char const * const sat[] = {
+ "AE","AF","BH","DJ","DZ","EG","ER","ET","IQ","IR",
+ "JO","KE","KW","LY","MA","OM","QA","SA","SD","SO",
+ "SY","TN","YE"
+ };
+ // workaround for Sun Solaris !@#%@#$%@#$%234
+ #ifdef sun
+ #undef sun
+ #endif
+ static char const * const sun[] = {
+ "AR","AS","AZ","BW","CA","CN","FO","GE","GL","GU",
+ "HK","IL","IN","JM","JP","KG","KR","LA","MH","MN",
+ "MO","MP","MT","NZ","PH","PK","SG","TH","TT","TW",
+ "UM","US","UZ","VI","ZW"
+ };
+ if(strcmp(terr,"MV") == 0)
+ return 5; // fri
+ if(std::binary_search<char const * const *>(sat,sat+sizeof(sat)/(sizeof(sat[0])),terr,comparator))
+ return 6; // sat
+ if(std::binary_search<char const * const *>(sun,sun+sizeof(sun)/(sizeof(sun[0])),terr,comparator))
+ return 0; // sun
+ // default
+ return 1; // mon
+ }
+ }
+
+ class gregorian_calendar : public abstract_calendar {
+ public:
+
+ gregorian_calendar(std::string const &terr)
+ {
+ first_day_of_week_ = first_day_of_week(terr.c_str());
+ time_ = time(0);
+ is_local_ = true;
+ tzoff_ = 0;
+ from_time(time_);
+ }
+
+ ///
+ /// Make a polymorphic copy of the calendar
+ ///
+ virtual gregorian_calendar *clone() const
+ {
+ return new gregorian_calendar(*this);
+ }
+
+ ///
+ /// Set specific \a value for period \a p, note not all values are settable.
+ ///
+ virtual void set_value(period::marks::period_mark p,int value)
+ {
+ using namespace period::marks;
+ switch(p) {
+ case era: ///< Era i.e. AC, BC in Gregorian and Julian calendar, range [0,1]
+ return;
+ case year: ///< Year, it is calendar specific
+ case extended_year: ///< Extended year for Gregorian/Julian calendars, where 1 BC == 0, 2 BC == -1.
+ tm_updated_.tm_year = value - 1900;
+ break;
+ case month:
+ tm_updated_.tm_mon = value;
+ break;
+ case day:
+ tm_updated_.tm_mday = value;
+ break;
+ case hour: ///< 24 clock hour [0..23]
+ tm_updated_.tm_hour = value;
+ break;
+ case hour_12: ///< 12 clock hour [0..11]
+ tm_updated_.tm_hour = tm_updated_.tm_hour / 12 * 12 + value;
+ break;
+ case am_pm: ///< am or pm marker, [0..1]
+ tm_updated_.tm_hour = 12 * value + tm_updated_.tm_hour % 12;
+ break;
+ case minute: ///< minute [0..59]
+ tm_updated_.tm_min = value;
+ break;
+ case second:
+ tm_updated_.tm_sec = value;
+ break;
+ case day_of_year:
+ normalize();
+ tm_updated_.tm_mday += (value - (tm_updated_.tm_yday + 1));
+ break;
+ case day_of_week: ///< Day of week, starting from Sunday, [1..7]
+ if(value < 1) // make sure it is positive
+ value += (-value / 7) * 7 + 7;
+ // convert to local DOW
+ value = (value - 1 - first_day_of_week_ + 14) % 7 + 1;
+ // fall throght
+ case day_of_week_local: ///< Local day of week, for example in France Monday is 1, in US Sunday is 1, [1..7]
+ normalize();
+ tm_updated_.tm_mday += (value - 1) - (tm_updated_.tm_wday - first_day_of_week_ + 7) % 7;
+ break;
+ case day_of_week_in_month: ///< Original number of the day of the week in month. (1st sunday, 2nd sunday etc)
+ case week_of_year: ///< The week number in the year, 4 is the minimal number of days to be in month
+ case week_of_month: ///< The week number withing current month
+ {
+ normalize();
+ int current_week = get_value(p,current);
+ int diff = 7 * (value - current_week);
+ tm_updated_.tm_mday += diff;
+ }
+ break;
+ case period::marks::first_day_of_week: ///< For example Sunday in US, Monday in France
+ default:
+ return;
+ }
+ normalized_ = false;
+ }
+
+ void normalize()
+ {
+ if(!normalized_) {
+ std::tm val = tm_updated_;
+ val.tm_isdst = -1;
+ val.tm_wday = -1; // indecator of error
+ time_t point = -1;
+ if(is_local_) {
+ point = mktime(&val);
+ if(point == static_cast<time_t>(-1)){
+ #ifndef BOOST_WINDOWS
+ // windows does not handle negative time_t, under other plaforms
+ // it may be actually valid value in 1969-12-31 23:59:59
+ // so we check that a filed was updated - does not happen in case of error
+ if(val.tm_wday == -1)
+ #endif
+ {
+ throw date_time_error("boost::locale::gregorian_calendar: invalid time");
+ }
+ }
+ }
+ else {
+ point = internal_timegm(&val);
+ #ifdef BOOST_WINDOWS
+ // Windows uses TLS, thread safe
+ std::tm *revert_point = 0;
+ if(point < 0 || (revert_point = gmtime(&point)) == 0)
+ throw date_time_error("boost::locale::gregorian_calendar time is out of range");
+ val = *revert_point;
+ #else
+ if(!gmtime_r(&point,&val))
+ throw date_time_error("boost::locale::gregorian_calendar invalid time");
+ #endif
+
+ }
+
+ time_ = point - tzoff_;
+ tm_ = val;
+ tm_updated_ = val;
+ normalized_ = true;
+ }
+ }
+
+ int get_week_number(int day,int wday) const
+ {
+ ///
+ /// This is the number of days that are considered withing
+ /// period such that the week belongs there
+ ///
+ static const int days_in_full_week = 4;
+
+
+ // Alaways use local week start
+ int current_dow = (wday - first_day_of_week_ + 7) % 7;
+ // Calculate local week day of Jan 1st.
+ int first_week_day = (current_dow + 700 - day) % 7;
+ // adding something big devidable by 7
+
+ int start_of_period_in_weeks;
+ if(first_week_day < days_in_full_week) {
+ start_of_period_in_weeks = - first_week_day;
+ }
+ else {
+ start_of_period_in_weeks = 7 - first_week_day;
+ }
+ int week_number_in_days = day - start_of_period_in_weeks;
+ if(week_number_in_days < 0)
+ return -1;
+ return week_number_in_days / 7 + 1;
+ }
+
+ ///
+ /// Get specific value for period \a p according to a value_type \a v
+ ///
+ virtual int get_value(period::marks::period_mark p,value_type v) const
+ {
+ using namespace period::marks;
+ switch(p) {
+ case era:
+ return 1;
+ case year:
+ case extended_year:
+ switch(v) {
+ case absolute_minimum:
+ case greatest_minimum:
+ case actual_minimum:
+ #ifdef BOOST_WINDOWS
+ return 1970; // Unix epoch windows can't handle negative time_t
+ #else
+ if(sizeof(time_t) == 4)
+ return 1901; // minimal year with 32 bit time_t
+ else
+ return 1;
+ #endif
+ case absolute_maximum:
+ case least_maximum:
+ case actual_maximum:
+ if(sizeof(time_t) == 4)
+ return 2038; // Y2K38 - maximal with 32 bit time_t
+ else
+ return std::numeric_limits<int>::max();
+ case current:
+ return tm_.tm_year + 1900;
+ };
+ break;
+ case month:
+ switch(v) {
+ case absolute_minimum:
+ case greatest_minimum:
+ case actual_minimum:
+ return 0;
+ case absolute_maximum:
+ case least_maximum:
+ case actual_maximum:
+ return 11;
+ case current:
+ return tm_.tm_mon;
+ };
+ break;
+ case day:
+ switch(v) {
+ case absolute_minimum:
+ case greatest_minimum:
+ case actual_minimum:
+ return 1;
+ case absolute_maximum:
+ return 31;
+ case least_maximum:
+ return 28;
+ case actual_maximum:
+ return days_in_month(tm_.tm_year + 1900,tm_.tm_mon + 1);
+ case current:
+ return tm_.tm_mday;
+ };
+ break;
+ case day_of_year: ///< The number of day in year, starting from 1
+ switch(v) {
+ case absolute_minimum:
+ case greatest_minimum:
+ case actual_minimum:
+ return 1;
+ case absolute_maximum:
+ return 366;
+ case least_maximum:
+ return 365;
+ case actual_maximum:
+ return is_leap(tm_.tm_year + 1900) ? 366 : 365;
+ case current:
+ return tm_.tm_yday + 1;
+ }
+ break;
+ case day_of_week: ///< Day of week, starting from Sunday, [1..7]
+ switch(v) {
+ case absolute_minimum:
+ case greatest_minimum:
+ case actual_minimum:
+ return 1;
+ case absolute_maximum:
+ case least_maximum:
+ case actual_maximum:
+ return 7;
+ case current:
+ return tm_.tm_wday + 1;
+ }
+ break;
+ case day_of_week_local: ///< Local day of week, for example in France Monday is 1, in US Sunday is 1, [1..7]
+ switch(v) {
+ case absolute_minimum:
+ case greatest_minimum:
+ case actual_minimum:
+ return 1;
+ case absolute_maximum:
+ case least_maximum:
+ case actual_maximum:
+ return 7;
+ case current:
+ return (tm_.tm_wday - first_day_of_week_ + 7) % 7 + 1;
+ }
+ break;
+ case hour: ///< 24 clock hour [0..23]
+ switch(v) {
+ case absolute_minimum:
+ case greatest_minimum:
+ case actual_minimum:
+ return 0;
+ case absolute_maximum:
+ case least_maximum:
+ case actual_maximum:
+ return 23;
+ case current:
+ return tm_.tm_hour;
+ }
+ break;
+ case hour_12: ///< 12 clock hour [0..11]
+ switch(v) {
+ case absolute_minimum:
+ case greatest_minimum:
+ case actual_minimum:
+ return 0;
+ case absolute_maximum:
+ case least_maximum:
+ case actual_maximum:
+ return 11;
+ case current:
+ return tm_.tm_hour % 12;
+ }
+ break;
+ case am_pm: ///< am or pm marker, [0..1]
+ switch(v) {
+ case absolute_minimum:
+ case greatest_minimum:
+ case actual_minimum:
+ return 0;
+ case absolute_maximum:
+ case least_maximum:
+ case actual_maximum:
+ return 1;
+ case current:
+ return tm_.tm_hour >= 12 ? 1 : 0;
+ }
+ break;
+ case minute: ///< minute [0..59]
+ switch(v) {
+ case absolute_minimum:
+ case greatest_minimum:
+ case actual_minimum:
+ return 0;
+ case absolute_maximum:
+ case least_maximum:
+ case actual_maximum:
+ return 59;
+ case current:
+ return tm_.tm_min;
+ }
+ break;
+ case second: ///< second [0..59]
+ switch(v) {
+ case absolute_minimum:
+ case greatest_minimum:
+ case actual_minimum:
+ return 0;
+ case absolute_maximum:
+ case least_maximum:
+ case actual_maximum:
+ return 59;
+ case current:
+ return tm_.tm_sec;
+ }
+ break;
+ case period::marks::first_day_of_week: ///< For example Sunday in US, Monday in France
+ return first_day_of_week_ + 1;
+
+ case week_of_year: ///< The week number in the year
+ switch(v) {
+ case absolute_minimum:
+ case greatest_minimum:
+ case actual_minimum:
+ return 1;
+ case absolute_maximum:
+ return 53;
+ case least_maximum:
+ return 52;
+ case actual_maximum:
+ {
+ int year = tm_.tm_year + 1900;
+ int end_of_year_days = (is_leap(year) ? 366 : 365) - 1;
+ int dow_of_end_of_year = (end_of_year_days - tm_.tm_yday + tm_.tm_wday) % 7;
+ return get_week_number(end_of_year_days,dow_of_end_of_year);
+ }
+ case current:
+ {
+ int val = get_week_number(tm_.tm_yday,tm_.tm_wday);
+ if(val < 0)
+ return 53;
+ return val;
+ }
+ }
+ case week_of_month: ///< The week number withing current month
+ switch(v) {
+ case absolute_minimum:
+ case greatest_minimum:
+ case actual_minimum:
+ return 1;
+ case absolute_maximum:
+ return 5;
+ case least_maximum:
+ return 4;
+ case actual_maximum:
+ {
+ int end_of_month_days = days_in_month(tm_.tm_year + 1900,tm_.tm_mon + 1);
+ int dow_of_end_of_month = (end_of_month_days - tm_.tm_mday + tm_.tm_wday) % 7;
+ return get_week_number(end_of_month_days,dow_of_end_of_month);
+ }
+ case current:
+ {
+ int val = get_week_number(tm_.tm_mday,tm_.tm_wday);
+ if(val < 0)
+ return 5;
+ return val;
+ }
+ }
+
+ case day_of_week_in_month: ///< Original number of the day of the week in month.
+ switch(v) {
+ case absolute_minimum:
+ case greatest_minimum:
+ case actual_minimum:
+ return 1;
+ case absolute_maximum:
+ return 5;
+ case least_maximum:
+ return 4;
+ case actual_maximum:
+ if(tm_.tm_mon == 1 && !is_leap(tm_.tm_year + 1900)) {
+ // only in february in non leap year is 28 days, the rest
+ // conver more then 4 weeks
+ return 4;
+ }
+ return 5;
+ case current:
+ return (tm_.tm_mday - 1) / 7 + 1;
+ default:
+ ;
+ }
+ default:
+ ;
+ }
+ return 0;
+
+ }
+
+ ///
+ /// Set current time point
+ ///
+ virtual void set_time(posix_time const &p)
+ {
+ from_time(static_cast<time_t>(p.seconds));
+ }
+ virtual posix_time get_time() const
+ {
+ posix_time pt = { time_, 0};
+ return pt;
+ }
+
+ ///
+ /// Set option for calendar, for future use
+ ///
+ virtual void set_option(calendar_option_type opt,int /*v*/)
+ {
+ switch(opt) {
+ case is_gregorian:
+ throw date_time_error("is_gregorian is not settable options for calendar");
+ case is_dst:
+ throw date_time_error("is_dst is not settable options for calendar");
+ default:
+ ;
+ }
+ }
+ ///
+ /// Get option for calendar, currently only check if it is Gregorian calendar
+ ///
+ virtual int get_option(calendar_option_type opt) const
+ {
+ switch(opt) {
+ case is_gregorian:
+ return 1;
+ case is_dst:
+ return tm_.tm_isdst == 1;
+ default:
+ return 0;
+ };
+ }
+
+ ///
+ /// Adjust period's \a p value by \a difference items using a update_type \a u.
+ /// Note: not all values are adjustable
+ ///
+ virtual void adjust_value(period::marks::period_mark p,update_type u,int difference)
+ {
+ switch(u) {
+ case move:
+ {
+ using namespace period::marks;
+ switch(p) {
+ case year: ///< Year, it is calendar specific
+ case extended_year: ///< Extended year for Gregorian/Julian calendars, where 1 BC == 0, 2 BC == -1.
+ tm_updated_.tm_year +=difference;
+ break;
+ case month:
+ tm_updated_.tm_mon +=difference;
+ break;
+ case day:
+ case day_of_year:
+ case day_of_week: ///< Day of week, starting from Sunday, [1..7]
+ case day_of_week_local: ///< Local day of week, for example in France Monday is 1, in US Sunday is 1, [1..7]
+ tm_updated_.tm_mday +=difference;
+ break;
+ case hour: ///< 24 clock hour [0..23]
+ case hour_12: ///< 12 clock hour [0..11]
+ tm_updated_.tm_hour += difference;
+ break;
+ case am_pm: ///< am or pm marker, [0..1]
+ tm_updated_.tm_hour += 12 * difference;
+ break;
+ case minute: ///< minute [0..59]
+ tm_updated_.tm_min += difference;
+ break;
+ case second:
+ tm_updated_.tm_sec += difference;
+ break;
+ case week_of_year: ///< The week number in the year
+ case week_of_month: ///< The week number withing current month
+ case day_of_week_in_month: ///< Original number of the day of the week in month.
+ tm_updated_.tm_mday +=difference * 7;
+ break;
+ default:
+ ; // Not all values are adjustable
+ }
+ normalized_ = false;
+ normalize();
+ }
+ break;
+ case roll:
+ { // roll
+ int cur_min = get_value(p,actual_minimum);
+ int cur_max = get_value(p,actual_maximum);
+ int max_diff = cur_max - cur_min + 1;
+ if(max_diff > 0) {
+ int value = get_value(p,current);
+ int addon = 0;
+ if(difference < 0)
+ addon = ((-difference/max_diff) + 1) * max_diff;
+ value = (value - cur_min + difference + addon) % max_diff + cur_min;
+ set_value(p,value);
+ normalize();
+ }
+ }
+ default:
+ ;
+ }
+ }
+
+ int get_diff(period::marks::period_mark p,int diff,gregorian_calendar const *other) const
+ {
+ if(diff == 0)
+ return 0;
+ std::auto_ptr<gregorian_calendar> self(clone());
+ self->adjust_value(p,move,diff);
+ if(diff > 0){
+ if(self->time_ > other->time_)
+ return diff - 1;
+ else
+ return diff;
+ }
+ else {
+ if(self->time_ < other->time_)
+ return diff + 1;
+ else
+ return diff;
+ }
+ }
+
+ ///
+ /// Calculate the difference between this calendar and \a other in \a p units
+ ///
+ virtual int difference(abstract_calendar const *other_cal,period::marks::period_mark p) const
+ {
+ std::auto_ptr<gregorian_calendar> keeper;
+ gregorian_calendar const *other = dynamic_cast<gregorian_calendar const *>(other_cal);
+ if(!other) {
+ keeper.reset(clone());
+ keeper->set_time(other_cal->get_time());
+ other = keeper.get();
+ }
+
+ int factor = 1; // for weeks vs days handling
+
+ using namespace period::marks;
+ switch(p) {
+ case era:
+ return 0;
+ case year:
+ case extended_year:
+ {
+ int diff = other->tm_.tm_year - tm_.tm_year;
+ return get_diff(period::marks::year,diff,other);
+ }
+ case month:
+ {
+ int diff = 12 * (other->tm_.tm_year - tm_.tm_year)
+ + other->tm_.tm_mon - tm_.tm_mon;
+ return get_diff(period::marks::month,diff,other);
+ }
+ case day_of_week_in_month:
+ case week_of_month:
+ case week_of_year:
+ factor = 7;
+ // fall
+ case day:
+ case day_of_year:
+ case day_of_week:
+ case day_of_week_local:
+ {
+ int diff = other->tm_.tm_yday - tm_.tm_yday;
+ if(other->tm_.tm_year != tm_.tm_year) {
+ diff += days_from_0(other->tm_.tm_year + 1900) -
+ days_from_0(tm_.tm_year + 1900);
+ }
+ return get_diff(period::marks::day,diff,other) / factor;
+ }
+ case am_pm:
+ return static_cast<int>( (other->time_ - time_) / (3600*12) );
+ case hour:
+ case hour_12:
+ return static_cast<int>( (other->time_ - time_) / 3600 );
+ case minute:
+ return static_cast<int>( (other->time_ - time_) / 60 );
+ case second:
+ return static_cast<int>( other->time_ - time_ );
+ default:
+ return 0;
+ };
+ }
+
+ ///
+ /// Set time zone, empty - use system
+ ///
+ virtual void set_timezone(std::string const &tz)
+ {
+ if(tz.empty()) {
+ is_local_ = true;
+ tzoff_ = 0;
+ }
+ else {
+ is_local_ = false;
+ tzoff_ = parse_tz(tz);
+ }
+ from_time(time_);
+ time_zone_name_ = tz;
+ }
+ virtual std::string get_timezone() const
+ {
+ return time_zone_name_;
+ }
+
+ virtual bool same(abstract_calendar const *other) const
+ {
+ gregorian_calendar const *gcal = dynamic_cast<gregorian_calendar const *>(other);
+ if(!gcal)
+ return false;
+ return
+ gcal->tzoff_ == tzoff_
+ && gcal->is_local_ == is_local_
+ && gcal->first_day_of_week_ == first_day_of_week_;
+ }
+
+ virtual ~gregorian_calendar()
+ {
+ }
+
+ private:
+
+ void from_time(time_t point)
+ {
+ time_t real_point = point + tzoff_;
+ std::tm *t = 0;
+ #ifdef BOOST_WINDOWS
+ // Windows uses TLS, thread safe
+ t = is_local_ ? localtime(&real_point) : gmtime(&real_point);
+ #else
+ std::tm tmp_tm;
+ t = is_local_ ? localtime_r(&real_point,&tmp_tm) : gmtime_r(&real_point,&tmp_tm);
+ #endif
+ if(!t) {
+ throw date_time_error("boost::locale::gregorian_calendar: invalid time point");
+ }
+ tm_ = *t;
+ tm_updated_ = *t;
+ normalized_ = true;
+ time_ = point;
+ }
+ int first_day_of_week_;
+ time_t time_;
+ std::tm tm_;
+ std::tm tm_updated_;
+ bool normalized_;
+ bool is_local_;
+ int tzoff_;
+ std::string time_zone_name_;
+
+ };
+
+ abstract_calendar *create_gregorian_calendar(std::string const &terr)
+ {
+ return new gregorian_calendar(terr);
+ }
+
+ class gregorian_facet : public calendar_facet {
+ public:
+ gregorian_facet(std::string const &terr,size_t refs = 0) :
+ calendar_facet(refs),
+ terr_(terr)
+ {
+ }
+ virtual abstract_calendar *create_calendar() const
+ {
+ return create_gregorian_calendar(terr_);
+ }
+ private:
+ std::string terr_;
+ };
+
+ std::locale install_gregorian_calendar(std::locale const &in,std::string const &terr)
+ {
+ return std::locale(in,new gregorian_facet(terr));
+ }
+
+
+} // util
+} // locale
+} //boost
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/util/gregorian.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/util/gregorian.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,25 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_SRC_UTIL_GREGORIAN_HPP
+#define BOOST_LOCALE_SRC_UTIL_GREGORIAN_HPP
+
+#include <locale>
+
+namespace boost {
+namespace locale {
+namespace util {
+
+ std::locale install_gregorian_calendar(std::locale const &in,std::string const &terr);
+
+} // util
+} // locale
+} //boost
+
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/util/iconv.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/util/iconv.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,37 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_ICONV_FIXER_HPP
+#define BOOST_LOCALE_ICONV_FIXER_HPP
+
+#include <iconv.h>
+
+namespace boost {
+ namespace locale {
+ extern "C" {
+ typedef size_t (*gnu_iconv_ptr_type)(iconv_t d,char const **in,size_t *insize,char **out,size_t *outsize);
+ typedef size_t (*posix_iconv_ptr_type)(iconv_t d,char **in,size_t *insize,char **out,size_t *outsize);
+ }
+ inline size_t do_iconv(gnu_iconv_ptr_type ptr,iconv_t d,char **in,size_t *insize,char **out,size_t *outsize)
+ {
+ char const **rin = const_cast<char const **>(in);
+ return ptr(d,rin,insize,out,outsize);
+ }
+ inline size_t do_iconv(posix_iconv_ptr_type ptr,iconv_t d,char **in,size_t *insize,char **out,size_t *outsize)
+ {
+ return ptr(d,in,insize,out,outsize);
+ }
+ inline size_t iconv(iconv_t d,char **in,size_t *insize,char **out,size_t *outsize)
+ {
+ return do_iconv( :: iconv, d, in,insize,out,outsize);
+ }
+
+ } // locale
+} // boost
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/util/info.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/util/info.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,75 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <locale>
+#include <string>
+#include <ios>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/info.hpp>
+#include <boost/locale/util.hpp>
+#include <sstream>
+#include <stdlib.h>
+
+#include "locale_data.hpp"
+
+namespace boost {
+namespace locale {
+namespace util {
+ class simple_info : public info {
+ public:
+ simple_info(std::string const &name,size_t refs = 0) :
+ info(refs),
+ name_(name)
+ {
+ d.parse(name);
+ }
+ virtual std::string get_string_property(string_propery v) const
+ {
+ switch(v) {
+ case language_property:
+ return d.language;
+ case country_property:
+ return d.country;
+ case variant_property:
+ return d.variant;
+ case encoding_property:
+ return d.encoding;
+ case name_property:
+ return name_;
+ default:
+ return "";
+ };
+ }
+
+ virtual int get_integer_property(integer_property v) const
+ {
+ switch(v) {
+ case utf8_property:
+ return d.utf8;
+ default:
+ return 0;
+ }
+ }
+ private:
+ locale_data d;
+ std::string name_;
+ };
+
+ std::locale create_info(std::locale const &in,std::string const &name)
+ {
+ return std::locale(in,new simple_info(name));
+ }
+
+
+} // util
+} // locale
+} //boost
+
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/util/locale_data.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/util/locale_data.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,113 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include "locale_data.hpp"
+#include "../encoding/conv.hpp"
+#include <string>
+
+namespace boost {
+namespace locale {
+namespace util {
+ void locale_data::parse(std::string const &locale_name)
+ {
+ language = "C";
+ country.clear();
+ variant.clear();
+ encoding = "us-ascii";
+ utf8=false;
+ parse_from_lang(locale_name);
+ }
+
+ void locale_data::parse_from_lang(std::string const &locale_name)
+ {
+ size_t end = locale_name.find_first_of("-__at_.");
+ std::string tmp = locale_name.substr(0,end);
+ if(tmp.empty())
+ return;
+ for(unsigned i=0;i<tmp.size();i++) {
+ if('A' <= tmp[i] && tmp[i]<='Z')
+ tmp[i]=tmp[i]-'A'+'a';
+ else if(tmp[i] < 'a' && 'z' < tmp[i])
+ return;
+ }
+ language = tmp;
+ if(end >= locale_name.size())
+ return;
+
+ if(locale_name[end] == '-' || locale_name[end]=='_') {
+ parse_from_country(locale_name.substr(end+1));
+ }
+ else if(locale_name[end] == '.') {
+ parse_from_encoding(locale_name.substr(end+1));
+ }
+ else if(locale_name[end] == '@') {
+ parse_from_variant(locale_name.substr(end+1));
+ }
+ }
+
+ void locale_data::parse_from_country(std::string const &locale_name)
+ {
+ size_t end = locale_name.find_first_of("@.");
+ std::string tmp = locale_name.substr(0,end);
+ if(tmp.empty())
+ return;
+ for(unsigned i=0;i<tmp.size();i++) {
+ if('a' <= tmp[i] && tmp[i]<='a')
+ tmp[i]=tmp[i]-'a'+'A';
+ else if(tmp[i] < 'A' && 'Z' < tmp[i])
+ return;
+ }
+
+ country = tmp;
+
+ if(end >= locale_name.size())
+ return;
+ else if(locale_name[end] == '.') {
+ parse_from_encoding(locale_name.substr(end+1));
+ }
+ else if(locale_name[end] == '@') {
+ parse_from_variant(locale_name.substr(end+1));
+ }
+ }
+
+ void locale_data::parse_from_encoding(std::string const &locale_name)
+ {
+ size_t end = locale_name.find_first_of("@");
+ std::string tmp = locale_name.substr(0,end);
+ if(tmp.empty())
+ return;
+ for(unsigned i=0;i<tmp.size();i++) {
+ if('A' <= tmp[i] && tmp[i]<='Z')
+ tmp[i]=tmp[i]-'A'+'a';
+ }
+ encoding = tmp;
+
+ utf8 = conv::impl::normalize_encoding(encoding.c_str()) == "utf8";
+
+ if(end >= locale_name.size())
+ return;
+
+ if(locale_name[end] == '@') {
+ parse_from_variant(locale_name.substr(end+1));
+ }
+ }
+
+ void locale_data::parse_from_variant(std::string const &locale_name)
+ {
+ variant = locale_name;
+ for(unsigned i=0;i<variant.size();i++) {
+ if('A' <= variant[i] && variant[i]<='Z')
+ variant[i]=variant[i]-'A'+'a';
+ }
+ }
+
+} // util
+} // locale
+} // boost
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/util/locale_data.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/util/locale_data.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,47 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_UTIL_LOCALE_DATA_HPP
+#define BOOST_LOCALE_IMPL_UTIL_LOCALE_DATA_HPP
+
+#include <string>
+
+namespace boost {
+ namespace locale {
+ namespace util {
+
+ class locale_data {
+ public:
+ locale_data() :
+ language("C"),
+ encoding("us-ascii"),
+ utf8(false)
+ {
+ }
+
+ std::string language;
+ std::string country;
+ std::string variant;
+ std::string encoding;
+ bool utf8;
+
+ void parse(std::string const &locale_name);
+
+ private:
+
+ void parse_from_lang(std::string const &locale_name);
+ void parse_from_country(std::string const &locale_name);
+ void parse_from_encoding(std::string const &locale_name);
+ void parse_from_variant(std::string const &locale_name);
+ };
+
+ } // util
+ } // locale
+} // boost
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/util/numeric.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/util/numeric.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,392 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_UTIL_NUMERIC_HPP
+#define BOOST_LOCALE_IMPL_UTIL_NUMERIC_HPP
+#include <locale>
+#include <string>
+#include <ios>
+#include <boost/locale/formatting.hpp>
+#include <boost/locale/info.hpp>
+#include <sstream>
+#include <vector>
+#include <stdlib.h>
+
+#include "timezone.hpp"
+
+// This is internal header so disable crappy "unsecure functions" for all
+#ifdef BOOST_MSVC
+# pragma warning(disable : 4996)
+#endif
+
+
+namespace boost {
+namespace locale {
+namespace util {
+
+template<typename CharType>
+struct formatting_size_traits {
+ static size_t size(std::basic_string<CharType> const &s,std::locale const &/*l*/)
+ {
+ return s.size();
+ }
+};
+
+template<>
+struct formatting_size_traits<char> {
+ static size_t size(std::string const &s,std::locale const &l)
+ {
+ if(!std::has_facet<info>(l))
+ return s.size();
+ if(!std::use_facet<info>(l).utf8())
+ return s.size();
+ // count code points, poor man's text size
+ size_t res = 0;
+ for(size_t i=0;i<s.size();i++) {
+ unsigned char c = s[i];
+ if(c <= 127)
+ res ++;
+ else if ((c & 0xC0) == 0xC0) { // first UTF-8 byte
+ res ++;
+ }
+ }
+ return res;
+ }
+};
+
+
+
+template<typename CharType>
+class base_num_format : public std::num_put<CharType>
+{
+public:
+ typedef typename std::num_put<CharType>::iter_type iter_type;
+ typedef std::basic_string<CharType> string_type;
+ typedef CharType char_type;
+
+ base_num_format(size_t refs = 0) :
+ std::num_put<CharType>(refs)
+ {
+ }
+protected:
+
+
+ virtual iter_type do_put (iter_type out, std::ios_base &ios, char_type fill, long val) const
+ {
+ return do_real_put(out,ios,fill,val);
+ }
+ virtual iter_type do_put (iter_type out, std::ios_base &ios, char_type fill, unsigned long val) const
+ {
+ return do_real_put(out,ios,fill,val);
+ }
+ virtual iter_type do_put (iter_type out, std::ios_base &ios, char_type fill, double val) const
+ {
+ return do_real_put(out,ios,fill,val);
+ }
+ virtual iter_type do_put (iter_type out, std::ios_base &ios, char_type fill, long double val) const
+ {
+ return do_real_put(out,ios,fill,val);
+ }
+
+ #ifndef BOOST_NO_LONG_LONG
+ virtual iter_type do_put (iter_type out, std::ios_base &ios, char_type fill, long long val) const
+ {
+ return do_real_put(out,ios,fill,val);
+ }
+ virtual iter_type do_put (iter_type out, std::ios_base &ios, char_type fill, unsigned long long val) const
+ {
+ return do_real_put(out,ios,fill,val);
+ }
+ #endif
+
+
+private:
+
+
+
+ template<typename ValueType>
+ iter_type do_real_put (iter_type out, std::ios_base &ios, char_type fill, ValueType val) const
+ {
+ typedef std::num_put<char_type> super;
+
+ ios_info &info=ios_info::get(ios);
+
+ switch(info.display_flags()) {
+ case flags::posix:
+ {
+ typedef std::basic_ostringstream<char_type> sstream_type;
+ sstream_type ss;
+ ss.imbue(std::locale::classic());
+ ss.flags(ios.flags());
+ ss.precision(ios.precision());
+ ss.width(ios.width());
+ iter_type ret_ptr = super::do_put(out,ss,fill,val);
+ ios.width(0);
+ return ret_ptr;
+ }
+ case flags::date:
+ return format_time(out,ios,fill,static_cast<time_t>(val),'x');
+ case flags::time:
+ return format_time(out,ios,fill,static_cast<time_t>(val),'X');
+ case flags::datetime:
+ return format_time(out,ios,fill,static_cast<time_t>(val),'c');
+ case flags::strftime:
+ return format_time(out,ios,fill,static_cast<time_t>(val),info.date_time_pattern<char_type>());
+ case flags::currency:
+ {
+ bool nat = info.currency_flags()==flags::currency_default
+ || info.currency_flags() == flags::currency_national;
+ bool intl = !nat;
+ return do_format_currency(intl,out,ios,fill,static_cast<long double>(val));
+ }
+
+ case flags::number:
+ case flags::percent:
+ case flags::spellout:
+ case flags::ordinal:
+ default:
+ return super::do_put(out,ios,fill,val);
+ }
+ }
+
+ virtual iter_type do_format_currency(bool intl,iter_type out,std::ios_base &ios,char_type fill,long double val) const
+ {
+ if(intl)
+ return format_currency<true>(out,ios,fill,val);
+ else
+ return format_currency<false>(out,ios,fill,val);
+ }
+
+ template<bool intl>
+ iter_type format_currency(iter_type out,std::ios_base &ios,char_type fill,long double val) const
+ {
+ std::locale loc = ios.getloc();
+ int digits = std::use_facet<std::moneypunct<char_type,intl> >(loc).frac_digits();
+ while(digits > 0) {
+ val*=10;
+ digits --;
+ }
+ std::ios_base::fmtflags f=ios.flags();
+ ios.flags(f | std::ios_base::showbase);
+ out = std::use_facet<std::money_put<char_type> >(loc).put(out,intl,ios,fill,val);
+ ios.flags(f);
+ return out;
+ }
+
+ iter_type format_time(iter_type out,std::ios_base &ios,char_type fill,time_t time,char c) const
+ {
+ string_type fmt;
+ fmt+=char_type('%');
+ fmt+=char_type(c);
+ return format_time(out,ios,fill,time,fmt);
+ }
+
+ iter_type format_time(iter_type out,std::ios_base &ios,char_type fill,time_t time,string_type const &format) const
+ {
+ std::string tz = ios_info::get(ios).time_zone();
+ std::tm tm;
+ #if defined(__linux) || defined(__FreeBSD__) || defined(__APPLE__)
+ std::vector<char> tmp_buf(tz.c_str(),tz.c_str()+tz.size()+1);
+ #endif
+ if(tz.empty()) {
+ #ifdef BOOST_WINDOWS
+ /// Windows uses TLS
+ tm = *localtime(&time);
+ #else
+ localtime_r(&time,&tm);
+ #endif
+ }
+ else {
+ int gmtoff = parse_tz(tz);
+ time+=gmtoff;
+ #ifdef BOOST_WINDOWS
+ /// Windows uses TLS
+ tm = *gmtime(&time);
+ #else
+ gmtime_r(&time,&tm);
+ #endif
+
+ #if defined(__linux) || defined(__FreeBSD__) || defined(__APPLE__)
+ // These have extra fields to specify timezone
+ if(gmtoff!=0) {
+ // bsd and apple want tm_zone be non-const
+ tm.tm_zone=&tmp_buf.front();
+ tm.tm_gmtoff = gmtoff;
+ }
+ #endif
+ }
+ std::basic_ostringstream<char_type> tmp_out;
+ std::use_facet<std::time_put<char_type> >(ios.getloc()).put(tmp_out,tmp_out,fill,&tm,format.c_str(),format.c_str()+format.size());
+ string_type str = tmp_out.str();
+ std::streamsize on_left=0,on_right = 0;
+ std::streamsize points =
+ formatting_size_traits<char_type>::size(str,ios.getloc());
+ if(points < ios.width()) {
+ std::streamsize n = ios.width() - points;
+
+ std::ios_base::fmtflags flags = ios.flags() & std::ios_base::adjustfield;
+
+ //
+ // we do not really know internal point, so we assume that it does not
+ // exist. so according to the standard field should be right aligned
+ //
+ if(flags != std::ios_base::left)
+ on_left = n;
+ on_right = n - on_left;
+ }
+ while(on_left > 0) {
+ *out++ = fill;
+ on_left--;
+ }
+ std::copy(str.begin(),str.end(),out);
+ while(on_right > 0) {
+ *out++ = fill;
+ on_right--;
+ }
+ ios.width(0);
+ return out;
+ }
+
+}; /// num_format
+
+
+template<typename CharType>
+class base_num_parse : public std::num_get<CharType>
+{
+public:
+ base_num_parse(size_t refs = 0) :
+ std::num_get<CharType>(refs)
+ {
+ }
+protected:
+ typedef typename std::num_get<CharType>::iter_type iter_type;
+ typedef std::basic_string<CharType> string_type;
+ typedef CharType char_type;
+
+ virtual iter_type do_get(iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,long &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ virtual iter_type do_get(iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,unsigned short &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ virtual iter_type do_get(iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,unsigned int &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ virtual iter_type do_get(iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,unsigned long &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ virtual iter_type do_get(iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,float &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ virtual iter_type do_get(iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,double &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ virtual iter_type do_get (iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,long double &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ #ifndef BOOST_NO_LONG_LONG
+ virtual iter_type do_get (iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,long long &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ virtual iter_type do_get (iter_type in, iter_type end, std::ios_base &ios,std::ios_base::iostate &err,unsigned long long &val) const
+ {
+ return do_real_get(in,end,ios,err,val);
+ }
+
+ #endif
+
+private:
+
+ template<typename ValueType>
+ iter_type do_real_get(iter_type in,iter_type end,std::ios_base &ios,std::ios_base::iostate &err,ValueType &val) const
+ {
+ typedef std::num_get<char_type> super;
+
+ ios_info &info=ios_info::get(ios);
+
+ switch(info.display_flags()) {
+ case flags::posix:
+ {
+ std::stringstream ss;
+ ss.imbue(std::locale::classic());
+ ss.flags(ios.flags());
+ ss.precision(ios.precision());
+ return super::do_get(in,end,ss,err,val);
+ }
+ case flags::currency:
+ {
+ long double ret_val = 0;
+ if(info.currency_flags()==flags::currency_default || info.currency_flags() == flags::currency_national)
+ in = parse_currency<false>(in,end,ios,err,ret_val);
+ else
+ in = parse_currency<true>(in,end,ios,err,ret_val);
+ if(!(err & std::ios_base::failbit))
+ val = static_cast<ValueType>(ret_val);
+ return in;
+ }
+
+ // date-time parsing is not supported
+ // due to buggy standard
+ case flags::date:
+ case flags::time:
+ case flags::datetime:
+ case flags::strftime:
+
+ case flags::number:
+ case flags::percent:
+ case flags::spellout:
+ case flags::ordinal:
+ default:
+ return super::do_get(in,end,ios,err,val);
+ }
+ }
+
+ template<bool intl>
+ iter_type parse_currency(iter_type in,iter_type end,std::ios_base &ios,std::ios_base::iostate &err,long double &val) const
+ {
+ std::locale loc = ios.getloc();
+ int digits = std::use_facet<std::moneypunct<char_type,intl> >(loc).frac_digits();
+ long double rval;
+ in = std::use_facet<std::money_get<char_type> >(loc).get(in,end,intl,ios,err,rval);
+ if(!(err & std::ios::failbit)) {
+ while(digits > 0) {
+ rval/=10;
+ digits --;
+ }
+ val = rval;
+ }
+ return in;
+ }
+
+
+};
+
+} // util
+} // locale
+} //boost
+
+
+
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/util/timezone.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/util/timezone.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,53 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_UTIL_TIMEZONE_HPP
+#define BOOST_LOCALE_IMPL_UTIL_TIMEZONE_HPP
+#include <string>
+#include <stdlib.h>
+#include <string.h>
+namespace boost {
+namespace locale {
+namespace util {
+ inline int parse_tz(std::string const &tz)
+ {
+ int gmtoff = 0;
+ std::string ltz;
+ for(unsigned i=0;i<tz.size();i++) {
+ if('a' <= tz[i] && tz[i] <= 'z')
+ ltz += tz[i]-'a' + 'A';
+ else if(tz[i]==' ')
+ ;
+ else
+ ltz+=tz[i];
+ }
+ if(ltz.compare(0,3,"GMT")!=0 && ltz.compare(0,3,"UTC")!=0)
+ return 0;
+ if(ltz.size()<=3)
+ return 0;
+ char const *begin = ltz.c_str()+3;
+ char *end=0;
+ int hours = strtol(begin,&end,10);
+ if(end != begin) {
+ gmtoff+=hours * 3600;
+ }
+ if(*end==':') {
+ begin=end+1;
+ int minutes = strtol(begin,&end,10);
+ if(end!=begin)
+ gmtoff+=minutes * 60;
+ }
+ return gmtoff;
+ }
+
+} // util
+} // locale
+} //boost
+
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/win32/all_generator.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/win32/all_generator.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,45 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_WIN32_ALL_GENERATOR_HPP
+#define BOOST_LOCALE_IMPL_WIN32_ALL_GENERATOR_HPP
+
+#include <boost/locale/generator.hpp>
+#include <vector>
+#include <locale.h>
+
+namespace boost {
+ namespace locale {
+ namespace impl_win {
+
+ class winlocale;
+
+ std::locale create_convert( std::locale const &in,
+ winlocale const &lc,
+ character_facet_type type);
+
+ std::locale create_collate( std::locale const &in,
+ winlocale const &lc,
+ character_facet_type type);
+
+ std::locale create_formatting( std::locale const &in,
+ winlocale const &lc,
+ character_facet_type type);
+
+ std::locale create_parsing( std::locale const &in,
+ winlocale const &lc,
+ character_facet_type type);
+
+ std::locale create_codecvt( std::locale const &in,
+ character_facet_type type);
+
+ }
+ }
+}
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/win32/api.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/win32/api.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,357 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_WIN32_API_HPP
+#define BOOST_LOCALE_IMPL_WIN32_API_HPP
+
+#include <string>
+#include <vector>
+#include <sstream>
+#include <iomanip>
+#include <limits>
+#include <ctime>
+
+#include "lcid.hpp"
+
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
+#ifndef UNICODE
+#define UNICODE
+#endif
+#include <windows.h>
+
+#include <boost/locale/conversion.hpp>
+#include <boost/locale/collator.hpp>
+
+#define BOOST_LOCALE_WINDOWS_2000_API
+
+#if defined(_WIN32_NT) && _WIN32_NT >= 0x600 && !defined(BOOST_LOCALE_WINDOWS_2000_API)
+#define BOOST_LOCALE_WINDOWS_VISTA_API
+#else
+#define BOOST_LOCALE_WINDOWS_2000_API
+#endif
+
+namespace boost {
+namespace locale {
+namespace impl_win {
+
+ struct numeric_info {
+ std::wstring thousands_sep;
+ std::wstring decimal_point;
+ std::string grouping;
+ };
+
+ inline DWORD collation_level_to_flag(collator_base::level_type level)
+ {
+ DWORD flags;
+ switch(level) {
+ case collator_base::primary:
+ flags = NORM_IGNORESYMBOLS | NORM_IGNORECASE | NORM_IGNORENONSPACE;
+ break;
+ case collator_base::secondary:
+ flags = NORM_IGNORESYMBOLS | NORM_IGNORECASE;
+ break;
+ case collator_base::tertiary:
+ flags = NORM_IGNORESYMBOLS;
+ break;
+ default:
+ flags = 0;
+ }
+ return flags;
+ }
+
+
+
+ #ifdef BOOST_LOCALE_WINDOWS_2000_API
+
+ class winlocale{
+ public:
+ winlocale() :
+ lcid(0)
+ {
+ }
+
+ winlocale(std::string const &name)
+ {
+ lcid = locale_to_lcid(name);
+ }
+
+ unsigned lcid;
+
+ bool is_c() const
+ {
+ return lcid == 0;
+ }
+ };
+
+
+ ////////////////////////////////////////////////////////////////////////
+ ///
+ /// Number Format
+ ///
+ ////////////////////////////////////////////////////////////////////////
+
+ inline numeric_info wcsnumformat_l(winlocale const &l)
+ {
+ numeric_info res;
+ res.decimal_point = L'.';
+ unsigned lcid = l.lcid;
+
+ if(lcid == 0)
+ return res;
+
+ // limits according to MSDN
+ static const int th_size = 4;
+ static const int de_size = 4;
+ static const int gr_size = 10;
+
+ wchar_t th[th_size]={0};
+ wchar_t de[de_size]={0};
+ wchar_t gr[gr_size]={0};
+
+ if( GetLocaleInfoW(lcid,LOCALE_STHOUSAND,th,th_size)==0
+ || GetLocaleInfoW(lcid,LOCALE_SDECIMAL ,de,de_size)==0
+ || GetLocaleInfoW(lcid,LOCALE_SGROUPING,gr,gr_size)==0)
+ {
+ return res;
+ }
+ res.decimal_point = de;
+ res.thousands_sep = th;
+ bool inf_group = false;
+ for(unsigned i=0;gr[i];i++) {
+ if(gr[i]==L';')
+ continue;
+ if(L'1'<= gr[i] && gr[i]<=L'9') {
+ res.grouping += char(gr[i]-L'0');
+ }
+ else if(gr[i]==L'0')
+ inf_group = true;
+ }
+ if(!inf_group) {
+ if(std::numeric_limits<char>::is_signed) {
+ res.grouping+=std::numeric_limits<char>::min();
+ }
+ else {
+ res.grouping+=std::numeric_limits<char>::max();
+ }
+ }
+ return res;
+ }
+
+ inline std::wstring win_map_string_l(unsigned flags,wchar_t const *begin,wchar_t const *end,winlocale const &l)
+ {
+ std::wstring res;
+ int len = LCMapStringW(l.lcid,flags,begin,end-begin,0,0);
+ if(len == 0)
+ return res;
+ std::vector<wchar_t> buf(len+1);
+ int l2 = LCMapStringW(l.lcid,flags,begin,end-begin,&buf.front(),buf.size());
+ res.assign(&buf.front(),l2);
+ return res;
+ }
+
+ ////////////////////////////////////////////////////////////////////////
+ ///
+ /// Collation
+ ///
+ ////////////////////////////////////////////////////////////////////////
+
+
+ inline int wcscoll_l( collator_base::level_type level,
+ wchar_t const *lb,wchar_t const *le,
+ wchar_t const *rb,wchar_t const *re,
+ winlocale const &l)
+ {
+ return CompareStringW(l.lcid,collation_level_to_flag(level),lb,le-lb,rb,re-rb) - 2;
+ }
+
+
+ ////////////////////////////////////////////////////////////////////////
+ ///
+ /// Money Format
+ ///
+ ////////////////////////////////////////////////////////////////////////
+
+ inline std::wstring wcsfmon_l(double value,winlocale const &l)
+ {
+ std::wostringstream ss;
+ ss.imbue(std::locale::classic());
+
+ ss << std::setprecision(std::numeric_limits<double>::digits10+1) << value;
+ std::wstring sval = ss.str();
+ int len = GetCurrencyFormatW(l.lcid,0,sval.c_str(),0,0,0);
+ std::vector<wchar_t> buf(len+1);
+ GetCurrencyFormatW(l.lcid,0,sval.c_str(),0,&buf.front(),len);
+ return &buf.front();
+ }
+
+ ////////////////////////////////////////////////////////////////////////
+ ///
+ /// Time Format
+ ///
+ ////////////////////////////////////////////////////////////////////////
+
+
+ inline std::wstring wcs_format_date_l(wchar_t const *format,SYSTEMTIME const *tm,winlocale const &l)
+ {
+ int len = GetDateFormatW(l.lcid,0,tm,format,0,0);
+ std::vector<wchar_t> buf(len+1);
+ GetDateFormatW(l.lcid,0,tm,format,&buf.front(),len);
+ return &buf.front();
+ }
+
+ inline std::wstring wcs_format_time_l(wchar_t const *format,SYSTEMTIME const *tm,winlocale const &l)
+ {
+ int len = GetTimeFormatW(l.lcid,0,tm,format,0,0);
+ std::vector<wchar_t> buf(len+1);
+ GetTimeFormatW(l.lcid,0,tm,format,&buf.front(),len);
+ return &buf.front();
+ }
+
+ inline std::wstring wcsfold(wchar_t const *begin,wchar_t const *end)
+ {
+ winlocale l;
+ l.lcid = 0x0409; // en-US
+ return win_map_string_l(LCMAP_LOWERCASE,begin,end,l);
+ }
+
+ inline std::wstring wcsnormalize(norm_type norm,wchar_t const *begin,wchar_t const *end)
+ {
+ // We use FoldString, under Vista it actually does normalization;
+ // under XP and below it does something similar, half job, better then nothing
+ unsigned flags = 0;
+ switch(norm) {
+ case norm_nfd:
+ flags = MAP_COMPOSITE;
+ break;
+ case norm_nfc:
+ flags = MAP_PRECOMPOSED;
+ break;
+ case norm_nfkd:
+ flags = MAP_FOLDCZONE;
+ break;
+ case norm_nfkc:
+ flags = MAP_FOLDCZONE | MAP_COMPOSITE;
+ break;
+ default:
+ flags = MAP_PRECOMPOSED;
+ }
+
+ int len = FoldStringW(flags,begin,end-begin,0,0);
+ if(len == 0)
+ return std::wstring();
+ std::vector<wchar_t> v(len+1);
+ len = FoldStringW(flags,begin,end-begin,&v.front(),len+1);
+ return std::wstring(&v.front(),len);
+ }
+
+
+ #endif
+
+ inline std::wstring wcsxfrm_l(collator_base::level_type level,wchar_t const *begin,wchar_t const *end,winlocale const &l)
+ {
+ int flag = LCMAP_SORTKEY | collation_level_to_flag(level);
+
+ return win_map_string_l(flag,begin,end,l);
+ }
+
+ inline std::wstring towupper_l(wchar_t const *begin,wchar_t const *end,winlocale const &l)
+ {
+ return win_map_string_l(LCMAP_UPPERCASE | LCMAP_LINGUISTIC_CASING,begin,end,l);
+ }
+
+ inline std::wstring towlower_l(wchar_t const *begin,wchar_t const *end,winlocale const &l)
+ {
+ return win_map_string_l(LCMAP_LOWERCASE | LCMAP_LINGUISTIC_CASING,begin,end,l);
+ }
+
+ inline std::wstring wcsftime_l(char c,std::tm const *tm,winlocale const &l)
+ {
+ SYSTEMTIME wtm=SYSTEMTIME();
+ wtm.wYear = tm->tm_year + 1900;
+ wtm.wMonth = tm->tm_mon+1;
+ wtm.wDayOfWeek = tm->tm_wday;
+ wtm.wDay = tm->tm_mday;
+ wtm.wHour = tm->tm_hour;
+ wtm.wMinute = tm->tm_min;
+ wtm.wSecond = tm->tm_sec;
+ switch(c) {
+ case 'a': // Abbr Weekday
+ return wcs_format_date_l(L"ddd",&wtm,l);
+ case 'A': // Full Weekday
+ return wcs_format_date_l(L"dddd",&wtm,l);
+ case 'b': // Abbr Month
+ return wcs_format_date_l(L"MMM",&wtm,l);
+ case 'B': // Full Month
+ return wcs_format_date_l(L"MMMM",&wtm,l);
+ case 'c': // DateTile Full
+ return wcs_format_date_l(0,&wtm,l) + L" " + wcs_format_time_l(0,&wtm,l);
+ // not supported by WIN ;(
+ // case 'C': // Century -> 1980 -> 19
+ // retur
+ case 'd': // Day of Month [01,31]
+ return wcs_format_date_l(L"dd",&wtm,l);
+ case 'D': // %m/%d/%y
+ return wcs_format_date_l(L"MM/dd/yy",&wtm,l);
+ case 'e': // Day of Month [1,31]
+ return wcs_format_date_l(L"d",&wtm,l);
+ case 'h': // == b
+ return wcs_format_date_l(L"MMM",&wtm,l);
+ case 'H': // 24 clock hour 00,23
+ return wcs_format_time_l(L"HH",&wtm,l);
+ case 'I': // 12 clock hour 01,12
+ return wcs_format_time_l(L"hh",&wtm,l);
+ /*
+ case 'j': // day of year 001,366
+ return "D";*/
+ case 'm': // month as [01,12]
+ return wcs_format_date_l(L"MM",&wtm,l);
+ case 'M': // minute [00,59]
+ return wcs_format_time_l(L"mm",&wtm,l);
+ case 'n': // \n
+ return L"\n";
+ case 'p': // am-pm
+ return wcs_format_time_l(L"tt",&wtm,l);
+ case 'r': // time with AM/PM %I:%M:%S %p
+ return wcs_format_time_l(L"hh:mm:ss tt",&wtm,l);
+ case 'R': // %H:%M
+ return wcs_format_time_l(L"HH:mm",&wtm,l);
+ case 'S': // second [00,61]
+ return wcs_format_time_l(L"ss",&wtm,l);
+ case 't': // \t
+ return L"\t";
+ case 'T': // %H:%M:%S
+ return wcs_format_time_l(L"HH:mm:ss",&wtm,l);
+/* case 'u': // weekday 1,7 1=Monday
+ case 'U': // week number of year [00,53] Sunday first
+ case 'V': // week number of year [01,53] Moday first
+ case 'w': // weekday 0,7 0=Sunday
+ case 'W': // week number of year [00,53] Moday first, */
+ case 'x': // Date
+ return wcs_format_date_l(0,&wtm,l);
+ case 'X': // Time
+ return wcs_format_time_l(0,&wtm,l);
+ case 'y': // Year [00-99]
+ return wcs_format_date_l(L"yy",&wtm,l);
+ case 'Y': // Year 1998
+ return wcs_format_date_l(L"yyyy",&wtm,l);
+ case '%': // %
+ return L"%";
+ default:
+ return L"";
+ }
+ }
+
+
+
+} // win
+} // locale
+} // boost
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/src/win32/collate.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/win32/collate.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,127 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <locale>
+#include <string>
+#include <ios>
+#include <boost/locale/encoding.hpp>
+#include <boost/locale/generator.hpp>
+#include "api.hpp"
+#include "../shared/mo_hash.hpp"
+
+namespace boost {
+namespace locale {
+namespace impl_win {
+
+class utf8_collator : public collator<char> {
+public:
+ utf8_collator(winlocale lc,size_t refs = 0) :
+ collator<char>(refs),
+ lc_(lc)
+ {
+ }
+ virtual int do_compare(collator_base::level_type level,char const *lb,char const *le,char const *rb,char const *re) const
+ {
+ std::wstring l=conv::to_utf<wchar_t>(lb,le,"UTF-8");
+ std::wstring r=conv::to_utf<wchar_t>(rb,re,"UTF-8");
+ return wcscoll_l(level,l.c_str(),l.c_str()+l.size(),r.c_str(),r.c_str()+r.size(),lc_);
+ }
+ virtual long do_hash(collator_base::level_type level,char const *b,char const *e) const
+ {
+ std::string key = do_transform(level,b,e);
+ return gnu_gettext::pj_winberger_hash_function(key.c_str(),key.c_str() + key.size());
+ }
+ virtual std::string do_transform(collator_base::level_type level,char const *b,char const *e) const
+ {
+ std::wstring tmp=conv::to_utf<wchar_t>(b,e,"UTF-8");
+ std::wstring wkey = wcsxfrm_l(level,tmp.c_str(),tmp.c_str()+tmp.size(),lc_);
+ std::string key;
+ if(sizeof(wchar_t)==2)
+ key.reserve(wkey.size()*2);
+ else
+ key.reserve(wkey.size()*3);
+ for(unsigned i=0;i<wkey.size();i++) {
+ if(sizeof(wchar_t)==2) {
+ uint16_t tv = static_cast<uint16_t>(wkey[i]);
+ key += char(tv >> 8);
+ key += char(tv & 0xFF);
+ }
+ else { // 4
+ uint32_t tv = static_cast<uint32_t>(wkey[i]);
+ // 21 bit
+ key += char((tv >> 16) & 0xFF);
+ key += char((tv >> 8) & 0xFF);
+ key += char(tv & 0xFF);
+ }
+ }
+ return key;
+ }
+private:
+ winlocale lc_;
+};
+
+
+class utf16_collator : public collator<wchar_t> {
+public:
+ typedef std::collate<wchar_t> wfacet;
+ utf16_collator(winlocale lc,size_t refs = 0) :
+ collator<wchar_t>(refs),
+ lc_(lc)
+ {
+ }
+ virtual int do_compare(collator_base::level_type level,wchar_t const *lb,wchar_t const *le,wchar_t const *rb,wchar_t const *re) const
+ {
+ return wcscoll_l(level,lb,le,rb,re,lc_);
+ }
+ virtual long do_hash(collator_base::level_type level,wchar_t const *b,wchar_t const *e) const
+ {
+ std::wstring key = do_transform(level,b,e);
+ char const *begin = reinterpret_cast<char const *>(key.c_str());
+ char const *end = begin + key.size()*sizeof(wchar_t);
+ return gnu_gettext::pj_winberger_hash_function(begin,end);
+ }
+ virtual std::wstring do_transform(collator_base::level_type level,wchar_t const *b,wchar_t const *e) const
+ {
+ return wcsxfrm_l(level,b,e,lc_);
+ }
+private:
+ winlocale lc_;
+};
+
+
+std::locale create_collate( std::locale const &in,
+ winlocale const &lc,
+ character_facet_type type)
+{
+ if(lc.is_c()) {
+ switch(type) {
+ case char_facet:
+ return std::locale(in,new std::collate_byname<char>("C"));
+ case wchar_t_facet:
+ return std::locale(in,new std::collate_byname<wchar_t>("C"));
+ }
+ }
+ else {
+ switch(type) {
+ case char_facet:
+ return std::locale(in,new utf8_collator(lc));
+ case wchar_t_facet:
+ return std::locale(in,new utf16_collator(lc));
+ }
+ }
+ return in;
+}
+
+
+} // impl_std
+} // locale
+} //boost
+
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/win32/converter.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/win32/converter.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,106 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+
+#include <locale>
+#include <stdexcept>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/conversion.hpp>
+#include <boost/locale/encoding.hpp>
+#include <vector>
+#include <string.h>
+#include "api.hpp"
+#include "all_generator.hpp"
+
+namespace boost {
+namespace locale {
+namespace impl_win {
+
+class utf16_converter : public converter<wchar_t>
+{
+public:
+ utf16_converter(winlocale const &lc,size_t refs = 0) :
+ converter<wchar_t>(refs),
+ lc_(lc)
+ {
+ }
+ virtual std::wstring convert(converter_base::conversion_type how,wchar_t const *begin,wchar_t const *end,int flags = 0) const
+ {
+ switch(how) {
+ case converter_base::upper_case:
+ return towupper_l(begin,end,lc_);
+ case converter_base::lower_case:
+ return towlower_l(begin,end,lc_);
+ case converter_base::case_folding:
+ return wcsfold(begin,end);
+ case converter_base::normalization:
+ return wcsnormalize(static_cast<norm_type>(flags),begin,end);
+ default:
+ return std::wstring(begin,end-begin);
+ }
+ }
+private:
+ winlocale lc_;
+};
+
+class utf8_converter : public converter<char> {
+public:
+ utf8_converter(winlocale const &lc,size_t refs = 0) :
+ converter<char>(refs),
+ lc_(lc)
+ {
+ }
+ virtual std::string convert(converter_base::conversion_type how,char const *begin,char const *end,int flags = 0) const
+ {
+ std::wstring tmp = conv::to_utf<wchar_t>(begin,end,"UTF-8");
+ wchar_t const *wb=tmp.c_str();
+ wchar_t const *we=wb+tmp.size();
+
+ std::wstring res;
+
+ switch(how) {
+ case upper_case:
+ res = towupper_l(wb,we,lc_);
+ break;
+ case lower_case:
+ res = towlower_l(wb,we,lc_);
+ break;
+ case case_folding:
+ res = wcsfold(wb,we);
+ break;
+ case normalization:
+ res = wcsnormalize(static_cast<norm_type>(flags),wb,we);
+ break;
+ default:
+ res = tmp; // make gcc happy
+ }
+ return conv::from_utf(res,"UTF-8");
+ }
+private:
+ winlocale lc_;
+};
+
+std::locale create_convert( std::locale const &in,
+ winlocale const &lc,
+ character_facet_type type)
+{
+ switch(type) {
+ case char_facet:
+ return std::locale(in,new utf8_converter(lc));
+ case wchar_t_facet:
+ return std::locale(in,new utf16_converter(lc));
+ default:
+ return in;
+ }
+}
+
+
+} // namespace impl_win32
+} // locale
+} // boost
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/win32/lcid.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/win32/lcid.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,127 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include "lcid.hpp"
+#include <string.h>
+#include <string>
+#include <sstream>
+#include <map>
+
+#include "../util/locale_data.hpp"
+
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
+#include <windows.h>
+
+#include <boost/thread.hpp>
+
+namespace boost {
+namespace locale {
+namespace impl_win {
+
+typedef std::map<std::string,unsigned> table_type;
+
+static table_type * volatile table = 0;
+
+boost::mutex &lcid_table_mutex()
+{
+ static boost::mutex m;
+ return m;
+}
+
+table_type &real_lcid_table()
+{
+ static table_type table;
+ return table;
+}
+
+BOOL CALLBACK proc(char *s)
+{
+ table_type &tbl = real_lcid_table();
+ try {
+ std::istringstream ss;
+ ss.str(s);
+ ss >> std::hex;
+
+ unsigned lcid ;
+ ss >>lcid;
+ if(ss.fail() || !ss.eof()) {
+ return FALSE;
+ }
+
+ char iso_639_lang[16];
+ char iso_3166_country[16];
+ if(GetLocaleInfoA(lcid,LOCALE_SISO639LANGNAME,iso_639_lang,sizeof(iso_639_lang))==0)
+ return FALSE;
+ std::string lc_name = iso_639_lang;
+ if(GetLocaleInfoA(lcid,LOCALE_SISO3166CTRYNAME,iso_3166_country,sizeof(iso_3166_country))!=0) {
+ lc_name += "_";
+ lc_name += iso_3166_country;
+ }
+ table_type::iterator p = tbl.find(lc_name);
+ if(p!=tbl.end()) {
+ if(p->second > lcid)
+ p->second = lcid;
+ }
+ else {
+ tbl[lc_name]=lcid;
+ }
+ }
+ catch(...) {
+ tbl.clear();
+ return FALSE;
+ }
+ return TRUE;
+}
+
+
+table_type const &get_ready_lcid_table()
+{
+ if(table)
+ return *table;
+ else {
+ boost::unique_lock<boost::mutex> lock(lcid_table_mutex());
+ if(table)
+ return *table;
+ EnumSystemLocalesA(proc,LCID_INSTALLED);
+ table = &real_lcid_table();
+ return *table;
+ }
+}
+
+unsigned locale_to_lcid(std::string const &locale_name)
+{
+ if(locale_name.empty()) {
+ return LOCALE_USER_DEFAULT;
+ }
+ boost::locale::util::locale_data d;
+ d.parse(locale_name);
+ std::string id = d.language;
+
+ if(!d.country.empty()) {
+ id+="_"+d.country;
+ }
+ if(!d.variant.empty()) {
+ id+="@" + d.variant;
+ }
+
+ table_type const &tbl = get_ready_lcid_table();
+ table_type::const_iterator p = tbl.find(id);
+
+ unsigned lcid = 0;
+ if(p!=tbl.end())
+ lcid = p->second;
+ return lcid;
+}
+
+
+} // impl_win
+} // locale
+} // boost
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/win32/lcid.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/win32/lcid.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,24 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_WIN32_LCID_HPP
+#define BOOST_LOCALE_IMPL_WIN32_LCID_HPP
+
+#include <string>
+
+namespace boost {
+ namespace locale {
+ namespace impl_win {
+
+ unsigned locale_to_lcid(std::string const &locale_name);
+
+ } // impl_win
+ } // locale
+} // boost
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/win32/numeric.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/win32/numeric.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,245 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <locale>
+#include <string>
+#include <ios>
+#include <boost/locale/formatting.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/encoding.hpp>
+#include <boost/shared_ptr.hpp>
+#include <sstream>
+#include <stdlib.h>
+#include <time.h>
+#include <string.h>
+#include <wctype.h>
+#include <ctype.h>
+
+#include "all_generator.hpp"
+#include "api.hpp"
+#include "../util/numeric.hpp"
+
+namespace boost {
+namespace locale {
+namespace impl_win {
+ namespace {
+
+ std::ostreambuf_iterator<wchar_t> write_it(std::ostreambuf_iterator<wchar_t> out,std::wstring const &s)
+ {
+ for(size_t i=0;i<s.size();i++)
+ *out++ = s[i];
+ return out;
+ }
+
+ std::ostreambuf_iterator<char> write_it(std::ostreambuf_iterator<char> out,std::wstring const &s)
+ {
+ std::string tmp = conv::from_utf(s,"UTF-8");
+ for(size_t i=0;i<tmp.size();i++)
+ *out++ = tmp[i];
+ return out;
+ }
+ }
+
+
+template<typename CharType>
+class num_format : public util::base_num_format<CharType>
+{
+public:
+ typedef typename std::num_put<CharType>::iter_type iter_type;
+ typedef std::basic_string<CharType> string_type;
+ typedef CharType char_type;
+
+ num_format(winlocale const &lc,size_t refs = 0) :
+ util::base_num_format<CharType>(refs),
+ lc_(lc)
+ {
+ }
+private:
+
+ virtual
+ iter_type do_format_currency(bool /*intl*/,iter_type out,std::ios_base &ios,char_type fill,long double val) const
+ {
+ if(lc_.is_c()) {
+ std::locale loc = ios.getloc();
+ int digits = std::use_facet<std::moneypunct<char_type> >(loc).frac_digits();
+ while(digits > 0) {
+ val*=10;
+ digits --;
+ }
+ std::ios_base::fmtflags f=ios.flags();
+ ios.flags(f | std::ios_base::showbase);
+ out = std::use_facet<std::money_put<char_type> >(loc).put(out,false,ios,fill,val);
+ ios.flags(f);
+ return out;
+ }
+ else {
+ std::wstring cur = wcsfmon_l(val,lc_);
+ return write_it(out,cur);
+ }
+ }
+
+private:
+ winlocale lc_;
+
+}; /// num_format
+
+template<typename CharType>
+class time_put_win : public std::time_put<CharType> {
+public:
+ time_put_win(winlocale const &lc, size_t refs = 0) :
+ std::time_put<CharType>(refs),
+ lc_(lc)
+ {
+ }
+ virtual ~time_put_win()
+ {
+ }
+ typedef typename std::time_put<CharType>::iter_type iter_type;
+ typedef CharType char_type;
+ typedef std::basic_string<char_type> string_type;
+
+ virtual iter_type do_put( iter_type out,
+ std::ios_base &/*ios*/,
+ CharType /*fill*/,
+ std::tm const *tm,
+ char format,
+ char /*modifier*/) const
+ {
+ return write_it(out,wcsftime_l(format,tm,lc_));
+ }
+
+private:
+ winlocale lc_;
+};
+
+
+template<typename CharType>
+class num_punct_win : public std::numpunct<CharType> {
+public:
+ typedef std::basic_string<CharType> string_type;
+ num_punct_win(winlocale const &lc,size_t refs = 0) :
+ std::numpunct<CharType>(refs)
+ {
+ numeric_info np = wcsnumformat_l(lc) ;
+ if(sizeof(CharType) == 1 && np.thousands_sep == L"\xA0")
+ np.thousands_sep=L" ";
+
+ to_str(np.thousands_sep,thousands_sep_);
+ to_str(np.decimal_point,decimal_point_);
+ grouping_ = np.grouping;
+ if(thousands_sep_.size() > 1)
+ grouping_ = std::string();
+ if(decimal_point_.size() > 1)
+ decimal_point_ = CharType('.');
+ }
+
+ void to_str(std::wstring &s1,std::wstring &s2)
+ {
+ s2.swap(s1);
+ }
+
+ void to_str(std::wstring &s1,std::string &s2)
+ {
+ s2=conv::from_utf(s1,"UTF-8");
+ }
+ virtual CharType do_decimal_point() const
+ {
+ return *decimal_point_.c_str();
+ }
+ virtual CharType do_thousands_sep() const
+ {
+ return *thousands_sep_.c_str();
+ }
+ virtual std::string do_grouping() const
+ {
+ return grouping_;
+ }
+ virtual string_type do_truename() const
+ {
+ static const char t[]="true";
+ return string_type(t,t+sizeof(t)-1);
+ }
+ virtual string_type do_falsename() const
+ {
+ static const char t[]="false";
+ return string_type(t,t+sizeof(t)-1);
+ }
+private:
+ string_type decimal_point_;
+ string_type thousands_sep_;
+ std::string grouping_;
+};
+
+template<typename CharType>
+std::locale create_formatting_impl(std::locale const &in,winlocale const &lc)
+{
+ if(lc.is_c()) {
+ std::locale tmp(in,new std::numpunct_byname<CharType>("C"));
+ tmp=std::locale(tmp,new std::time_put_byname<CharType>("C"));
+ tmp = std::locale(tmp,new num_format<CharType>(lc));
+ return tmp;
+ }
+ else {
+ std::locale tmp(in,new num_punct_win<CharType>(lc));
+ tmp = std::locale(tmp,new time_put_win<CharType>(lc));
+ tmp = std::locale(tmp,new num_format<CharType>(lc));
+ return tmp;
+ }
+}
+
+template<typename CharType>
+std::locale create_parsing_impl(std::locale const &in,winlocale const &lc)
+{
+ std::numpunct<CharType> *np = 0;
+ if(lc.is_c())
+ np = new std::numpunct_byname<CharType>("C");
+ else
+ np = new num_punct_win<CharType>(lc);
+ std::locale tmp(in,np);
+ tmp = std::locale(tmp,new util::base_num_parse<CharType>());
+ return tmp;
+}
+
+
+std::locale create_formatting( std::locale const &in,
+ winlocale const &lc,
+ character_facet_type type)
+{
+ switch(type) {
+ case char_facet:
+ return create_formatting_impl<char>(in,lc);
+ case wchar_t_facet:
+ return create_formatting_impl<wchar_t>(in,lc);
+ default:
+ return in;
+ }
+}
+
+std::locale create_parsing( std::locale const &in,
+ winlocale const &lc,
+ character_facet_type type)
+{
+ switch(type) {
+ case char_facet:
+ return create_parsing_impl<char>(in,lc);
+ case wchar_t_facet:
+ return create_parsing_impl<wchar_t>(in,lc);
+ default:
+ return in;
+ }
+}
+
+
+
+} // impl_std
+} // locale
+} //boost
+
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/win32/win_backend.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/win32/win_backend.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,153 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#define BOOST_LOCALE_SOURCE
+#include <boost/locale/localization_backend.hpp>
+#include <boost/locale/gnu_gettext.hpp>
+#include <boost/locale/info.hpp>
+#include "all_generator.hpp"
+#include "win_backend.hpp"
+#include <boost/locale/util.hpp>
+#include "../util/gregorian.hpp"
+#include "../util/locale_data.hpp"
+#include "api.hpp"
+#include <algorithm>
+#include <iterator>
+
+namespace boost {
+namespace locale {
+namespace impl_win {
+
+ class winapi_localization_backend : public localization_backend {
+ public:
+ winapi_localization_backend() :
+ invalid_(true)
+ {
+ }
+ winapi_localization_backend(winapi_localization_backend const &other) :
+ localization_backend(),
+ paths_(other.paths_),
+ domains_(other.domains_),
+ locale_id_(other.locale_id_),
+ invalid_(true)
+ {
+ }
+ virtual winapi_localization_backend *clone() const
+ {
+ return new winapi_localization_backend(*this);
+ }
+
+ void set_option(std::string const &name,std::string const &value)
+ {
+ invalid_ = true;
+ if(name=="locale")
+ locale_id_ = value;
+ else if(name=="message_path")
+ paths_.push_back(value);
+ else if(name=="message_application")
+ domains_.push_back(value);
+
+ }
+ void clear_options()
+ {
+ invalid_ = true;
+ locale_id_.clear();
+ paths_.clear();
+ domains_.clear();
+ }
+
+ void prepare_data()
+ {
+ if(!invalid_)
+ return;
+ invalid_ = false;
+ if(locale_id_.empty()) {
+ real_id_ = util::get_system_locale(true); // always UTF-8
+ lc_ = winlocale(real_id_);
+ }
+ else {
+ lc_=winlocale(locale_id_);
+ real_id_ = locale_id_;
+ }
+ util::locale_data d;
+ d.parse(real_id_);
+ if(!d.utf8) {
+ lc_ = winlocale();
+ // Make it C as non-UTF8 locales are not supported
+ }
+ }
+
+ virtual std::locale install(std::locale const &base,
+ locale_category_type category,
+ character_facet_type type = nochar_facet)
+ {
+ prepare_data();
+
+ switch(category) {
+ case convert_facet:
+ return create_convert(base,lc_,type);
+ case collation_facet:
+ return create_collate(base,lc_,type);
+ case formatting_facet:
+ return create_formatting(base,lc_,type);
+ case parsing_facet:
+ return create_parsing(base,lc_,type);
+ case calendar_facet:
+ {
+ util::locale_data inf;
+ inf.parse(real_id_);
+ return util::install_gregorian_calendar(base,inf.country);
+ }
+ case message_facet:
+ {
+ gnu_gettext::messages_info minf;
+ std::locale tmp=util::create_info(std::locale::classic(),real_id_);
+ boost::locale::info const &inf=std::use_facet<boost::locale::info>(tmp);
+ minf.language = inf.language();
+ minf.country = inf.country();
+ minf.variant = inf.variant();
+ minf.encoding = inf.encoding();
+ std::copy(domains_.begin(),domains_.end(),std::back_inserter<gnu_gettext::messages_info::domains_type>(minf.domains));
+ minf.paths = paths_;
+ switch(type) {
+ case char_facet:
+ return std::locale(base,gnu_gettext::create_messages_facet<char>(minf));
+ case wchar_t_facet:
+ return std::locale(base,gnu_gettext::create_messages_facet<wchar_t>(minf));
+ default:
+ return base;
+ }
+ }
+ case information_facet:
+ return util::create_info(base,real_id_);
+ case codepage_facet:
+ return util::create_codecvt(base,util::create_utf8_converter(),type);
+ default:
+ return base;
+ }
+ }
+
+ private:
+
+ std::vector<std::string> paths_;
+ std::vector<std::string> domains_;
+ std::string locale_id_;
+ std::string real_id_;
+
+ bool invalid_;
+ winlocale lc_;
+ };
+
+ localization_backend *create_localization_backend()
+ {
+ return new winapi_localization_backend();
+ }
+
+} // impl win
+} // locale
+} // boost
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/src/win32/win_backend.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/src/win32/win_backend.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,20 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_IMPL_WIN32_LOCALIZATION_BACKEND_HPP
+#define BOOST_LOCALE_IMPL_WIN32_LOCALIZATION_BACKEND_HPP
+namespace boost {
+ namespace locale {
+ class localization_backend;
+ namespace impl_win {
+ localization_backend *create_localization_backend();
+ } // impl_win
+ } // locale
+} // boost
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/test/Jamfile.v2
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/Jamfile.v2 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,52 @@
+#
+# (C) 2011 Artyom Beilis
+#
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt.
+
+
+project
+ : requirements
+ <library>/boost/locale//boost_locale
+ <use>../build//build_flags
+ # Make sure we get all defines we need
+ # Otherwise we would have problem knowing
+ # what backends are actually in use
+ <link>shared
+ <define>BOOST_LOCALE_DYN_LINK=1
+ ;
+
+# Shared boost.locale tests
+
+test-suite "boost_locale_test"
+ :
+ # Shared
+ [ run test_date_time.cpp ]
+ [ run test_ios_prop.cpp ]
+ [ run test_codepage_converter.cpp ]
+ [ run test_codepage.cpp ]
+ [ run test_message.cpp : $(BOOST_ROOT)/libs/locale/test ]
+ # icu
+ [ run test_collate.cpp ]
+ [ run test_convert.cpp ]
+ [ run test_boundary.cpp ]
+ [ run test_formatting.cpp : : : <optimization>off ]
+ [ run test_generator.cpp ]
+ [ run test_icu_vs_os_timezone.cpp ]
+ # winapi
+ [ run test_winapi_collate.cpp ]
+ [ run test_winapi_convert.cpp ]
+ [ run test_winapi_formatting.cpp ]
+ # posix
+ [ run test_posix_collate.cpp ]
+ [ run test_posix_convert.cpp ]
+ [ run test_posix_formatting.cpp ]
+ # std
+ [ run test_std_collate.cpp ]
+ [ run test_std_convert.cpp ]
+ [ run test_std_formatting.cpp ]
+ ;
+
+# vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/test/generate_catalogs.sh
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/generate_catalogs.sh 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,6 @@
+#!/bin/sh
+msgfmt --endianness=big he/LC_MESSAGES/simple.po -o he/LC_MESSAGES/simple.mo
+msgfmt he/LC_MESSAGES/default.po -o he/LC_MESSAGES/default.mo
+msgfmt he/LC_MESSAGES/fall.po -o he/LC_MESSAGES/fall.mo
+msgfmt he_IL/LC_MESSAGES/full.po -o he_IL/LC_MESSAGES/full.mo
+

Added: trunk/libs/locale/test/he/LC_MESSAGES/default.mo
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/test/he/LC_MESSAGES/default.po
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/he/LC_MESSAGES/default.po 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,35 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural= (n==1 ? 0 : (n==2 ? 1 : (n>10 ? 3 : 2))) ;\n"
+
+msgid "בדיקה"
+msgstr "test"
+
+msgid "hello"
+msgstr "שלום"
+
+msgid "#hello"
+msgstr "#שלום"
+
+msgctxt "context"
+msgid "hello"
+msgstr "שלום בהקשר אחר"
+
+msgid "x day"
+msgid_plural "x days"
+msgstr[0] "יום x"
+msgstr[1] "יומיים"
+msgstr[2] "x ימים"
+msgstr[3] "x יום"
+
+msgctxt "context"
+msgid "x day"
+msgid_plural "בהקשר x days"
+msgstr[0] "בהקשר יום x"
+msgstr[1] "בהקשר יומיים"
+msgstr[2] "בהקשר x ימים"
+msgstr[3] "בהקשר x יום"
+

Added: trunk/libs/locale/test/he/LC_MESSAGES/fall.mo
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/test/he/LC_MESSAGES/fall.po
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/he/LC_MESSAGES/fall.po 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,10 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "test"
+msgstr "he"
+
+

Added: trunk/libs/locale/test/he/LC_MESSAGES/simple.mo
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/test/he/LC_MESSAGES/simple.po
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/he/LC_MESSAGES/simple.po 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,23 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n!=1;\n"
+
+msgid "hello"
+msgstr "×”×™×™"
+
+msgid "#hello"
+msgstr "#×”×™×™"
+
+msgctxt "context"
+msgid "hello"
+msgstr "היי בהקשר אחר"
+
+
+#: test_message.cpp:47
+msgid "test"
+msgid_plural "tests"
+msgstr[0] ""
+msgstr[1] ""

Added: trunk/libs/locale/test/he_IL/LC_MESSAGES/full.mo
==============================================================================
Binary file. No diff available.

Added: trunk/libs/locale/test/he_IL/LC_MESSAGES/full.po
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/he_IL/LC_MESSAGES/full.po 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,10 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "test"
+msgstr "he_IL"
+
+

Added: trunk/libs/locale/test/test_boundary.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_boundary.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,530 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef BOOST_LOCALE_WITH_ICU
+#include <iostream>
+int main()
+{
+ std::cout << "ICU is not build... Skipping" << std::endl;
+}
+#else
+
+//#define BOOST_LOCALE_ERROR_LIMIT 1000000
+//#define BOOST_LOCALE_ERROR_LIMIT 0
+
+#include <boost/locale/boundary.hpp>
+#include <boost/locale/generator.hpp>
+#include "test_locale.hpp"
+#include "test_locale_tools.hpp"
+#include <list>
+
+// Debugging code
+
+template<typename Char>
+void print_str(std::basic_string<Char> const &/*s*/)
+{
+}
+
+template<>
+void print_str<char>(std::basic_string<char> const &s)
+{
+ std::cout << "[" << s <<"]" << std::endl;
+}
+
+
+namespace lb = boost::locale::boundary;
+
+template<typename Char,typename Iterator>
+void test_word_container(Iterator begin,Iterator end,
+ std::vector<int> const &ipos,
+ std::vector<int> const &imasks,
+ std::vector<std::basic_string<Char> > const &ichunks,
+ std::locale l,
+ lb::boundary_type bt=lb::word
+ )
+{
+ for(int sm=(bt == lb::word ? 31 : 3 ) ;sm>=0;sm--) {
+ unsigned mask =
+ ((sm & 1 ) != 0) * 0xF
+ + ((sm & 2 ) != 0) * 0xF0
+ + ((sm & 4 ) != 0) * 0xF00
+ + ((sm & 8 ) != 0) * 0xF000
+ + ((sm & 16) != 0) * 0xF0000;
+
+ std::vector<int> masks,pos;
+ std::vector<unsigned> bmasks;
+ std::basic_string<Char> empty_chunk;
+
+ std::vector<std::basic_string<Char> > chunks;
+ std::vector<std::basic_string<Char> > fchunks;
+ std::vector<Iterator> iters;
+ iters.push_back(begin);
+ bmasks.push_back(0);
+
+ for(unsigned i=0;i<imasks.size();i++) {
+ if(imasks[i] & mask) {
+ masks.push_back(imasks[i]);
+ chunks.push_back(ichunks[i]);
+ fchunks.push_back(empty_chunk + ichunks[i]);
+ empty_chunk.clear();
+ pos.push_back(ipos[i]);
+ }
+ else {
+ empty_chunk+=ichunks[i];
+ }
+
+ if((imasks[i] & mask) || i==imasks.size()-1){
+ Iterator ptr=begin;
+ std::advance(ptr,ipos[i]);
+ iters.push_back(ptr);
+ bmasks.push_back(imasks[i]);
+ }
+ }
+
+ //
+ // segment iterator tests
+ //
+ {
+ lb::segment_index<Iterator> map(bt,begin,end,l);
+ typedef typename lb::segment_index<Iterator>::iterator iter_type;
+
+ map.rule(mask);
+
+ {
+ unsigned i=0;
+ iter_type p;
+ map.full_select(false);
+ for(p=map.begin();p!=map.end();++p,i++) {
+ TEST(p->str()==chunks[i]);
+ TEST(p->rule() == unsigned(masks[i]));
+ }
+
+ TEST(chunks.size() == i);
+ for(;;) {
+ if(p==map.begin()) {
+ TEST(i==0);
+ break;
+ }
+ else {
+ --p;
+ TEST(p->str()==chunks[--i]);
+ TEST(p->rule() == unsigned(masks[i]));
+ }
+ }
+ for(i=0,p=map.end();i<chunks.size();i++){
+ --p;
+ unsigned index = chunks.size() - i - 1;
+ TEST(p->str()==chunks[index]);
+ TEST(p->rule() == unsigned(masks[index]));
+ }
+ TEST(p==map.begin());
+ }
+
+ {
+ unsigned i=0;
+ iter_type p;
+ map.full_select(true);
+ for(p=map.begin();p!=map.end();++p,i++) {
+ TEST(p->str()==fchunks[i]);
+ TEST(p->rule() == unsigned(masks[i]));
+ }
+
+ TEST(chunks.size() == i);
+
+ for(;;) {
+ if(p==map.begin()) {
+ TEST(i==0);
+ break;
+ }
+ else {
+ --p;
+ if(p->str()!=fchunks[i-1]) {
+ print_str(p->str());
+ print_str(fchunks[i-1]);
+ }
+ TEST(p->str()==fchunks[--i]);
+ TEST(p->rule() == unsigned(masks[i]));
+ }
+ }
+
+ for(i=0,p=map.end();i<chunks.size();i++){
+ --p;
+ unsigned index = chunks.size() - i - 1;
+ TEST(p->str()==fchunks[index]);
+ TEST(p->rule() == unsigned(masks[index]));
+ }
+ TEST(p==map.begin());
+ }
+
+ {
+ iter_type p;
+ unsigned chunk_ptr=0;
+ unsigned i=0;
+ map.full_select(false);
+ for(Iterator optr=begin;optr!=end;optr++,i++) {
+ p=map.find(optr);
+ if(chunk_ptr < pos.size() && i>=unsigned(pos[chunk_ptr])){
+ chunk_ptr++;
+ }
+ if(chunk_ptr>=pos.size()) {
+ TEST(p==map.end());
+ }
+ else {
+ TEST(p->str()==chunks[chunk_ptr]);
+ TEST(p->rule()==unsigned(masks[chunk_ptr]));
+ }
+ }
+ }
+ {
+ iter_type p;
+ unsigned chunk_ptr=0;
+ unsigned i=0;
+ map.full_select(true);
+ for(Iterator optr=begin;optr!=end;optr++,i++) {
+ p=map.find(optr);
+ if(chunk_ptr < pos.size() && i>=unsigned(pos[chunk_ptr])){
+ chunk_ptr++;
+ }
+ if(chunk_ptr>=pos.size()) {
+ TEST(p==map.end());
+ }
+ else {
+ TEST(p->str()==fchunks[chunk_ptr]);
+ TEST(p->rule()==unsigned(masks[chunk_ptr]));
+ }
+ }
+ }
+
+ } // segment iterator tests
+
+ { // break iterator tests
+ lb::boundary_point_index<Iterator> map(bt,begin,end,l);
+ typedef typename lb::boundary_point_index<Iterator>::iterator iter_type;
+
+ map.rule(mask);
+
+ unsigned i=0;
+ iter_type p;
+ for(p=map.begin();p!=map.end();++p,i++) {
+ TEST(p->iterator()==iters[i]);
+ TEST(p->rule()==bmasks[i]);
+ }
+
+ TEST(iters.size() == i);
+
+ do {
+ --p;
+ --i;
+ TEST(p->iterator()==iters.at(i));
+ } while(p!=map.begin());
+ TEST(i==0);
+
+ unsigned iters_ptr=0;
+ for(Iterator optr=begin;optr!=end;optr++) {
+ p=map.find(optr);
+ TEST(p->iterator()==iters[iters_ptr]);
+ if(iters.at(iters_ptr)==optr)
+ iters_ptr++;
+ }
+
+ } // break iterator tests
+
+ { // copy test
+ typedef lb::segment_index<Iterator> ti_type;
+ typedef lb::boundary_point_index<Iterator> bi_type;
+ { // segment to bound
+ ti_type ti(bt,begin,end,l);
+ ti.rule(mask);
+ {
+ bi_type bi(ti);
+ bi.rule(mask);
+ unsigned i=0;
+ typename bi_type::iterator p;
+ for(p=bi.begin();p!=bi.end();++p,i++) {
+ TEST(p->iterator()==iters[i]);
+ TEST(p->rule()==bmasks[i]);
+ }
+ }
+ {
+ bi_type bi;
+ bi.rule(mask);
+ bi = ti;
+ unsigned i=0;
+ typename bi_type::iterator p;
+ for(p=bi.begin();p!=bi.end();++p,i++) {
+ TEST(p->iterator()==iters[i]);
+ TEST(p->rule()==bmasks[i]);
+ }
+ }
+ // boundary_point to bound
+ bi_type bi_2(bt,begin,end,l);
+ bi_2.rule(mask);
+ {
+ bi_type bi(bi_2);
+ unsigned i=0;
+ typename bi_type::iterator p;
+ for(p=bi.begin();p!=bi.end();++p,i++) {
+ TEST(p->iterator()==iters[i]);
+ TEST(p->rule()==bmasks[i]);
+ }
+ }
+ {
+ bi_type bi;
+ bi = bi_2;
+ unsigned i=0;
+ typename bi_type::iterator p;
+ for(p=bi.begin();p!=bi.end();++p,i++) {
+ TEST(p->iterator()==iters[i]);
+ TEST(p->rule()==bmasks[i]);
+ }
+ }
+ }
+ { // boundary_point to segment
+ bi_type bi(bt,begin,end,l);
+ {
+ ti_type ti(bi);
+ ti.rule(mask);
+ unsigned i=0;
+ typename ti_type::iterator p;
+ for(p=ti.begin();p!=ti.end();++p,i++) {
+ TEST(p->str()==chunks[i]);
+ TEST(p->rule()==unsigned(masks[i]));
+ }
+ }
+ {
+ ti_type ti;
+ ti.rule(mask);
+ ti = (bi);
+ unsigned i=0;
+ typename ti_type::iterator p;
+ for(p=ti.begin();p!=ti.end();++p,i++) {
+ TEST(p->str()==chunks[i]);
+ TEST(p->rule()==unsigned(masks[i]));
+ }
+ }
+ ti_type ti_2(bt,begin,end,l);
+ ti_2.rule(mask);
+ {
+ ti_type ti(ti_2);
+ unsigned i=0;
+ typename ti_type::iterator p;
+ for(p=ti.begin();p!=ti.end();++p,i++) {
+ TEST(p->str()==chunks[i]);
+ TEST(p->rule()==unsigned(masks[i]));
+ }
+ }
+ {
+ ti_type ti;
+ ti = (ti_2);
+ unsigned i=0;
+ typename ti_type::iterator p;
+ for(p=ti.begin();p!=ti.end();++p,i++) {
+ TEST(p->str()==chunks[i]);
+ TEST(p->rule()==unsigned(masks[i]));
+ }
+ }
+ }
+ }
+ } // for mask
+
+}
+
+template<typename Char>
+void run_word(std::string *original,int *none,int *num,int *word,int *kana,int *ideo,std::locale l,lb::boundary_type b=lb::word)
+{
+ std::vector<int> pos;
+ std::vector<std::basic_string<Char> > chunks;
+ std::vector<int> masks;
+ std::basic_string<Char> test_string;
+ for(int i=0;!original[i].empty();i++) {
+ chunks.push_back(to_correct_string<Char>(original[i],l));
+ test_string+=chunks.back();
+ pos.push_back(test_string.size());
+ masks.push_back(
+ ( none ? none[i]*15 : 0)
+ | ( num ? ((num[i]*15) << 4) : 0)
+ | ( word ? ((word[i]*15) << 8) : 0)
+ | ( kana ? ((kana[i]*15) << 12) : 0)
+ | ( ideo ? ((ideo[i]*15) << 16) : 0)
+ );
+ }
+
+ std::list<Char> lst(test_string.begin(),test_string.end());
+ test_word_container<Char>(lst.begin(),lst.end(),pos,masks,chunks,l,b);
+ test_word_container<Char>(test_string.begin(),test_string.end(),pos,masks,chunks,l,b);
+}
+
+std::string character[]={"שָ","ל","וֹ","ם","!",""};
+int nones[]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
+
+std::string sentence1[]={"To be\n","or not\n","to be?\n"," That is the question. ","Or maybe not",""};
+int sentence1a[]={ 0, 0, 1, 1, 0, 0};
+int sentence1b[]={ 1, 1, 0, 0, 1, 0};
+
+std::string line1[]={"To ","be\n","or ","not\n","to ","be",""};
+int line1a[]={ 1, 0, 1 , 0, 1, 1 , 0 };
+int line1b[]={ 0, 1, 0 , 1, 0, 0 , 0 };
+
+
+void test_boundaries(std::string *all,int *first,int *second,lb::boundary_type t)
+{
+ boost::locale::generator g;
+ std::cout << " char UTF-8" << std::endl;
+ run_word<char>(all,first,second,0,0,0,g("he_IL.UTF-8"),t);
+ std::cout << " char CP1255" << std::endl;
+ run_word<char>(all,first,second,0,0,0,g("he_IL.cp1255"),t);
+ std::cout << " wchar_t"<<std::endl;
+ run_word<wchar_t>(all,first,second,0,0,0,g("he_IL.UTF-8"),t);
+ #ifdef BOOST_HAS_CHAR16_T
+ std::cout << " char16_t"<<std::endl;
+ run_word<char16_t>(all,first,second,0,0,0,g("he_IL.UTF-8"),t);
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ std::cout << " char32_t"<<std::endl;
+ run_word<char32_t>(all,first,second,0,0,0,g("he_IL.UTF-8"),t);
+ #endif
+
+}
+
+void word_boundary()
+{
+ boost::locale::generator g;
+
+ std::string all1[]={"10"," ","Hello"," ","Windows7"," ","平仮名","ひらがな","ヒラガナ",""};
+ int none1[]={ 0, 1, 0, 1, 0, 1, 0, 0, 0};
+ int num1[]={ 1, 0, 0, 0, 1, 0, 0 , 0 , 0};
+ int word1[]={ 0, 0, 1, 0, 1, 0, 0 , 0 , 0};
+ int kana1[]={ 0, 0, 0, 0, 0, 0, 0, 1 , 1};
+ int ideo1[]={ 0, 0, 0, 0, 0, 0, 1, 0 , 0};
+
+
+ int zero[25]={0};
+ std::string all2[]={""};
+
+ std::string all3[]={" "," ","Hello",",","World","!"," ",""};
+ int none3[]={ 1, 1, 0, 1, 0, 1, 1, 0};
+ int word3[]={ 0, 0, 1, 0, 1, 0, 0, 0};
+
+ std::cout << " char UTF-8" << std::endl;
+ run_word<char>(all1,none1,num1,word1,kana1,ideo1,g("ja_JP.UTF-8"));
+ run_word<char>(all2,zero,zero,zero,zero,zero,g("en_US.UTF-8"));
+ run_word<char>(all3,none3,zero,word3,zero,zero,g("en_US.UTF-8"));
+
+ std::cout << " char Shift-JIS" << std::endl;
+ run_word<char>(all1,none1,num1,word1,kana1,ideo1,g("ja_JP.Shift-JIS"));
+ run_word<char>(all2,zero,zero,zero,zero,zero,g("ja_JP.Shift-JIS"));
+ run_word<char>(all3,none3,zero,word3,zero,zero,g("ja_JP.Shift-JIS"));
+
+ std::cout << " wchar_t"<<std::endl;
+ run_word<wchar_t>(all1,none1,num1,word1,kana1,ideo1,g("ja_JP.UTF-8"));
+ run_word<wchar_t>(all2,zero,zero,zero,zero,zero,g("en_US.UTF-8"));
+ run_word<wchar_t>(all3,none3,zero,word3,zero,zero,g("en_US.UTF-8"));
+
+ #ifdef BOOST_HAS_CHAR16_T
+ std::cout << " char16_t"<<std::endl;
+ run_word<char16_t>(all1,none1,num1,word1,kana1,ideo1,g("ja_JP.UTF-8"));
+ run_word<char16_t>(all2,zero,zero,zero,zero,zero,g("en_US.UTF-8"));
+ run_word<char16_t>(all3,none3,zero,word3,zero,zero,g("en_US.UTF-8"));
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+ std::cout << " char32_t"<<std::endl;
+ run_word<char32_t>(all1,none1,num1,word1,kana1,ideo1,g("ja_JP.UTF-8"));
+ run_word<char32_t>(all2,zero,zero,zero,zero,zero,g("en_US.UTF-8"));
+ run_word<char32_t>(all3,none3,zero,word3,zero,zero,g("en_US.UTF-8"));
+ #endif
+}
+void test_op_one_side(std::string const &sl,std::string const &sr,int val)
+{
+ boost::locale::boundary::ssegment l(sl.begin(),sl.end(),0),r(sr.begin(),sr.end(),0);
+
+ // segment
+ TEST( (l==r) == (val==0));
+ TEST( (l!=r) == (val!=0));
+ TEST( (l<=r) == (val<=0));
+ TEST( (l< r) == (val<0));
+ TEST( (l>=r) == (val>=0));
+ TEST( (l> r) == (val>0));
+
+ // C string
+ TEST( (l==sr.c_str()) == (val==0));
+ TEST( (l!=sr.c_str()) == (val!=0));
+ TEST( (l<=sr.c_str()) == (val<=0));
+ TEST( (l< sr.c_str()) == (val<0));
+ TEST( (l>=sr.c_str()) == (val>=0));
+ TEST( (l> sr.c_str()) == (val>0));
+
+ TEST( (sl.c_str()==r) == (val==0));
+ TEST( (sl.c_str()!=r) == (val!=0));
+ TEST( (sl.c_str()<=r) == (val<=0));
+ TEST( (sl.c_str()< r) == (val<0));
+ TEST( (sl.c_str()>=r) == (val>=0));
+ TEST( (sl.c_str()> r) == (val>0));
+
+
+ // C++ string
+ TEST( (l==sr) == (val==0));
+ TEST( (l!=sr) == (val!=0));
+ TEST( (l<=sr) == (val<=0));
+ TEST( (l< sr) == (val<0));
+ TEST( (l>=sr) == (val>=0));
+ TEST( (l> sr) == (val>0));
+
+ TEST( (sl==r) == (val==0));
+ TEST( (sl!=r) == (val!=0));
+ TEST( (sl<=r) == (val<=0));
+ TEST( (sl< r) == (val<0));
+ TEST( (sl>=r) == (val>=0));
+ TEST( (sl> r) == (val>0));
+ // self check
+ TEST( (sl==sr) == (val==0));
+ TEST( (sl!=sr) == (val!=0));
+ TEST( (sl<=sr) == (val<=0));
+ TEST( (sl< sr) == (val<0));
+ TEST( (sl>=sr) == (val>=0));
+ TEST( (sl> sr) == (val>0));
+
+}
+
+void test_op(std::string const &sl,std::string const &sr,int val)
+{
+ test_op_one_side(sl,sr,val);
+ test_op_one_side(sr,sl,-val);
+}
+void segment_operator()
+{
+ test_op("","a",-1);
+ test_op("","",0);
+ test_op("aa","aaa",-1);
+ test_op("aa","ab",-1);
+}
+
+int main()
+{
+ try {
+ std::cout << "Testing segment operators" << std::endl;
+ segment_operator();
+ std::cout << "Testing word boundary" << std::endl;
+ word_boundary();
+ std::cout << "Testing character boundary" << std::endl;
+ test_boundaries(character,nones,0,lb::character);
+ std::cout << "Testing sentence boundary" << std::endl;
+ test_boundaries(sentence1,sentence1a,sentence1b,lb::sentence);
+ std::cout << "Testing line boundary" << std::endl;
+ test_boundaries(line1,line1a,line1b,lb::line);
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+}
+
+#endif // NOICU
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/test/test_codepage.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_codepage.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,440 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#include <boost/locale/encoding.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/localization_backend.hpp>
+#include <boost/locale/info.hpp>
+#include <fstream>
+#include "test_locale.hpp"
+#include "test_locale_tools.hpp"
+
+
+#ifndef BOOST_LOCALE_NO_POSIX_BACKEND
+# ifdef __APPLE__
+# include <xlocale.h>
+# endif
+# include <locale.h>
+#endif
+
+bool test_iso;
+bool test_utf;
+bool test_sjis;
+
+std::string he_il_8bit;
+std::string en_us_8bit;
+std::string ja_jp_shiftjis;
+
+
+template<typename Char>
+std::basic_string<Char> read_file(std::basic_istream<Char> &in)
+{
+ std::basic_string<Char> res;
+ Char c;
+ while(in.get(c))
+ res+=c;
+ return res;
+}
+
+
+template<typename Char>
+void test_ok(std::string file,std::locale const &l,std::basic_string<Char> cmp=std::basic_string<Char>())
+{
+ if(cmp.empty())
+ cmp=to<Char>(file);
+ std::ofstream test("testi.txt");
+ test << file;
+ test.close();
+ typedef std::basic_fstream<Char> stream_type;
+
+ stream_type f1("testi.txt",stream_type::in);
+ f1.imbue(l);
+ TEST(read_file<Char>(f1) == cmp);
+ f1.close();
+
+ stream_type f2("testo.txt",stream_type::out);
+ f2.imbue(l);
+ f2 << cmp;
+ f2.close();
+
+ std::ifstream testo("testo.txt");
+ TEST(read_file<char>(testo) == file);
+}
+
+template<typename Char>
+void test_rfail(std::string file,std::locale const &l,int pos)
+{
+ std::ofstream test("testi.txt");
+ test << file;
+ test.close();
+ typedef std::basic_fstream<Char> stream_type;
+
+ stream_type f1("testi.txt",stream_type::in);
+ f1.imbue(l);
+ Char c;
+ for(int i=0;i<pos;i++)
+ TEST(f1.get(c));
+ TEST(f1.get(c).fail());
+}
+
+template<typename Char>
+void test_wfail(std::string file,std::locale const &l,int pos)
+{
+ typedef std::basic_fstream<Char> stream_type;
+ stream_type f1("testo.txt",stream_type::out);
+ f1.imbue(l);
+ std::basic_string<Char> out=to<Char>(file);
+ int i;
+ for(i=0;i<pos;i++) {
+ f1 << out.at(i);
+ f1<<std::flush;
+ TEST(f1.good());
+ }
+ f1 << out.at(i);
+ TEST(f1.fail() || (f1<<std::flush).fail());
+}
+
+
+template<typename Char>
+void test_for_char()
+{
+ boost::locale::generator g;
+ if(test_utf) {
+ std::cout << " UTF-8" << std::endl;
+ test_ok<Char>("grüße\nn i",g("en_US.UTF-8"));
+ test_rfail<Char>("abc\xFF\xFF",g("en_US.UTF-8"),3);
+ std::cout << " Testing codepoints above 0xFFFF" << std::endl;
+ std::cout << " Single U+2008A" << std::endl;
+ test_ok<Char>("\xf0\xa0\x82\x8a",g("en_US.UTF-8")); // U+2008A
+ std::cout << " Single U+2008A withing text" << std::endl;
+ test_ok<Char>("abc\"\xf0\xa0\x82\x8a\"",g("en_US.UTF-8")); // U+2008A
+ std::string one = "\xf0\xa0\x82\x8a";
+ std::string res;
+ for(unsigned i=0;i<1000;i++)
+ res+=one;
+ std::cout << " U+2008A x 1000" << std::endl;
+ test_ok<Char>(res.c_str(),g("en_US.UTF-8")); // U+2008A
+ }
+ else {
+ std::cout << " UTF-8 Not supported " << std::endl;
+ }
+
+ if(test_iso) {
+ std::cout << " ISO8859-8" << std::endl;
+ test_ok<Char>("hello \xf9\xec\xe5\xed",g(he_il_8bit),to<Char>("hello שלום"));
+ std::cout << " ISO8859-1" << std::endl;
+ test_ok<Char>(to<char>("grüße\nn i"),g(en_us_8bit),to<Char>("grüße\nn i"));
+ test_wfail<Char>("grüßen שלום",g(en_us_8bit),7);
+ }
+
+ if(test_sjis) {
+ std::cout << " Shift-JIS" << std::endl;
+ test_ok<Char>("\x93\xfa\x96\x7b",g(ja_jp_shiftjis),
+ boost::locale::conv::to_utf<Char>("\xe6\x97\xa5\xe6\x9c\xac","UTF-8")); // Japan
+ }
+}
+void test_wide_io()
+{
+ std::cout << " wchar_t" << std::endl;
+ test_for_char<wchar_t>();
+
+ #if defined BOOST_HAS_CHAR16_T && !defined(BOOST_NO_CHAR16_T_CODECVT)
+ std::cout << " char16_t" << std::endl;
+ test_for_char<char16_t>();
+ #endif
+ #if defined BOOST_HAS_CHAR32_T && !defined(BOOST_NO_CHAR32_T_CODECVT)
+ std::cout << " char32_t" << std::endl;
+ test_for_char<char32_t>();
+ #endif
+}
+
+template<typename Char>
+void test_pos(std::string source,std::basic_string<Char> target,std::string encoding)
+{
+ using namespace boost::locale::conv;
+ boost::locale::generator g;
+ std::locale l= encoding == "ISO8859-8" ? g("he_IL."+encoding) : g("en_US."+encoding);
+ TEST(to_utf<Char>(source,encoding)==target);
+ TEST(to_utf<Char>(source.c_str(),encoding)==target);
+ TEST(to_utf<Char>(source.c_str(),source.c_str()+source.size(),encoding)==target);
+
+ TEST(to_utf<Char>(source,l)==target);
+ TEST(to_utf<Char>(source.c_str(),l)==target);
+ TEST(to_utf<Char>(source.c_str(),source.c_str()+source.size(),l)==target);
+
+ TEST(from_utf<Char>(target,encoding)==source);
+ TEST(from_utf<Char>(target.c_str(),encoding)==source);
+ TEST(from_utf<Char>(target.c_str(),target.c_str()+target.size(),encoding)==source);
+
+ TEST(from_utf<Char>(target,l)==source);
+ TEST(from_utf<Char>(target.c_str(),l)==source);
+ TEST(from_utf<Char>(target.c_str(),target.c_str()+target.size(),l)==source);
+}
+
+#define TESTF(X) TEST_THROWS(X,boost::locale::conv::conversion_error)
+
+template<typename Char>
+void test_to_neg(std::string source,std::basic_string<Char> target,std::string encoding)
+{
+ using namespace boost::locale::conv;
+ boost::locale::generator g;
+ std::locale l=g("en_US."+encoding);
+
+ TEST(to_utf<Char>(source,encoding)==target);
+ TEST(to_utf<Char>(source.c_str(),encoding)==target);
+ TEST(to_utf<Char>(source.c_str(),source.c_str()+source.size(),encoding)==target);
+ TEST(to_utf<Char>(source,l)==target);
+ TEST(to_utf<Char>(source.c_str(),l)==target);
+ TEST(to_utf<Char>(source.c_str(),source.c_str()+source.size(),l)==target);
+
+ TESTF(to_utf<Char>(source,encoding,stop));
+ TESTF(to_utf<Char>(source.c_str(),encoding,stop));
+ TESTF(to_utf<Char>(source.c_str(),source.c_str()+source.size(),encoding,stop));
+ TESTF(to_utf<Char>(source,l,stop));
+ TESTF(to_utf<Char>(source.c_str(),l,stop));
+ TESTF(to_utf<Char>(source.c_str(),source.c_str()+source.size(),l,stop));
+}
+
+template<typename Char>
+void test_from_neg(std::basic_string<Char> source,std::string target,std::string encoding)
+{
+ using namespace boost::locale::conv;
+ boost::locale::generator g;
+ std::locale l=g("en_US."+encoding);
+
+ TEST(from_utf<Char>(source,encoding)==target);
+ TEST(from_utf<Char>(source.c_str(),encoding)==target);
+ TEST(from_utf<Char>(source.c_str(),source.c_str()+source.size(),encoding)==target);
+ TEST(from_utf<Char>(source,l)==target);
+ TEST(from_utf<Char>(source.c_str(),l)==target);
+ TEST(from_utf<Char>(source.c_str(),source.c_str()+source.size(),l)==target);
+
+ TESTF(from_utf<Char>(source,encoding,stop));
+ TESTF(from_utf<Char>(source.c_str(),encoding,stop));
+ TESTF(from_utf<Char>(source.c_str(),source.c_str()+source.size(),encoding,stop));
+ TESTF(from_utf<Char>(source,l,stop));
+ TESTF(from_utf<Char>(source.c_str(),l,stop));
+ TESTF(from_utf<Char>(source.c_str(),source.c_str()+source.size(),l,stop));
+}
+
+template<typename Char>
+std::basic_string<Char> utf(char const *s)
+{
+ return to<Char>(s);
+}
+
+template<>
+std::basic_string<char> utf(char const *s)
+{
+ return s;
+}
+
+template<typename Char>
+void test_with_0()
+{
+ std::string a("abc\0\0 yz\0",3+2+3+1);
+ TEST(boost::locale::conv::from_utf<Char>(boost::locale::conv::to_utf<Char>(a,"UTF-8"),"UTF-8") == a);
+ TEST(boost::locale::conv::from_utf<Char>(boost::locale::conv::to_utf<Char>(a,"ISO8859-1"),"ISO8859-1") == a);
+}
+
+template<typename Char,int n=sizeof(Char)>
+struct utfutf;
+
+template<>
+struct utfutf<char,1> {
+ static char const *ok() {return "grüßen";}
+ static char const *bad() { return "gr\xFF" "üßen"; }
+ // split into 2 to make SunCC happy
+};
+
+template<>
+struct utfutf<wchar_t,2> {
+ static wchar_t const *ok(){ return L"\x67\x72\xfc\xdf\x65\x6e"; }
+ static wchar_t const *bad() {
+ static wchar_t buf[256] = L"\x67\x72\xFF\xfc\xFE\xFD\xdf\x65\x6e";
+ buf[2]=0xDC01; // second surrogate must not be
+ buf[4]=0xD801; // First
+ buf[5]=0xD801; // Must be surrogate trail
+ return buf;
+ }
+};
+template<>
+struct utfutf<wchar_t,4> {
+ static wchar_t const *ok(){ return L"\x67\x72\xfc\xdf\x65\x6e"; }
+ static wchar_t const *bad() {
+ static wchar_t buf[256] = L"\x67\x72\xFF\xfc\xdf\x65\x6e";
+ buf[2]=static_cast<wchar_t>(0x1000000); // > 10FFFF
+ return buf;
+ }
+};
+
+
+template<typename CharOut,typename CharIn>
+void test_combinations()
+{
+ using boost::locale::conv::utf_to_utf;
+ typedef utfutf<CharOut> out;
+ typedef utfutf<CharIn> in;
+ TEST( (utf_to_utf<CharOut,CharIn>(in::ok())==out::ok()) );
+ TESTF( (utf_to_utf<CharOut,CharIn>(in::bad(),boost::locale::conv::stop)) );
+ TEST( (utf_to_utf<CharOut,CharIn>(in::bad())==out::ok()) );
+}
+
+void test_all_combinations()
+{
+ std::cout << "Testing utf_to_utf" << std::endl;
+ std::cout <<" char<-char"<<std::endl;
+ test_combinations<char,char>();
+ std::cout <<" char<-wchar"<<std::endl;
+ test_combinations<char,wchar_t>();
+ std::cout <<" wchar<-char"<<std::endl;
+ test_combinations<wchar_t,char>();
+ std::cout <<" wchar<-wchar"<<std::endl;
+ test_combinations<wchar_t,wchar_t>();
+}
+
+template<typename Char>
+void test_to()
+{
+ test_pos<Char>(to<char>("grüßen"),utf<Char>("grüßen"),"ISO8859-1");
+ test_pos<Char>("\xf9\xec\xe5\xed",utf<Char>("שלום"),"ISO8859-8");
+ test_pos<Char>("grüßen",utf<Char>("grüßen"),"UTF-8");
+ test_pos<Char>("abc\"\xf0\xa0\x82\x8a\"",utf<Char>("abc\"\xf0\xa0\x82\x8a\""),"UTF-8");
+
+ test_to_neg<Char>("g\xFFrüßen",utf<Char>("grüßen"),"UTF-8");
+ test_from_neg<Char>(utf<Char>("hello שלום"),"hello ","ISO8859-1");
+
+ test_with_0<Char>();
+}
+
+
+int main()
+{
+ try {
+ std::vector<std::string> def;
+ #ifdef BOOST_LOCALE_WITH_ICU
+ def.push_back("icu");
+ #endif
+ #ifndef BOOST_LOCALE_NO_STD_BACKEND
+ def.push_back("std");
+ #endif
+ #ifndef BOOST_LOCALE_NO_WINAPI_BACKEND
+ def.push_back("winapi");
+ #endif
+ #ifndef BOOST_LOCALE_NO_POSIX_BACKEND
+ def.push_back("posix");
+ #endif
+
+
+ for(int type = 0; type < int(def.size()); type ++ ) {
+ boost::locale::localization_backend_manager tmp_backend = boost::locale::localization_backend_manager::global();
+ tmp_backend.select(def[type]);
+ boost::locale::localization_backend_manager::global(tmp_backend);
+
+ std::string bname = def[type];
+
+ if(bname=="std") {
+ en_us_8bit = get_std_name("en_US.ISO8859-1");
+ he_il_8bit = get_std_name("he_IL.ISO8859-8");
+ ja_jp_shiftjis = get_std_name("ja_JP.SJIS");
+ }
+ else {
+ en_us_8bit = "en_US.ISO8859-1";
+ he_il_8bit = "he_IL.ISO8859-8";
+ ja_jp_shiftjis = "ja_JP.SJIS";
+ }
+
+ std::cout << "Testing for backend " << def[type] << std::endl;
+
+ test_iso = true;
+ if(bname=="std" && (he_il_8bit.empty() || en_us_8bit.empty())) {
+ std::cout << "no iso locales availible, passing" << std::endl;
+ test_iso = false;
+ }
+ test_sjis = true;
+ if(bname=="std" && ja_jp_shiftjis.empty()) {
+ test_sjis = false;
+ }
+ if(bname=="winapi") {
+ test_iso = false;
+ test_sjis = false;
+ }
+ test_utf = true;
+ #ifndef BOOST_LOCALE_NO_POSIX_BACKEND
+ if(bname=="posix") {
+ {
+ locale_t l = newlocale(LC_ALL_MASK,he_il_8bit.c_str(),0);
+ if(!l)
+ test_iso = false;
+ else
+ freelocale(l);
+ }
+ {
+ locale_t l = newlocale(LC_ALL_MASK,en_us_8bit.c_str(),0);
+ if(!l)
+ test_iso = false;
+ else
+ freelocale(l);
+ }
+ {
+ locale_t l = newlocale(LC_ALL_MASK,"en_US.UTF-8",0);
+ if(!l)
+ test_utf = false;
+ else
+ freelocale(l);
+ }
+ #ifdef BOOST_LOCALE_WITH_ICONV
+ {
+ locale_t l = newlocale(LC_ALL_MASK,ja_jp_shiftjis.c_str(),0);
+ if(!l)
+ test_sjis = false;
+ else
+ freelocale(l);
+ }
+ #else
+ test_sjis = false;
+ #endif
+ }
+ #endif
+
+ if(def[type]=="std" && (get_std_name("en_US.UTF-8").empty() || get_std_name("he_IL.UTF-8").empty()))
+ {
+ test_utf = false;
+ }
+
+ std::cout << "Testing wide I/O" << std::endl;
+ test_wide_io();
+ std::cout << "Testing charset to/from UTF conversion functions" << std::endl;
+ std::cout << " char" << std::endl;
+ test_to<char>();
+ std::cout << " wchar_t" << std::endl;
+ test_to<wchar_t>();
+ #ifdef BOOST_HAS_CHAR16_T
+ if(bname == "icu" || bname == "std") {
+ std::cout << " char16_t" << std::endl;
+ test_to<char16_t>();
+ }
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ if(bname == "icu" || bname == "std") {
+ std::cout << " char32_t" << std::endl;
+ test_to<char32_t>();
+ }
+ #endif
+
+ test_all_combinations();
+ }
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+}
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/test/test_codepage_converter.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_codepage_converter.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,289 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#include "test_locale.hpp"
+#include "test_locale_tools.hpp"
+#include <boost/locale/util.hpp>
+#ifdef BOOST_LOCALE_WITH_ICU
+#include "../src/icu/codecvt.hpp"
+#endif
+#if defined(BOOST_LOCALE_WITH_ICONV) && !defined(BOOST_LOCALE_NO_POSIX_BACKEND)
+#include "../src/posix/codecvt.hpp"
+#endif
+
+#include <string.h>
+
+char *make2(unsigned v)
+{
+ static unsigned char buf[3] = {0};
+ buf[0] = 0xC0 | (v >> 6);
+ buf[1] = 0x80 | (v & 0x3F );
+ return reinterpret_cast<char*>(buf);
+}
+
+char *make3(unsigned v)
+{
+ static unsigned char buf[4] = {0};
+ buf[0] = 0xE0 | ((v >> 12) ) ;
+ buf[1] = 0x80 | ((v >> 6) & 0x3F );
+ buf[2] = 0x80 | ((v >> 0) & 0x3F );
+ return reinterpret_cast<char*>(buf);
+}
+
+char *make4(unsigned v)
+{
+ static unsigned char buf[5] = {0};
+ buf[0] = 0xF0 | ((v >> 18) ) ;
+ buf[1] = 0x80 | ((v >> 12) & 0x3F );
+ buf[2] = 0x80 | ((v >> 6) & 0x3F );
+ buf[3] = 0x80 | ((v >> 0) & 0x3F );
+ return reinterpret_cast<char*>(buf);
+}
+
+static const unsigned illegal=0xFFFFFFFF;
+static const unsigned incomplete=0xFFFFFFFE;
+
+
+bool test_to(boost::locale::util::base_converter &cvt,char const *s,unsigned codepoint)
+{
+ size_t len = strlen(s);
+ char const *end = s + len;
+ return cvt.to_unicode(s,end) == codepoint;
+}
+
+bool test_from(boost::locale::util::base_converter &cvt,unsigned codepoint,char const *str)
+{
+ char buf[32];
+ unsigned res = cvt.from_unicode(codepoint,buf,buf+sizeof(buf));
+ if(res == boost::locale::util::base_converter::illegal) {
+ return str == 0;
+ }
+ else {
+ return str!=0 && strlen(str) == res && memcmp(str,buf,res) == 0;
+ }
+}
+
+bool test_incomplete(boost::locale::util::base_converter &cvt,unsigned codepoint,int len)
+{
+ char buf[32];
+ unsigned res = cvt.from_unicode(codepoint,buf,buf+len);
+ return res == incomplete;
+}
+
+
+
+#define TEST_TO(str,codepoint) TEST(test_to(*cvt,str,codepoint))
+#define TEST_FROM(str,codepoint) TEST(test_from(*cvt,codepoint,str))
+#define TEST_INC(codepoint,len) TEST(test_incomplete(*cvt,codepoint,len))
+
+void test_shiftjis(std::auto_ptr<boost::locale::util::base_converter> cvt)
+{
+ std::cout << "- Correct" << std::endl;
+ TEST_TO("a",'a');
+ TEST_TO("X",'X');
+ TEST_TO("\xCB",0xFF8b); // half width katakana Hi ヒ
+ TEST_TO("\x83\x71",0x30d2); // Full width katakana Hi ヒ
+ TEST_TO("\x82\xd0",0x3072); // Full width hiragana Hi ひ
+
+ TEST_FROM("a",'a');
+ TEST_FROM("X",'X');
+ TEST_FROM("\xCB",0xFF8b); // half width katakana Hi ヒ
+ TEST_FROM("\x83\x71",0x30d2); // Full width katakana Hi ヒ
+ TEST_FROM("\x82\xd0",0x3072); // Full width hiragana Hi ひ
+
+ std::cout << "- Illegal/incomplete" << std::endl;
+
+ TEST_TO("\xa0",illegal);
+ TEST_TO("\x82",incomplete);
+ TEST_TO("\x83\xf0",illegal);
+
+ TEST_INC(0x30d2,1); // Full width katakana Hi ヒ
+ TEST_INC(0x3072,1); // Full width hiragana Hi ひ
+
+ TEST_FROM(0,0x5e9); // Hebrew ש not in ShiftJIS
+}
+
+
+int main()
+{
+ try {
+ using namespace boost::locale::util;
+
+ std::auto_ptr<base_converter> cvt;
+
+ std::cout << "Test UTF-8" << std::endl;
+ std::cout << "- From UTF-8" << std::endl;
+
+
+ cvt = create_utf8_converter();
+ TEST(cvt.get());
+ TEST(cvt->is_thread_safe());
+ TEST(cvt->max_len() == 4);
+
+ std::cout << "-- Correct" << std::endl;
+
+ TEST_TO("\x7f",0x7f);
+ TEST_TO("\xC2\x80",0x80);
+ TEST_TO("\xdf\xBF",0x7FF);
+ TEST_TO("\xe0\xa0\x80",0x800);
+ TEST_TO("\xef\xbf\xbf",0xFFFF);
+ TEST_TO("\xf0\x90\x80\x80",0x10000);
+ TEST_TO("\xf4\x8f\xbf\xbf",0x10FFFF);
+
+ std::cout << "-- Too big" << std::endl;
+ TEST_TO("\xf4\x9f\x80\x80",illegal); // 11 0000
+ TEST_TO("\xfb\xbf\xbf\xbf",illegal); // 3FF FFFF
+ TEST_TO("\xf8\x90\x80\x80\x80",illegal); // 400 0000
+ TEST_TO("\xfd\xbf\xbf\xbf\xbf\xbf",illegal); // 7fff ffff
+
+ std::cout << "-- Invalid length" << std::endl;
+
+ /// Test that this actually works
+ TEST_TO(make2(0x80),0x80);
+ TEST_TO(make2(0x7ff),0x7ff);
+
+ TEST_TO(make3(0x800),0x800);
+ TEST_TO(make3(0xffff),0xffff);
+
+ TEST_TO(make4(0x10000),0x10000);
+ TEST_TO(make4(0x10ffff),0x10ffff);
+
+ TEST_TO(make4(0x110000),illegal);
+ TEST_TO(make4(0x1fffff),illegal);
+
+ TEST_TO(make2(0),illegal);
+ TEST_TO(make3(0),illegal);
+ TEST_TO(make4(0),illegal);
+ TEST_TO(make2(0x7f),illegal);
+ TEST_TO(make3(0x7f),illegal);
+ TEST_TO(make4(0x7f),illegal);
+
+ TEST_TO(make3(0x80),illegal);
+ TEST_TO(make4(0x80),illegal);
+ TEST_TO(make3(0x7ff),illegal);
+ TEST_TO(make4(0x7ff),illegal);
+
+ TEST_TO(make4(0x8000),illegal);
+ TEST_TO(make4(0xffff),illegal);
+
+ std::cout << "-- Invalid surrogate" << std::endl;
+
+ TEST_TO(make3(0xD800),illegal);
+ TEST_TO(make3(0xDBFF),illegal);
+ TEST_TO(make3(0xDC00),illegal);
+ TEST_TO(make3(0xDFFF),illegal);
+
+ TEST_TO(make4(0xD800),illegal);
+ TEST_TO(make4(0xDBFF),illegal);
+ TEST_TO(make4(0xDC00),illegal);
+ TEST_TO(make4(0xDFFF),illegal);
+
+ std::cout <<"-- Incomplete" << std::endl;
+
+ TEST_TO("\x80",illegal);
+ TEST_TO("\xC2",incomplete);
+
+ TEST_TO("\xdf",incomplete);
+
+ TEST_TO("\xe0",incomplete);
+ TEST_TO("\xe0\xa0",incomplete);
+
+ TEST_TO("\xef\xbf",incomplete);
+ TEST_TO("\xef",incomplete);
+
+ TEST_TO("\xf0\x90\x80",incomplete);
+ TEST_TO("\xf0\x90",incomplete);
+ TEST_TO("\xf0",incomplete);
+
+ TEST_TO("\xf4\x8f\xbf",incomplete);
+ TEST_TO("\xf4\x8f",incomplete);
+ TEST_TO("\xf4",incomplete);
+
+ std::cout << "- To UTF-8" << std::endl;
+
+ std::cout << "-- Test correct" << std::endl;
+
+ TEST_FROM("\x7f",0x7f);
+ TEST_FROM("\xC2\x80",0x80);
+ TEST_FROM("\xdf\xBF",0x7FF);
+ TEST_INC(0x7FF,1);
+ TEST_FROM("\xe0\xa0\x80",0x800);
+ TEST_INC(0x800,2);
+ TEST_INC(0x800,1);
+ TEST_FROM("\xef\xbf\xbf",0xFFFF);
+ TEST_INC(0x10000,3);
+ TEST_INC(0x10000,2);
+ TEST_INC(0x10000,1);
+ TEST_FROM("\xf0\x90\x80\x80",0x10000);
+ TEST_FROM("\xf4\x8f\xbf\xbf",0x10FFFF);
+
+ std::cout << "-- Test no surrogate " << std::endl;
+
+ TEST_FROM(0,0xD800);
+ TEST_FROM(0,0xDBFF);
+ TEST_FROM(0,0xDC00);
+ TEST_FROM(0,0xDFFF);
+
+ std::cout << "-- Test invalid " << std::endl;
+
+ TEST_FROM(0,0x110000);
+ TEST_FROM(0,0x1FFFFF);
+
+
+ std::cout << "Test windows-1255" << std::endl;
+
+ cvt = create_simple_converter("windows-1255");
+
+ TEST(cvt.get());
+ TEST(cvt->is_thread_safe());
+ TEST(cvt->max_len() == 1);
+
+ std::cout << "- From 1255" << std::endl;
+
+ TEST_TO("\xa4",0x20aa);
+ TEST_TO("\xe0",0x05d0);
+ TEST_TO("\xc4",0x5b4);
+ TEST_TO("\xfb",illegal);
+ TEST_TO("\xdd",illegal);
+ TEST_TO("\xff",illegal);
+ TEST_TO("\xfe",0x200f);
+
+ std::cout << "- To 1255" << std::endl;
+
+ TEST_FROM("\xa4",0x20aa);
+ TEST_FROM("\xe0",0x05d0);
+ TEST_FROM("\xc4",0x5b4);
+ TEST_FROM("\xfe",0x200f);
+
+ TEST_FROM(0,0xe4);
+ TEST_FROM(0,0xd0);
+
+ #ifdef BOOST_LOCALE_WITH_ICU
+ std::cout << "Testing Shift-JIS using ICU/uconv" << std::endl;
+
+ cvt = boost::locale::impl_icu::create_uconv_converter("Shift-JIS");
+ TEST(cvt.get());
+ test_shiftjis(cvt);
+ #endif
+
+ #if defined(BOOST_LOCALE_WITH_ICONV) && !defined(BOOST_LOCALE_NO_POSIX_BACKEND)
+ std::cout << "Testing Shift-JIS using POSIX/iconv" << std::endl;
+
+ cvt = boost::locale::impl_posix::create_iconv_converter("Shift-JIS");
+ TEST(cvt.get());
+ test_shiftjis(cvt);
+ #endif
+
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+}
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/test/test_collate.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_collate.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,138 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef BOOST_LOCALE_WITH_ICU
+#include <iostream>
+int main()
+{
+ std::cout << "ICU is not build... Skipping" << std::endl;
+}
+#else
+
+#include <boost/locale/collator.hpp>
+#include <boost/locale/generator.hpp>
+#include <iomanip>
+#include "test_locale.hpp"
+
+
+template<typename Char>
+void test_comp(std::locale l,std::basic_string<Char> left,std::basic_string<Char> right,int ilevel,int expected)
+{
+ typedef std::basic_string<Char> string_type;
+ boost::locale::collator_base::level_type level = static_cast<boost::locale::collator_base::level_type>(ilevel);
+ TEST(boost::locale::comparator<Char>(l,level)(left,right) == (expected < 0));
+ if(ilevel==4) {
+ std::collate<Char> const &coll=std::use_facet<std::collate<Char> >(l);
+ string_type lt=coll.transform(left.c_str(),left.c_str()+left.size());
+ string_type rt=coll.transform(right.c_str(),right.c_str()+right.size());
+ if(expected < 0)
+ TEST(lt<rt);
+ else if(expected == 0) {
+ TEST(lt==rt);
+ }
+ else
+ TEST(lt > rt);
+ long lh=coll.hash(left.c_str(),left.c_str()+left.size());
+ long rh=coll.hash(right.c_str(),right.c_str()+right.size());
+ if(expected == 0)
+ TEST(lh==rh);
+ else
+ TEST(lh!=rh);
+ }
+ boost::locale::collator<Char> const &coll=std::use_facet<boost::locale::collator<Char> >(l);
+ string_type lt=coll.transform(level,left.c_str(),left.c_str()+left.size());
+ TEST(lt==coll.transform(level,left));
+ string_type rt=coll.transform(level,right.c_str(),right.c_str()+right.size());
+ TEST(rt==coll.transform(level,right));
+ if(expected < 0)
+ TEST(lt<rt);
+ else if(expected == 0)
+ TEST(lt==rt);
+ else
+ TEST(lt > rt);
+ long lh=coll.hash(level,left.c_str(),left.c_str()+left.size());
+ TEST(lh==coll.hash(level,left));
+ long rh=coll.hash(level,right.c_str(),right.c_str()+right.size());
+ TEST(rh==coll.hash(level,right));
+ if(expected == 0)
+ TEST(lh==rh);
+ else
+ TEST(lh!=rh);
+
+}
+
+#define TEST_COMP(c,_l,_r) test_comp<c>(l,_l,_r,level,expected)
+
+
+void compare(std::string left,std::string right,int level,int expected)
+{
+ boost::locale::generator gen;
+ std::locale l=gen("en_US.UTF-8");
+ if(level == 4)
+ TEST(l(left,right) == (expected < 0));
+ TEST_COMP(char,left,right);
+ TEST_COMP(wchar_t,to<wchar_t>(left),to<wchar_t>(right));
+ #ifdef BOOST_HAS_CHAR16_T
+ TEST_COMP(char16_t,to<char16_t>(left),to<char16_t>(right));
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ TEST_COMP(char32_t,to<char32_t>(left),to<char32_t>(right));
+ #endif
+ l=gen("en_US.ISO8859-1");
+ if(level == 4)
+ TEST(l(to<char>(left),to<char>(right)) == (expected < 0));
+ TEST_COMP(char,to<char>(left),to<char>(right));
+}
+
+
+void test_collate()
+{
+ int
+ primary = 0,
+ secondary = 1,
+ tertiary = 2,
+ quaternary = 3,
+ identical = 4;
+ int le = -1,gt = 1,eq = 0;
+
+
+ compare("a","A",primary,eq);
+ compare("a","A",secondary,eq);
+ compare("A","a",tertiary,gt);
+ compare("a","A",tertiary,le);
+ compare("a","A",quaternary,le);
+ compare("A","a",quaternary,gt);
+ compare("a","A",identical,le);
+ compare("A","a",identical,gt);
+ compare("a","ä",primary,eq); // a , ä
+ compare("a","ä",secondary,le); // a , ä
+ compare("ä","a",secondary,gt); // a , ä
+ compare("a","ä",quaternary,le); // a , ä
+ compare("ä","a",quaternary,gt); // a , ä
+ compare("a","ä",identical,le); // a , ä
+ compare("ä","a",identical,gt); // a , ä
+}
+
+
+
+
+int main()
+{
+ try {
+ test_collate();
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+
+}
+
+#endif // NOICU
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/test/test_convert.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_convert.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,128 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_WITH_ICU
+#include <iostream>
+int main()
+{
+ std::cout << "ICU is not build... Skipping" << std::endl;
+}
+#else
+
+#include <boost/locale/conversion.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/info.hpp>
+#include <iomanip>
+#include "test_locale.hpp"
+
+
+template<typename Char>
+void test_normc(std::basic_string<Char> orig,std::basic_string<Char> normal,boost::locale::norm_type type)
+{
+ std::locale l = boost::locale::generator().generate("en_US.UTF-8");
+ TEST(normalize(orig,type,l)==normal);
+ TEST(normalize(orig.c_str(),type,l)==normal);
+ TEST(normalize(orig.c_str(),orig.c_str()+orig.size(),type,l)==normal);
+}
+
+void test_norm(std::string orig,std::string normal,boost::locale::norm_type type)
+{
+ test_normc<char>(orig,normal,type);
+ test_normc<wchar_t>(to<wchar_t>(orig),to<wchar_t>(normal),type);
+ #ifdef BOOST_HAS_CHAR16_T
+ test_normc<char16_t>(to<char16_t>(orig),to<char16_t>(normal),type);
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ test_normc<char32_t>(to<char32_t>(orig),to<char32_t>(normal),type);
+ #endif
+}
+
+#define TEST_A(Chr,how,source,dest) \
+ do { \
+ boost::locale::info const &inf=std::use_facet<boost::locale::info>(std::locale()); \
+ std::cout <<"Testing " #how " for " #Chr ", lang="<<inf.language(); \
+ if(std::string("char")==#Chr) std::cout <<" charset="<< inf.encoding(); \
+ std::cout << std::endl; \
+ std::basic_string<Chr> source_s=(source),dest_s=(dest); \
+ TEST(boost::locale::how(source_s)==dest_s); \
+ TEST(boost::locale::how(source_s.c_str())==dest_s); \
+ TEST(boost::locale::how(source_s.c_str(),source_s.c_str()+source_s.size())==dest_s);\
+ }while(0)
+
+#define TEST_ALL_CASES \
+ do { \
+ eight_bit=true; \
+ std::locale::global(gen("en_US.UTF-8")); \
+ TEST_V(to_upper,"grüßen i","GRÜSSEN I"); \
+ TEST_V(to_lower,"Façade","façade"); \
+ TEST_V(to_title,"façadE world","Façade World"); \
+ TEST_V(fold_case,"Hello World","hello world"); \
+ std::locale::global(gen("tr_TR.UTF-8")); \
+ eight_bit=false; \
+ TEST_V(to_upper,"i","Ä°"); \
+ TEST_V(to_lower,"Ä°","i"); \
+ }while(0)
+
+
+int main()
+{
+ try {
+ {
+ using namespace boost::locale;
+ std::cout << "Testing Unicode normalization" << std::endl;
+ test_norm("\xEF\xAC\x81","\xEF\xAC\x81",norm_nfd); /// ligature fi
+ test_norm("\xEF\xAC\x81","\xEF\xAC\x81",norm_nfc);
+ test_norm("\xEF\xAC\x81","fi",norm_nfkd);
+ test_norm("\xEF\xAC\x81","fi",norm_nfkc);
+ test_norm("ä","ä",norm_nfd); // ä to a and accent
+ test_norm("ä","ä",norm_nfc);
+ }
+
+ boost::locale::generator gen;
+ bool eight_bit=true;
+
+ #define TEST_V(how,source_s,dest_s) \
+ do { \
+ TEST_A(char,how,source_s,dest_s); \
+ if(eight_bit) { \
+ std::locale tmp=std::locale(); \
+ std::locale::global(gen("en_US.ISO8859-1")); \
+ TEST_A(char,how,to<char>(source_s),to<char>(dest_s)); \
+ std::locale::global(tmp); \
+ } \
+ }while(0)
+
+ TEST_ALL_CASES;
+ #undef TEST_V
+
+ #define TEST_V(how,source_s,dest_s) TEST_A(wchar_t,how,to<wchar_t>(source_s),to<wchar_t>(dest_s))
+ TEST_ALL_CASES;
+ #undef TEST_V
+
+ #ifdef BOOST_HAS_CHAR16_T
+ #define TEST_V(how,source_s,dest_s) TEST_A(char16_t,how,to<char16_t>(source_s),to<char16_t>(dest_s))
+ TEST_ALL_CASES;
+ #undef TEST_V
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+ #define TEST_V(how,source_s,dest_s) TEST_A(char32_t,how,to<char32_t>(source_s),to<char32_t>(dest_s))
+ TEST_ALL_CASES;
+ #undef TEST_V
+ #endif
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+
+}
+#endif // NO ICU
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+
+

Added: trunk/libs/locale/test/test_date_time.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_date_time.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,301 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#include <boost/locale/date_time.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/formatting.hpp>
+#include <boost/locale/localization_backend.hpp>
+#include <iomanip>
+#include "test_locale.hpp"
+
+#ifdef BOOST_LOCALE_WITH_ICU
+#include <unicode/uversion.h>
+#define BOOST_ICU_VER (U_ICU_VERSION_MAJOR_NUM*100 + U_ICU_VERSION_MINOR_NUM)
+#else
+#define BOOST_ICU_VER 406
+#endif
+
+#ifdef BOOST_MSVC
+# pragma warning(disable : 4244) // loose data
+#endif
+
+#define RESET() do { time_point = base_time_point; ss.str(""); } while(0)
+#define TESTR(X) do { TEST(X); RESET(); } while(0)
+//#define TESTEQSR(t,X) do { ss << (t); TESTR(ss.str() == X); } while(0)
+#define TESTEQSR(t,X) do { ss << (t); if(ss.str()!=X) { std::cerr <<"[" << ss.str() <<"]!=[" <<X<<"]" << std::endl; } TESTR(ss.str() == X); } while(0)
+
+int main()
+{
+ try {
+ using namespace boost::locale;
+ using namespace boost::locale::period;
+ std::string def[] = {
+ #ifdef BOOST_LOCALE_WITH_ICU
+ "icu" ,
+ #endif
+ #ifndef BOOST_LOCALE_NO_STD_BACKEND
+ "std" ,
+ #endif
+ #ifndef BOOST_LOCALE_NO_POSIX_BACKEND
+ "posix",
+ #endif
+ #ifndef BOOST_LOCALE_NO_WINAPI_BACKEND
+ "winapi",
+ #endif
+ };
+ for(int type = 0 ; type < int(sizeof(def)/sizeof(def[0])) ; type ++ ) {
+ boost::locale::localization_backend_manager tmp_backend = boost::locale::localization_backend_manager::global();
+ tmp_backend.select(def[type]);
+ boost::locale::localization_backend_manager::global(tmp_backend);
+ std::cout << "Testing for backend: " << def[type] << std::endl;
+ std::string backend_name = def[type];
+ {
+
+ boost::locale::generator g;
+
+ std::locale loc=g("en_US.UTF-8");
+
+ std::locale::global(loc);
+
+ std::string tz("GMT");
+ time_zone::global(tz);
+ calendar cal(loc,tz);
+
+ TEST(calendar() == cal);
+ TEST(calendar(loc) == cal);
+ TEST(calendar(tz) == cal);
+ TEST(calendar(loc,"GMT+01:00") != cal);
+ TEST(calendar(g("ru_RU.UTF-8")) != cal);
+
+ TEST(cal.minimum(month())==0);
+ TEST(cal.maximum(month())==11);
+ TEST(cal.minimum(day())==1);
+ TEST(cal.greatest_minimum(day())==1);
+ TEST(cal.least_maximum(day())==28);
+ TEST(cal.maximum(day())==31);
+
+ TEST(calendar(g("ar_EG.UTF-8")).first_day_of_week() == 7);
+ TEST(calendar(g("he_IL.UTF-8")).first_day_of_week() == 1);
+ TEST(calendar(g("ru_RU.UTF-8")).first_day_of_week() == 2);
+
+ std::ostringstream ss;
+ ss.imbue(loc);
+ ss<<boost::locale::as::time_zone(tz);
+
+ date_time time_point;
+
+ time_point=year(1970) + february() + day(5);
+
+ ss << as::ftime("%Y-%m-%d")<< time_point;
+
+ TEST(ss.str() == "1970-02-05");
+ time_point = 3 * hour_12() + 1 * am_pm() + 33 * minute() + 13 * second();
+ ss.str("");
+ ss << as::ftime("%Y-%m-%d %H:%M:%S") << time_point;
+ TEST( ss.str() == "1970-02-05 15:33:13"); ss.str("");
+
+ time_t a_date = 3600*24*(31+4); // Feb 5th
+ time_t a_time = 3600*15+60*33; // 15:33:05
+ time_t a_timesec = 13;
+ time_t a_datetime = a_date + a_time + a_timesec;
+
+ date_time base_time_point=date_time(a_datetime);
+
+ RESET();
+
+ time_point += hour();
+ TESTEQSR(time_point,"1970-02-05 16:33:13");
+
+ TEST(time_point.minimum(day())==1);
+ TEST(time_point.maximum(day())==28);
+
+ time_point += year() * 2 + 1 *month();
+ TESTEQSR(time_point,"1972-03-05 15:33:13");
+
+ time_point -= minute();
+ TESTEQSR( time_point, "1970-02-05 15:32:13");
+
+ time_point <<= minute() * 30;
+ TESTEQSR( time_point, "1970-02-05 15:03:13");
+
+ time_point >>= minute(40);
+ TESTEQSR( time_point, "1970-02-05 15:53:13");
+
+ TEST((time_point + month()) / month() == 2);
+ TEST(month(time_point + month(1)) == 2);
+ TEST(time_point / month() == 1);
+ TEST((time_point - month()) / month()== 0);
+ TEST(time_point / month() == 1);
+ TEST((time_point << month()) / month()== 2);
+ TEST(time_point / month()== 1);
+ TEST((time_point >> month()) / month()== 0);
+ TEST(time_point / month()== 1);
+
+
+
+ TEST( (time_point + 2 * hour() - time_point) / minute() == 120);
+ TEST( (time_point + month()- time_point) / day() == 28);
+ TEST( (time_point + 2* month()- (time_point+month())) / day() == 31);
+ TEST( day(time_point + 2* month()- (time_point+month())) == 31);
+
+ TESTEQSR( time_point + hour(), "1970-02-05 16:33:13");
+ TESTEQSR( time_point - hour(2), "1970-02-05 13:33:13");
+ TESTEQSR( time_point >> minute(), "1970-02-05 15:32:13");
+ TESTEQSR( time_point << second(), "1970-02-05 15:33:14");
+
+ TEST(time_point == time_point);
+ TEST(!(time_point != time_point));
+ TEST(time_point.get(hour()) == 15);
+ TEST(time_point/hour() == 15);
+ TEST(time_point+year() != time_point);
+ TEST(time_point - minute() <= time_point);
+ TEST(time_point <= time_point);
+ TEST(time_point + minute() >= time_point);
+ TEST(time_point >= time_point);
+
+ TEST(time_point < time_point + second());
+ TEST(!(time_point < time_point - second()));
+ TEST(time_point > time_point - second());
+ TEST(!(time_point > time_point + second()));
+
+ TEST(time_point.get(day()) == 5);
+ TEST(time_point.get(year()) == 1970);
+
+ TEST(time_point.get(era()) == 1);
+ TEST(time_point.get(year()) == 1970);
+ TEST(time_point.get(extended_year()) == 1970);
+ if(backend_name == "icu") {
+ time_point=extended_year(-3);
+ TEST(time_point.get(era()) == 0);
+ TEST(time_point.get(year()) == 4);
+ }
+ RESET();
+ TEST(time_point.get(month()) == 1);
+ TEST(time_point.get(day()) == 5);
+ TEST(time_point.get(day_of_year()) == 36);
+ TEST(time_point.get(day_of_week()) == 5);
+ TEST(time_point.get(day_of_week_in_month())==1);
+ time_point=date_time(a_datetime,calendar(g("ru_RU.UTF-8")));
+ TEST(time_point.get(day_of_week_local()) == 4);
+ time_point = year(2026) + january() + day(1);
+ TEST(time_point.get(day_of_week()) == 5);
+ TEST(time_point.get(week_of_year()) == 1);
+ TEST(time_point.get(week_of_month()) == 1);
+ time_point = day_of_week() * 1;
+ TEST(time_point.get(day()) == 4);
+ TEST(time_point.get(week_of_year()) == 1);
+ TEST(time_point.get(week_of_month()) == 1);
+ time_point += day() * 1;
+ TEST(time_point.get(week_of_year()) == 2);
+ TEST(time_point.get(week_of_month()) == 2);
+ time_point = february() + day() * 2;
+
+
+ TEST(time_point.get(week_of_year()) == 6);
+
+ if(backend_name!="icu" || BOOST_ICU_VER<408) {
+ TEST(time_point.get(week_of_month()) == 1);
+ }
+ else {
+ // cldr changes
+ TEST(time_point.get(week_of_month()) == 2);
+ }
+
+ time_point = year(2010) + january() + day() * 3;
+
+ if(backend_name!="icu" || BOOST_ICU_VER<408) {
+ TEST(time_point.get(week_of_year()) == 53);
+ }
+ else {
+ TEST(time_point.get(week_of_year()) == 1);
+ }
+
+ time_point = year()*2010 + january() + day() * 4;
+
+ if(backend_name!="icu" || BOOST_ICU_VER<408) {
+ TEST(time_point.get(week_of_year()) == 1);
+ }
+ else {
+ TEST(time_point.get(week_of_year()) == 2);
+ }
+ time_point = year()*2010 + january() + day() * 10;
+
+ if(backend_name!="icu" || BOOST_ICU_VER<408) {
+ TEST(time_point.get(week_of_year()) == 1);
+ }
+ else {
+ TEST(time_point.get(week_of_year()) == 2);
+ }
+
+ time_point = year()*2010 + january() + day() * 11;
+ if(backend_name!="icu" || BOOST_ICU_VER<408) {
+ TEST(time_point.get(week_of_year()) == 2);
+ }
+ else {
+ TEST(time_point.get(week_of_year()) == 3);
+ }
+ RESET();
+ TEST(time_point.get(hour()) == 15);
+ TEST(date_time(a_datetime,calendar("GMT+01:00")).get(hour()) ==16);
+ TEST(time_point.get(hour_12()) == 3);
+ TEST(time_point.get(am_pm()) == 1);
+ TEST(time_point.get(minute()) == 33);
+ TEST(time_point.get(second()) == 13);
+ TEST(date_time(year()* 1984 + february() + day()).get(week_of_year())==5);
+ TEST(time_point.get(week_of_month()) == 1);
+ RESET();
+
+ // Make sure we don't get year() < 1970 so the test would
+ // work on windows where mktime supports positive time_t
+ // only
+ time_point = year() * 2010;
+
+ TEST((time_point + year() *1 - hour() * 1 - time_point) / year() == 0);
+ TEST((time_point + year() *1 - time_point) / year() == 1);
+ TEST((time_point + year() *1 + hour() * 1 - time_point) / year() == 1);
+ TEST((time_point - year() *1 + hour() * 1 - time_point) / year() == 0);
+ TEST((time_point - year() *1 - time_point) / year() == -1);
+ TEST((time_point - year() *1 - hour() * 1 - time_point) / year() == -1);
+
+ RESET();
+
+ time_point.time(24*3600 * 2);
+
+ time_point = year() * 2011;
+ time_point = march();
+ time_point = day() * 29;
+
+ date_time tmp_save = time_point;
+
+ time_point = year() * 2011;
+ time_point = february();
+ time_point = day() * 5;
+
+ TEST(time_point.get(year()) == 2011);
+ TEST(time_point.get(month()) == 2); // march
+ TEST(time_point.get(day()) == 5);
+
+ time_point = tmp_save;
+
+ time_point = year() * 2011 + february() + day() * 5;
+ TEST(time_point.get(year()) == 2011);
+ TEST(time_point.get(month()) == 1); // february
+ TEST(time_point.get(day()) == 5);
+
+ } // test
+ } // for loop
+
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+
+}
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/test/test_formatting.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_formatting.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,494 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_WITH_ICU
+#include <iostream>
+int main()
+{
+ std::cout << "ICU is not build... Skipping" << std::endl;
+}
+#else
+
+#ifdef _MSC_VER
+#define _CRT_SECURE_NO_WARNINGS
+// Disable this "security crap"
+#endif
+
+#include <boost/locale/formatting.hpp>
+#include <boost/locale/format.hpp>
+#include <boost/locale/date_time.hpp>
+#include <boost/locale/generator.hpp>
+#include "test_locale.hpp"
+#include "test_locale_tools.hpp"
+#include <sstream>
+#include <iostream>
+#include <iomanip>
+#include <limits>
+
+#include <unicode/uversion.h>
+
+using namespace boost::locale;
+
+//#define TEST_DEBUG
+#ifdef BOOST_MSVC
+#define _CRT_SECURE_NO_WARNINGS
+#endif
+
+#ifdef TEST_DEBUG
+#undef BOOST_HAS_CHAR16_T
+#undef BOOST_HAS_CHAR32_T
+#define TESTEQ(x,y) do { std::cerr << "["<<x << "]!=\n[" << y <<"]"<< std::endl; TEST((x)==(y)); } while(0)
+#else
+#define TESTEQ(x,y) TEST((x)==(y))
+#endif
+
+#define TEST_FMT(manip,value,expected) \
+do{ \
+ std::basic_ostringstream<CharType> ss; \
+ ss.imbue(loc); \
+ ss << manip << value; \
+ TESTEQ(ss.str(),to_correct_string<CharType>(expected,loc)); \
+}while(0)
+
+#define TEST_NOPAR(manip,actual,type) \
+do{ \
+ type v; \
+ std::basic_string<CharType> act= \
+ to_correct_string<CharType>(actual,loc); \
+ { \
+ std::basic_istringstream<CharType> ss; \
+ ss.imbue(loc); \
+ ss.str(act); \
+ ss >> manip >> v ; \
+ TEST(ss.fail()); \
+ } \
+ { \
+ std::basic_istringstream<CharType> ss; \
+ ss.imbue(loc); \
+ ss.str(act); \
+ ss.exceptions(std::ios_base::failbit); \
+ ss >> manip; \
+ TEST_THROWS(ss >> v,std::ios_base::failure); \
+ } \
+}while(0)
+
+#define TEST_PAR(manip,type,actual,expected) \
+do{ \
+ type v; \
+ {std::basic_istringstream<CharType> ss; \
+ ss.imbue(loc); \
+ ss.str(to_correct_string<CharType>(actual,loc)); \
+ ss >> manip >> v >> std::ws; \
+ TESTEQ(v,expected); \
+ TEST(ss.eof()); }\
+ {std::basic_istringstream<CharType> ss; \
+ ss.imbue(loc); \
+ ss.str(to_correct_string<CharType>(std::string(actual)+"@",loc)); \
+ CharType tmp_c; \
+ ss >> manip >> v >> std::skipws >> tmp_c; \
+ TESTEQ(v,expected); \
+ TEST(tmp_c=='@'); } \
+}while(0)
+
+#define TEST_FP1(manip,value_in,str,type,value_out) \
+do { \
+ TEST_FMT(manip,value_in,str); \
+ TEST_PAR(manip,type,str,value_out); \
+}while(0)
+
+#define TEST_FP2(m1,m2,value_in,str,type,value_out) \
+do { \
+ TEST_FMT(m1<<m2,value_in,str); \
+ TEST_PAR(m1>>m2,type,str,value_out); \
+}while(0)
+
+#define TEST_FP3(m1,m2,m3,value_in,str,type,value_out) \
+do { \
+ TEST_FMT(m1<<m2<<m3,value_in,str); \
+ TEST_PAR(m1>>m2>>m3,type,str,value_out); \
+}while(0)
+
+#define TEST_FP4(m1,m2,m3,m4,value_in,str,type,value_out) \
+do { \
+ TEST_FMT(m1<<m2<<m3<<m4,value_in,str); \
+ TEST_PAR(m1>>m2>>m3>>m4,type,str,value_out); \
+}while(0)
+
+
+#define FORMAT(f,v,exp) \
+ do{\
+ std::basic_ostringstream<CharType> ss; \
+ ss.imbue(loc); \
+ std::basic_string<CharType> fmt = to_correct_string<CharType>(f,loc); \
+ ss << boost::locale::basic_format<CharType>(fmt) % v; \
+ TESTEQ(ss.str(),to_correct_string<CharType>(exp,loc)); \
+ ss.str(to_correct_string<CharType>("",loc)); \
+ ss << boost::locale::basic_format<CharType>(boost::locale::translate(fmt.c_str())) % v; \
+ /*ss << boost::locale::basic_format<CharType>(fmt) % v; */ \
+ TESTEQ(ss.str(),to_correct_string<CharType>(exp,loc)); \
+ TESTEQ( (boost::locale::basic_format<CharType>(fmt) % v).str(loc),to_correct_string<CharType>(exp,loc)); \
+ } while(0)
+
+
+#define TEST_MIN_MAX_FMT(type,minval,maxval) \
+ do { \
+ TEST_FMT(as::number,std::numeric_limits<type>::min(),minval); \
+ TEST_FMT(as::number,std::numeric_limits<type>::max(),maxval); \
+ }while(0)
+
+#define TEST_MIN_MAX_PAR(type,minval,maxval) \
+ do {\
+ TEST_PAR(as::number,type,minval,std::numeric_limits<type>::min()); \
+ TEST_PAR(as::number,type,maxval,std::numeric_limits<type>::max()); \
+ }while(0)
+
+#define TEST_MIN_MAX(type,minval,maxval) \
+ do { \
+ TEST_MIN_MAX_FMT(type,minval,maxval); \
+ TEST_MIN_MAX_PAR(type,minval,maxval); \
+ }while(0)
+
+
+#define BOOST_ICU_VER (U_ICU_VERSION_MAJOR_NUM*100 + U_ICU_VERSION_MINOR_NUM)
+#define BOOST_ICU_EXACT_VER (U_ICU_VERSION_MAJOR_NUM*10000 + U_ICU_VERSION_MINOR_NUM * 100 + U_ICU_VERSION_PATCHLEVEL_NUM)
+
+bool short_parsing_fails()
+{
+ static bool fails = false;
+ static bool get_result = false;
+ if(get_result)
+ return fails;
+ std::stringstream ss("65000");
+ ss.imbue(std::locale::classic());
+ short v=0;
+ ss >> v;
+ fails = ss.fail();
+ get_result = true;
+ return fails;
+}
+
+template<typename CharType>
+void test_manip(std::string e_charset="UTF-8")
+{
+ boost::locale::generator g;
+ std::locale loc=g("en_US."+e_charset);
+
+ TEST_FP1(as::posix,1200.1,"1200.1",double,1200.1);
+ TEST_FP1(as::number,1200.1,"1,200.1",double,1200.1);
+ TEST_FMT(as::number<<std::setfill(CharType('_'))<<std::setw(6),1534,"_1,534");
+ TEST_FMT(as::number<<std::left<<std::setfill(CharType('_'))<<std::setw(6),1534,"1,534_");
+
+ // Ranges
+ if(sizeof(short) == 2) {
+ TEST_MIN_MAX(short,"-32,768","32,767");
+ TEST_MIN_MAX(unsigned short,"0","65,535");
+ TEST_NOPAR(as::number,"-1",unsigned short);
+ if(short_parsing_fails()) {
+ TEST_NOPAR(as::number,"65,535",short);
+ }
+ }
+ if(sizeof(int)==4) {
+ TEST_MIN_MAX(int,"-2,147,483,648","2,147,483,647");
+ TEST_MIN_MAX(unsigned int,"0","4,294,967,295");
+ TEST_NOPAR(as::number,"-1",unsigned int);
+ TEST_NOPAR(as::number,"4,294,967,295",int);
+ }
+ if(sizeof(long)==4) {
+ TEST_MIN_MAX(long,"-2,147,483,648","2,147,483,647");
+ TEST_MIN_MAX(unsigned long,"0","4,294,967,295");
+ TEST_NOPAR(as::number,"-1",unsigned long);
+ TEST_NOPAR(as::number,"4,294,967,295",long);
+ }
+ if(sizeof(long)==8) {
+ TEST_MIN_MAX(long,"-9,223,372,036,854,775,808","9,223,372,036,854,775,807");
+ TEST_MIN_MAX_FMT(unsigned long,"0","18446744073709551615"); // Unsupported range by icu - ensure fallback
+ TEST_NOPAR(as::number,"-1",unsigned long);
+ }
+ #ifndef BOOST_NO_LONG_LONG
+ if(sizeof(long long)==8) {
+ TEST_MIN_MAX(long long,"-9,223,372,036,854,775,808","9,223,372,036,854,775,807");
+ // we can't really parse this as ICU does not support this range, only format
+ TEST_MIN_MAX_FMT(unsigned long long,"0","18446744073709551615"); // Unsupported range by icu - ensure fallback
+ TEST_FMT(as::number,9223372036854775807ULL,"9,223,372,036,854,775,807");
+ TEST_FMT(as::number,9223372036854775808ULL,"9223372036854775808"); // Unsupported range by icu - ensure fallback
+ TEST_NOPAR(as::number,"-1",unsigned long long);
+ }
+ #endif
+
+
+
+ TEST_FP3(as::number,std::left,std::setw(3),15,"15 ",int,15);
+ TEST_FP3(as::number,std::right,std::setw(3),15," 15",int,15);
+ TEST_FP3(as::number,std::setprecision(3),std::fixed,13.1,"13.100",double,13.1);
+ TEST_FP3(as::number,std::setprecision(3),std::scientific,13.1,"1.310E1",double,13.1);
+
+ TEST_NOPAR(as::number,"",int);
+ TEST_NOPAR(as::number,"--3",int);
+ TEST_NOPAR(as::number,"y",int);
+
+ TEST_FP1(as::percent,0.1,"10%",double,0.1);
+ TEST_FP3(as::percent,std::fixed,std::setprecision(1),0.10,"10.0%",double,0.1);
+
+ TEST_NOPAR(as::percent,"1",double);
+
+ TEST_FP1(as::currency,1345,"$1,345.00",int,1345);
+ TEST_FP1(as::currency,1345.34,"$1,345.34",double,1345.34);
+
+ TEST_NOPAR(as::currency,"$",double);
+
+
+ #if BOOST_ICU_VER >= 402
+ TEST_FP2(as::currency,as::currency_national,1345,"$1,345.00",int,1345);
+ TEST_FP2(as::currency,as::currency_national,1345.34,"$1,345.34",double,1345.34);
+ TEST_FP2(as::currency,as::currency_iso,1345,"USD1,345.00",int,1345);
+ TEST_FP2(as::currency,as::currency_iso,1345.34,"USD1,345.34",double,1345.34);
+ #endif
+ TEST_FP1(as::spellout,10,"ten",int,10);
+ #if 402 <= BOOST_ICU_VER && BOOST_ICU_VER < 408
+ if(e_charset=="UTF-8") {
+ TEST_FMT(as::ordinal,1,"1\xcb\xa2\xe1\xb5\x97"); // 1st with st as ligatures
+ }
+ #else
+ TEST_FMT(as::ordinal,1,"1st");
+ #endif
+
+ time_t a_date = 3600*24*(31+4); // Feb 5th
+ time_t a_time = 3600*15+60*33; // 15:33:05
+ time_t a_timesec = 13;
+ time_t a_datetime = a_date + a_time + a_timesec;
+
+ TEST_FP2(as::date, as::gmt,a_datetime,"Feb 5, 1970",time_t,a_date);
+ TEST_FP3(as::date,as::date_short ,as::gmt,a_datetime,"2/5/70",time_t,a_date);
+ TEST_FP3(as::date,as::date_medium,as::gmt,a_datetime,"Feb 5, 1970",time_t,a_date);
+ TEST_FP3(as::date,as::date_long ,as::gmt,a_datetime,"February 5, 1970",time_t,a_date);
+ TEST_FP3(as::date,as::date_full ,as::gmt,a_datetime,"Thursday, February 5, 1970",time_t,a_date);
+
+ TEST_NOPAR(as::date>>as::date_short,"aa/bb/cc",double);
+
+ TEST_FP2(as::time, as::gmt,a_datetime,"3:33:13 PM",time_t,a_time+a_timesec);
+ TEST_FP3(as::time,as::time_short ,as::gmt,a_datetime,"3:33 PM",time_t,a_time);
+ TEST_FP3(as::time,as::time_medium,as::gmt,a_datetime,"3:33:13 PM",time_t,a_time+a_timesec);
+ #if BOOST_ICU_VER >= 408
+ TEST_FP3(as::time,as::time_long ,as::gmt,a_datetime,"3:33:13 PM GMT",time_t,a_time+a_timesec);
+ #if BOOST_ICU_EXACT_VER != 40800
+ // know bug #8675
+ TEST_FP3(as::time,as::time_full ,as::gmt,a_datetime,"3:33:13 PM GMT",time_t,a_time+a_timesec);
+ #endif
+ #else
+ TEST_FP3(as::time,as::time_long ,as::gmt,a_datetime,"3:33:13 PM GMT+00:00",time_t,a_time+a_timesec);
+ TEST_FP3(as::time,as::time_full ,as::gmt,a_datetime,"3:33:13 PM GMT+00:00",time_t,a_time+a_timesec);
+ #endif
+
+ TEST_NOPAR(as::time,"AM",double);
+
+ TEST_FP2(as::time, as::time_zone("GMT+01:00"),a_datetime,"4:33:13 PM",time_t,a_time+a_timesec);
+ TEST_FP3(as::time,as::time_short ,as::time_zone("GMT+01:00"),a_datetime,"4:33 PM",time_t,a_time);
+ TEST_FP3(as::time,as::time_medium,as::time_zone("GMT+01:00"),a_datetime,"4:33:13 PM",time_t,a_time+a_timesec);
+ TEST_FP3(as::time,as::time_long ,as::time_zone("GMT+01:00"),a_datetime,"4:33:13 PM GMT+01:00",time_t,a_time+a_timesec);
+ #if BOOST_ICU_VER == 308 && defined(__CYGWIN__)
+ // Known faliture ICU issue
+ #else
+ TEST_FP3(as::time,as::time_full ,as::time_zone("GMT+01:00"),a_datetime,"4:33:13 PM GMT+01:00",time_t,a_time+a_timesec);
+ #endif
+
+ TEST_FP2(as::datetime, as::gmt,a_datetime,"Feb 5, 1970 3:33:13 PM",time_t,a_datetime);
+ TEST_FP4(as::datetime,as::date_short ,as::time_short ,as::gmt,a_datetime,"2/5/70 3:33 PM",time_t,a_date+a_time);
+ TEST_FP4(as::datetime,as::date_medium,as::time_medium,as::gmt,a_datetime,"Feb 5, 1970 3:33:13 PM",time_t,a_datetime);
+ #if BOOST_ICU_VER >= 408
+ TEST_FP4(as::datetime,as::date_long ,as::time_long ,as::gmt,a_datetime,"February 5, 1970 3:33:13 PM GMT",time_t,a_datetime);
+ #if BOOST_ICU_EXACT_VER != 40800
+ // know bug #8675
+ TEST_FP4(as::datetime,as::date_full ,as::time_full ,as::gmt,a_datetime,"Thursday, February 5, 1970 3:33:13 PM GMT",time_t,a_datetime);
+ #endif
+ #else
+ TEST_FP4(as::datetime,as::date_long ,as::time_long ,as::gmt,a_datetime,"February 5, 1970 3:33:13 PM GMT+00:00",time_t,a_datetime);
+ TEST_FP4(as::datetime,as::date_full ,as::time_full ,as::gmt,a_datetime,"Thursday, February 5, 1970 3:33:13 PM GMT+00:00",time_t,a_datetime);
+ #endif
+
+ time_t now=time(0);
+ time_t lnow = now + 3600 * 4;
+ char local_time_str[256];
+ std::string format="%H:%M:%S";
+ std::basic_string<CharType> format_string(format.begin(),format.end());
+ strftime(local_time_str,sizeof(local_time_str),format.c_str(),gmtime(&lnow));
+ TEST_FMT(as::ftime(format_string),now,local_time_str);
+ TEST_FMT(as::ftime(format_string)<<as::gmt<<as::local_time,now,local_time_str);
+
+ std::string marks =
+ "aAbB"
+ "cdeh"
+ "HIjm"
+ "Mnpr"
+ "RStT"
+ "xXyY"
+ "Z%";
+
+ std::string result[]= {
+ "Thu","Thursday","Feb","February", // aAbB
+ #if BOOST_ICU_VER >= 408
+ "Thursday, February 5, 1970 3:33:13 PM GMT", // c
+ #else
+ "Thursday, February 5, 1970 3:33:13 PM GMT+00:00", // c
+ #endif
+ "05","5","Feb", // deh
+ "15","03","36","02", // HIjm
+ "33","\n","PM", "03:33:13 PM",// Mnpr
+ "15:33","13","\t","15:33:13", // RStT
+ "Feb 5, 1970","3:33:13 PM","70","1970", // xXyY
+ #if BOOST_ICU_VER >= 408
+ "GMT" // Z
+ #else
+ "GMT+00:00" // Z
+ #endif
+ ,"%" }; // %
+
+ for(unsigned i=0;i<marks.size();i++) {
+ format_string.clear();
+ format_string+=static_cast<CharType>('%');
+ format_string+=static_cast<CharType>(marks[i]);
+ TEST_FMT(as::ftime(format_string)<<as::gmt,a_datetime,result[i]);
+ }
+
+ std::string sample_f[]={
+ "Now is %A, %H o'clo''ck ' or not ' ",
+ "'test %H'",
+ "%H'",
+ "'%H'"
+ };
+ std::string expected_f[] = {
+ "Now is Thursday, 15 o'clo''ck ' or not ' ",
+ "'test 15'",
+ "15'",
+ "'15'"
+ };
+
+ for(unsigned i=0;i<sizeof(sample_f)/sizeof(sample_f[0]);i++) {
+ format_string.assign(sample_f[i].begin(),sample_f[i].end());
+ TEST_FMT(as::ftime(format_string)<<as::gmt,a_datetime,expected_f[i]);
+ }
+
+}
+
+template<typename CharType>
+void test_format(std::string charset="UTF-8")
+{
+ boost::locale::generator g;
+ std::locale loc=g("en_US."+charset);
+
+ FORMAT("{3} {1} {2}", 1 % 2 % 3,"3 1 2");
+ FORMAT("{1} {2}", "hello" % 2,"hello 2");
+ FORMAT("{1}",1200.1,"1200.1");
+ FORMAT("Test {1,num}",1200.1,"Test 1,200.1");
+ FORMAT("{{}} {1,number}",1200.1,"{} 1,200.1");
+ FORMAT("{1,num=sci,p=3}",13.1,"1.310E1");
+ FORMAT("{1,num=scientific,p=3}",13.1,"1.310E1");
+ FORMAT("{1,num=fix,p=3}",13.1,"13.100");
+ FORMAT("{1,num=fixed,p=3}",13.1,"13.100");
+ FORMAT("{1,<,w=3,num}",-1,"-1 ");
+ FORMAT("{1,>,w=3,num}",1," 1");
+ FORMAT("{per,1}",0.1,"10%");
+ FORMAT("{percent,1}",0.1,"10%");
+ FORMAT("{1,cur}",1234,"$1,234.00");
+ FORMAT("{1,currency}",1234,"$1,234.00");
+ if(charset=="UTF-8") {
+ if(U_ICU_VERSION_MAJOR_NUM >=4)
+ FORMAT("{1,cur,locale=de_DE}",10,"10,00\xC2\xA0€");
+ else
+ FORMAT("{1,cur,locale=de_DE}",10,"10,00 €");
+ }
+ #if BOOST_ICU_VER >= 402
+ FORMAT("{1,cur=nat}",1234,"$1,234.00");
+ FORMAT("{1,cur=national}",1234,"$1,234.00");
+ FORMAT("{1,cur=iso}",1234,"USD1,234.00");
+ #endif
+ FORMAT("{1,spell}",10,"ten");
+ FORMAT("{1,spellout}",10,"ten");
+ #if 402 <= BOOST_ICU_VER && BOOST_ICU_VER < 408
+ if(charset=="UTF-8") {
+ FORMAT("{1,ord}",1,"1\xcb\xa2\xe1\xb5\x97");
+ FORMAT("{1,ordinal}",1,"1\xcb\xa2\xe1\xb5\x97");
+ }
+ #else
+ FORMAT("{1,ord}",1,"1st");
+ FORMAT("{1,ordinal}",1,"1st");
+ #endif
+
+ time_t now=time(0);
+ time_t lnow = now + 3600 * 4;
+ char local_time_str[256];
+ std::string format="'%H:%M:%S'";
+ std::basic_string<CharType> format_string(format.begin(),format.end());
+ strftime(local_time_str,sizeof(local_time_str),format.c_str(),gmtime(&lnow));
+
+ FORMAT("{1,ftime='''%H:%M:%S'''}",now,local_time_str);
+ FORMAT("{1,local,ftime='''%H:%M:%S'''}",now,local_time_str);
+ FORMAT("{1,ftime='''%H:%M:%S'''}",now,local_time_str);
+
+ time_t a_date = 3600*24*(31+4); // Feb 5th
+ time_t a_time = 3600*15+60*33; // 15:33:05
+ time_t a_timesec = 13;
+ time_t a_datetime = a_date + a_time + a_timesec;
+ FORMAT("{1,date,gmt};{1,time,gmt};{1,datetime,gmt};{1,dt,gmt}",a_datetime,
+ "Feb 5, 1970;3:33:13 PM;Feb 5, 1970 3:33:13 PM;Feb 5, 1970 3:33:13 PM");
+ #if BOOST_ICU_VER >= 408
+ FORMAT("{1,time=short,gmt};{1,time=medium,gmt};{1,time=long,gmt};{1,date=full,gmt}",a_datetime,
+ "3:33 PM;3:33:13 PM;3:33:13 PM GMT;Thursday, February 5, 1970");
+ FORMAT("{1,time=s,gmt};{1,time=m,gmt};{1,time=l,gmt};{1,date=f,gmt}",a_datetime,
+ "3:33 PM;3:33:13 PM;3:33:13 PM GMT;Thursday, February 5, 1970");
+ #else
+ FORMAT("{1,time=short,gmt};{1,time=medium,gmt};{1,time=long,gmt};{1,date=full,gmt}",a_datetime,
+ "3:33 PM;3:33:13 PM;3:33:13 PM GMT+00:00;Thursday, February 5, 1970");
+ FORMAT("{1,time=s,gmt};{1,time=m,gmt};{1,time=l,gmt};{1,date=f,gmt}",a_datetime,
+ "3:33 PM;3:33:13 PM;3:33:13 PM GMT+00:00;Thursday, February 5, 1970");
+ #endif
+ FORMAT("{1,time=s,tz=GMT+01:00}",a_datetime,"4:33 PM");
+ FORMAT("{1,time=s,timezone=GMT+01:00}",a_datetime,"4:33 PM");
+
+ FORMAT("{1,gmt,ftime='%H'''}",a_datetime,"15'");
+ FORMAT("{1,gmt,ftime='''%H'}",a_datetime,"'15");
+ FORMAT("{1,gmt,ftime='%H o''clock'}",a_datetime,"15 o'clock");
+}
+
+
+int main()
+{
+ try {
+ boost::locale::time_zone::global("GMT+4:00");
+ std::cout << "Testing char, UTF-8" << std::endl;
+ test_manip<char>();
+ test_format<char>();
+ std::cout << "Testing char, ISO8859-1" << std::endl;
+ test_manip<char>("ISO8859-1");
+ test_format<char>("ISO8859-1");
+
+ std::cout << "Testing wchar_t" << std::endl;
+ test_manip<wchar_t>();
+ test_format<wchar_t>();
+
+ #ifdef BOOST_HAS_CHAR16_T
+ std::cout << "Testing char16_t" << std::endl;
+ test_manip<char16_t>();
+ test_format<char16_t>();
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+ std::cout << "Testing char32_t" << std::endl;
+ test_manip<char32_t>();
+ test_format<char32_t>();
+ #endif
+
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+
+}
+
+#endif // NOICU
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/test/test_generator.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_generator.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,108 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_LOCALE_WITH_ICU
+#include <iostream>
+int main()
+{
+ std::cout << "ICU is not build... Skipping" << std::endl;
+}
+#else
+
+#include <boost/locale/generator.hpp>
+#include <boost/locale/info.hpp>
+#include <boost/locale/collator.hpp>
+#include <iomanip>
+#include "test_locale.hpp"
+
+
+bool has_collator(std::locale const &l)
+{
+ return std::has_facet<std::collate<char> >(l)
+ && dynamic_cast<boost::locale::collator<char> const *>(&std::use_facet<std::collate<char> >(l));
+}
+
+struct test_facet : public std::locale::facet {
+ test_facet() : std::locale::facet(0) {}
+ static std::locale::id id;
+};
+
+std::locale::id test_facet::id;
+
+
+int main()
+{
+ try {
+ boost::locale::generator g;
+ std::locale l=g("en_US.UTF-8");
+ TEST(has_collator(l));
+
+ g.categories(g.categories() ^ boost::locale::collation_facet);
+ g.locale_cache_enabled(true);
+ g("en_US.UTF-8");
+ g.categories(g.categories() | boost::locale::collation_facet);
+ l=g("en_US.UTF-8");
+ TEST(!has_collator(l));
+ g.clear_cache();
+ g.locale_cache_enabled(false);
+ l=g("en_US.UTF-8");
+ TEST(has_collator(l));
+ g.characters(g.characters() ^ boost::locale::char_facet);
+ l=g("en_US.UTF-8");
+ TEST(!has_collator(l));
+ g.characters(g.characters() | boost::locale::char_facet);
+ l=g("en_US.UTF-8");
+ TEST(has_collator(l));
+
+ l=g("en_US.ISO8859-1");
+ TEST(std::use_facet<boost::locale::info>(l).language()=="en");
+ TEST(std::use_facet<boost::locale::info>(l).country()=="US");
+ TEST(!std::use_facet<boost::locale::info>(l).utf8());
+ TEST(std::use_facet<boost::locale::info>(l).encoding()=="iso8859-1");
+
+ l=g("en_US.UTF-8");
+ TEST(std::use_facet<boost::locale::info>(l).language()=="en");
+ TEST(std::use_facet<boost::locale::info>(l).country()=="US");
+ TEST(std::use_facet<boost::locale::info>(l).utf8());
+
+ l=g("en_US.ISO8859-1");
+ TEST(std::use_facet<boost::locale::info>(l).language()=="en");
+ TEST(std::use_facet<boost::locale::info>(l).country()=="US");
+ TEST(!std::use_facet<boost::locale::info>(l).utf8());
+ TEST(std::use_facet<boost::locale::info>(l).encoding()=="iso8859-1");
+
+ l=g("en_US.ISO8859-1");
+ TEST(std::use_facet<boost::locale::info>(l).language()=="en");
+ TEST(std::use_facet<boost::locale::info>(l).country()=="US");
+ TEST(!std::use_facet<boost::locale::info>(l).utf8());
+ TEST(std::use_facet<boost::locale::info>(l).encoding()=="iso8859-1");
+
+ std::locale l_wt(std::locale::classic(),new test_facet);
+
+ TEST(std::has_facet<test_facet>(g.generate(l_wt,"en_US.UTF-8")));
+ TEST(std::has_facet<test_facet>(g.generate(l_wt,"en_US.ISO8859-1")));
+ TEST(!std::has_facet<test_facet>(g("en_US.UTF-8")));
+ TEST(!std::has_facet<test_facet>(g("en_US.ISO8859-1")));
+
+ g.locale_cache_enabled(true);
+ g.generate(l_wt,"en_US.UTF-8");
+ g.generate(l_wt,"en_US.ISO8859-1");
+ TEST(std::has_facet<test_facet>(g("en_US.UTF-8")));
+ TEST(std::has_facet<test_facet>(g("en_US.ISO8859-1")));
+ TEST(std::use_facet<boost::locale::info>(g("en_US.UTF-8")).utf8());
+ TEST(!std::use_facet<boost::locale::info>(g("en_US.ISO8859-1")).utf8());
+
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+
+}
+#endif // NOICU
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/test/test_icu_vs_os_timezone.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_icu_vs_os_timezone.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,64 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef BOOST_LOCALE_WITH_ICU
+#include <iostream>
+int main()
+{
+ std::cout << "ICU is not build... Skipping" << std::endl;
+}
+#else
+
+#ifdef _MSC_VER
+#define _CRT_SECURE_NO_WARNINGS
+// Disable this "security crap"
+#endif
+
+#include <boost/locale/formatting.hpp>
+#include <boost/locale/format.hpp>
+#include <boost/locale/generator.hpp>
+#include "test_locale.hpp"
+#include "test_locale_tools.hpp"
+#include <sstream>
+#include <iostream>
+#include <iomanip>
+
+#include <time.h>
+
+int main()
+{
+ try {
+
+ time_t now=time(0);
+ boost::locale::generator gen;
+ std::locale::global(gen("en_US.UTF-8"));
+
+ for(int i=0;i<366;i++) {
+ time_t point = now + i * 24 * 3600;
+ std::stringstream ss;
+ ss << boost::locale::format("{1,ftime='%H %M %S'}") % point;
+ int icu_hour = 0,icu_min = 0,icu_sec = 0;
+ ss >> icu_hour >> icu_min >> icu_sec;
+ std::tm *tm=localtime(&point);
+ TEST(icu_hour == tm->tm_hour);
+ TEST(icu_min == tm->tm_min);
+ TEST(icu_sec == tm->tm_sec);
+
+ }
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+
+}
+
+#endif // NO ICU
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/test/test_ios_prop.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_ios_prop.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,83 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#include "test_locale.hpp"
+#include "../src/shared/ios_prop.hpp"
+#include <sstream>
+#include <locale>
+
+int counter=0;
+int imbued=0;
+struct propery {
+ propery(int xx=-1) : x(xx) { counter ++; }
+ propery(propery const &other) { counter++; x=other.x; }
+ propery const &operator=(propery const &other) {
+ x=other.x;
+ return *this;
+ };
+ int x;
+ void on_imbue() {imbued++; }
+ ~propery() { counter--; }
+};
+typedef boost::locale::impl::ios_prop<propery> prop_type;
+
+struct init {
+ init() { prop_type::global_init(); }
+};
+
+int main()
+{
+ try {
+ {
+ std::stringstream ss;
+ TEST(!prop_type::has(ss));
+ TEST(prop_type::get(ss).x==-1);
+ TEST(prop_type::has(ss));
+ TEST(counter==1);
+ }
+ TEST(counter==0);
+ {
+ std::stringstream ss;
+ prop_type::set(propery(1),ss);
+ TEST(counter==1);
+ TEST(prop_type::get(ss).x==1);
+ }
+ TEST(counter==0);
+ {
+ std::stringstream ss;
+ prop_type::set(propery(1),ss);
+ TEST(counter==1);
+ TEST(prop_type::get(ss).x==1);
+ }
+ TEST(counter==0);
+ {
+ std::stringstream ss,ss2;
+ prop_type::set(propery(2),ss);
+ ss2.copyfmt(ss);
+ TEST(prop_type::get(ss).x==2);
+ TEST(prop_type::has(ss2));
+ TEST(prop_type::has(ss));
+ TEST(prop_type::get(ss2).x==2);
+ prop_type::get(ss2).x=3;
+ TEST(prop_type::get(ss2).x==3);
+ TEST(prop_type::get(ss).x==2);
+ TEST(counter==2);
+ TEST(imbued==0);
+ ss2.imbue(std::locale::classic());
+ TEST(imbued==1);
+ }
+ TEST(counter==0);
+ }catch(std::exception const &e) {
+ std::cerr << "Fail:" << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+ return 0;
+}
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/test/test_locale.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_locale.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,118 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef BOOST_LOCALE_TEST_H
+#define BOOST_LOCALE_TEST_H
+#include <stdexcept>
+#include <sstream>
+#include <iostream>
+#include <iomanip>
+#include <cstdlib>
+
+
+int error_counter=0;
+int test_counter=0;
+
+#ifndef BOOST_LOCALE_ERROR_LIMIT
+#define BOOST_LOCALE_ERROR_LIMIT 20
+#endif
+
+
+#define THROW_IF_TOO_BIG(X) \
+do { \
+ if((X) > BOOST_LOCALE_ERROR_LIMIT) \
+ throw std::runtime_error("Error limits reached, stopping unit test"); \
+}while(0)
+
+#define TEST(X) \
+ do { \
+ test_counter++; \
+ if(X) break; \
+ std::cerr << "Error in line:"<<__LINE__ << " "#X << std::endl; \
+ THROW_IF_TOO_BIG(error_counter++); \
+ }while(0)
+#endif
+
+#define TEST_THROWS(X,E) \
+ do { \
+ test_counter++; \
+ try { X; } catch(E const &/*e*/ ) {break;} catch(...){} \
+ std::cerr << "Error in line:"<<__LINE__ << " "#X << std::endl; \
+ THROW_IF_TOO_BIG(error_counter++); \
+ }while(0)
+
+#define FINALIZE() \
+ do { \
+ int passed=test_counter - error_counter; \
+ std::cout << std::endl; \
+ std::cout << "Passed "<<passed<<" tests" << std::endl; \
+ if(error_counter >0 ) { \
+ std::cout << "Failed "<<error_counter<<" tests"<<std::endl; \
+ } \
+ std::cout <<" "<< std::fixed << std::setprecision(1) \
+ << std::setw(5) << 100.0 * passed / test_counter << \
+ "% of tests completed sucsessefully" << std::endl; \
+ return error_counter == 0 ? EXIT_SUCCESS : EXIT_FAILURE ; \
+ }while(0)
+
+
+inline unsigned utf8_next(std::string const &s,unsigned &pos)
+{
+ unsigned c=(unsigned char)s[pos++];
+ if( (unsigned char)(c - 0xc0) >= 0x35)
+ return c;
+ unsigned l;
+ if(c < 192)
+ l = 0;
+ else if(c < 224)
+ l = 1;
+ else if(c < 240)
+ l = 2;
+ else
+ l = 3;
+
+ c&=(1<<(6-l))-1;
+
+ switch(l) {
+ case 3:
+ c = (c << 6) | (((unsigned char)s[pos++]) & 0x3F);
+ case 2:
+ c = (c << 6) | (((unsigned char)s[pos++]) & 0x3F);
+ case 1:
+ c = (c << 6) | (((unsigned char)s[pos++]) & 0x3F);
+ }
+ return c;
+}
+
+template<typename Char>
+std::basic_string<Char> to(std::string const &utf8)
+{
+ std::basic_string<Char> out;
+ unsigned i=0;
+ while(i<utf8.size()) {
+ unsigned point;
+ unsigned prev=i;
+ point = utf8_next(utf8,i);
+ if(sizeof(Char)==1 && point > 255) {
+ std::ostringstream ss;
+ ss << "Can't convert codepoint U" << std::hex << point <<"(" <<std::string(utf8.begin()+prev,utf8.begin()+i)<<") to Latin1";
+ throw std::runtime_error(ss.str());
+ }
+ else if(sizeof(Char)==2 && point >0xFFFF) { // Deal with surragates
+ point-=0x10000;
+ out+=static_cast<Char>(0xD800 | (point>>10));
+ out+=static_cast<Char>(0xDC00 | (point & 0x3FF));
+ continue;
+ }
+ out+=static_cast<Char>(point);
+ }
+ return out;
+}
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/test/test_locale_tools.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_locale_tools.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,94 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef BOOST_LOCLAE_TEST_LOCALE_TOOLS_HPP
+#define BOOST_LOCLAE_TEST_LOCALE_TOOLS_HPP
+
+#include <boost/locale/encoding.hpp>
+
+template<typename Char>
+std::basic_string<Char> to_correct_string(std::string const &e,std::locale /*l*/)
+{
+ return boost::locale::conv::to_utf<Char>(e,"UTF-8");
+}
+
+
+template<>
+inline std::string to_correct_string(std::string const &e,std::locale l)
+{
+ return boost::locale::conv::from_utf(e,l);
+}
+
+bool has_std_locale(std::string const &name)
+{
+ try {
+ std::locale tmp(name.c_str());
+ return true;
+ }
+ catch(...) {
+ return false;
+ }
+}
+
+std::string get_std_name(std::string const &name,std::string *real_name = 0)
+{
+ if(has_std_locale(name)) {
+ if(real_name)
+ *real_name = name;
+ return name;
+ }
+
+ #ifdef BOOST_WINDOWS
+ bool utf8=name.find("UTF-8")!=std::string::npos;
+
+ if(name=="en_US.UTF-8" || name == "en_US.ISO8859-1") {
+ if(has_std_locale("English_United States.1252")) {
+ if(real_name)
+ *real_name = "English_United States.1252";
+ return utf8 ? name : "en_US.windows-1252";
+ }
+ return "";
+ }
+ else if(name=="he_IL.UTF-8" || name == "he_IL.ISO8859-8") {
+ if(has_std_locale("Hebrew_Israel.1255")) {
+ if(real_name)
+ *real_name = "Hebrew_Israel.1255";
+ return utf8 ? name : "he_IL.windows-1255";
+ return name;
+ }
+ }
+ else if(name=="ru_RU.UTF-8") {
+ if(has_std_locale("Russian_Russia.1251")) {
+ if(real_name)
+ *real_name = "Russian_Russia.1251";
+ return name;
+ }
+ }
+ else if(name == "tr_TR.UTF-8") {
+ if(has_std_locale("Turkish_Turkey.1254")) {
+ if(real_name)
+ *real_name = "Turkish_Turkey.1254";
+ return name;
+ }
+ }
+ if(name == "ja_JP.SJIS") {
+ if(has_std_locale("Japanese_Japan.932")) {
+ if(real_name)
+ *real_name = "Japanese_Japan.932";
+ return name;
+ }
+ return "";
+ }
+ #endif
+ return "";
+}
+
+
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/test/test_message.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_message.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,514 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#include <boost/locale/generator.hpp>
+#include <boost/locale/localization_backend.hpp>
+#include <boost/locale/message.hpp>
+#include <boost/locale/gnu_gettext.hpp>
+#include <boost/locale/encoding.hpp>
+#include "test_locale.hpp"
+#include "test_locale_tools.hpp"
+#include <fstream>
+
+namespace bl = boost::locale;
+
+std::string backend;
+
+bool file_loader_is_actually_called = false;
+
+struct file_loader {
+ std::vector<char> operator()(std::string const &name,std::string const &/*encoding*/) const
+ {
+ std::vector<char> buffer;
+ std::ifstream f(name.c_str(),std::ifstream::binary);
+ if(!f)
+ return buffer;
+ f.seekg(0,std::ifstream::end);
+ size_t len = f.tellg();
+ if(len == 0)
+ return buffer;
+ f.seekg(0);
+ buffer.resize(len,'\0');
+ f.read(&buffer[0],len);
+ file_loader_is_actually_called = true;
+ return buffer;
+ }
+};
+
+
+std::string same_s(std::string s)
+{
+ return s;
+}
+
+std::wstring same_w(std::wstring s)
+{
+ return s;
+}
+
+#ifdef BOOST_HAS_CHAR16_T
+std::u16string same_u16(std::u16string s)
+{
+ return s;
+}
+#endif
+
+#ifdef BOOST_HAS_CHAR32_T
+std::u32string same_u32(std::u32string s)
+{
+ return s;
+}
+#endif
+
+template<typename Char>
+void strings_equal(std::string n_c,std::string n_s,std::string n_p,int n,std::string iexpected,std::locale const &l,std::string domain)
+{
+ typedef std::basic_string<Char> string_type;
+ string_type expected=to_correct_string<Char>(iexpected,l);
+
+ string_type c = to<Char>(n_c.c_str());
+ string_type s = to<Char>(n_s.c_str());
+ string_type p = to<Char>(n_p.c_str());
+
+ if(domain=="default") {
+ TEST(bl::translate(c,s,p,n).str(l)==expected);
+ Char const *c_c_str = c.c_str(),*s_c_str=s.c_str(), *p_c_str=p.c_str(); // workaround gcc-3.4 bug
+ TEST(bl::translate(c_c_str,s_c_str,p_c_str,n).str(l)==expected);
+ std::locale tmp_locale=std::locale();
+ std::locale::global(l);
+ string_type tmp=bl::translate(c,s,p,n);
+ TEST(tmp==expected);
+ tmp=bl::translate(c,s,p,n).str();
+ TEST(tmp==expected);
+ std::locale::global(tmp_locale);
+
+ std::basic_ostringstream<Char> ss;
+ ss.imbue(l);
+ ss << bl::translate(c,s,p,n);
+ TEST(ss.str()==expected);
+ }
+ TEST( bl::translate(c,s,p,n).str(l,domain)==expected );
+ std::locale tmp_locale=std::locale();
+ std::locale::global(l);
+ TEST(bl::translate(c,s,p,n).str(domain)==expected);
+ std::locale::global(tmp_locale);
+ {
+ std::basic_ostringstream<Char> ss;
+ ss.imbue(l);
+ ss << bl::as::domain(domain) << bl::translate(c,s,p,n);
+ TEST(ss.str()==expected);
+ }
+ {
+ std::basic_ostringstream<Char> ss;
+ ss.imbue(l);
+ ss << bl::as::domain(domain) << bl::translate(c.c_str(),s.c_str(),p.c_str(),n);
+ TEST(ss.str()==expected);
+ }
+}
+
+
+
+
+template<typename Char>
+void strings_equal(std::string n_s,std::string n_p,int n,std::string iexpected,std::locale const &l,std::string domain)
+{
+ typedef std::basic_string<Char> string_type;
+ string_type expected=to_correct_string<Char>(iexpected,l);
+ string_type s = to<Char>(n_s.c_str());
+ string_type p = to<Char>(n_p.c_str());
+ if(domain=="default") {
+ TEST(bl::translate(s,p,n).str(l)==expected);
+ Char const *s_c_str=s.c_str(), *p_c_str=p.c_str(); // workaround gcc-3.4 bug
+ TEST(bl::translate(s_c_str,p_c_str,n).str(l)==expected);
+ std::locale tmp_locale=std::locale();
+ std::locale::global(l);
+ string_type tmp=bl::translate(s,p,n);
+ TEST(tmp==expected);
+ tmp=bl::translate(s,p,n).str();
+ TEST(tmp==expected);
+ std::locale::global(tmp_locale);
+
+ std::basic_ostringstream<Char> ss;
+ ss.imbue(l);
+ ss << bl::translate(s,p,n);
+ TEST(ss.str()==expected);
+ }
+ TEST(bl::translate(s,p,n).str(l,domain)==expected);
+ std::locale tmp_locale=std::locale();
+ std::locale::global(l);
+ TEST(bl::translate(s,p,n).str(domain)==expected);
+ std::locale::global(tmp_locale);
+ {
+ std::basic_ostringstream<Char> ss;
+ ss.imbue(l);
+ ss << bl::as::domain(domain) << bl::translate(s,p,n);
+ TEST(ss.str()==expected);
+ }
+ {
+ std::basic_ostringstream<Char> ss;
+ ss.imbue(l);
+ ss << bl::as::domain(domain) << bl::translate(s.c_str(),p.c_str(),n);
+ TEST(ss.str()==expected);
+ }
+}
+
+
+template<typename Char>
+void strings_equal(std::string n_c,std::string n_original,std::string iexpected,std::locale const &l,std::string domain)
+{
+ typedef std::basic_string<Char> string_type;
+ string_type expected=to_correct_string<Char>(iexpected,l);
+ string_type original = to<Char>(n_original.c_str());
+ string_type c = to<Char>(n_c.c_str());
+ if(domain=="default") {
+ TEST(bl::translate(c,original).str(l)==expected);
+ Char const *original_c_str=original.c_str(); // workaround gcc-3.4 bug
+ Char const *context_c_str = c.c_str();
+ TEST(bl::translate(context_c_str,original_c_str).str(l)==expected);
+ std::locale tmp_locale=std::locale();
+ std::locale::global(l);
+ string_type tmp=bl::translate(c,original);
+ TEST(tmp==expected);
+ tmp=bl::translate(c,original).str();
+ TEST(tmp==expected);
+ std::locale::global(tmp_locale);
+
+ std::basic_ostringstream<Char> ss;
+ ss.imbue(l);
+ ss << bl::translate(c,original);
+ TEST(ss.str()==expected);
+ }
+ TEST(bl::translate(c,original).str(l,domain)==expected);
+ std::locale tmp_locale=std::locale();
+ std::locale::global(l);
+ TEST(bl::translate(c,original).str(domain)==expected);
+ std::locale::global(tmp_locale);
+ {
+ std::basic_ostringstream<Char> ss;
+ ss.imbue(l);
+ ss << bl::as::domain(domain) << bl::translate(c,original);
+ TEST(ss.str()==expected);
+ }
+ {
+ std::basic_ostringstream<Char> ss;
+ ss.imbue(l);
+ ss << bl::as::domain(domain) << bl::translate(c.c_str(),original.c_str());
+ TEST(ss.str()==expected);
+ }
+}
+
+
+
+
+template<typename Char>
+void strings_equal(std::string n_original,std::string iexpected,std::locale const &l,std::string domain)
+{
+ typedef std::basic_string<Char> string_type;
+ string_type expected=to_correct_string<Char>(iexpected,l);
+ string_type original = to<Char>(n_original.c_str());
+ if(domain=="default") {
+ TEST(bl::translate(original).str(l)==expected);
+ Char const *original_c_str=original.c_str(); // workaround gcc-3.4 bug
+ TEST(bl::translate(original_c_str).str(l)==expected);
+ std::locale tmp_locale=std::locale();
+ std::locale::global(l);
+ string_type tmp=bl::translate(original);
+ TEST(tmp==expected);
+ tmp=bl::translate(original).str();
+ TEST(tmp==expected);
+ std::locale::global(tmp_locale);
+
+ std::basic_ostringstream<Char> ss;
+ ss.imbue(l);
+ ss << bl::translate(original);
+ TEST(ss.str()==expected);
+ }
+ TEST(bl::translate(original).str(l,domain)==expected);
+ std::locale tmp_locale=std::locale();
+ std::locale::global(l);
+ TEST(bl::translate(original).str(domain)==expected);
+ std::locale::global(tmp_locale);
+ {
+ std::basic_ostringstream<Char> ss;
+ ss.imbue(l);
+ ss << bl::as::domain(domain) << bl::translate(original);
+ TEST(ss.str()==expected);
+ }
+ {
+ std::basic_ostringstream<Char> ss;
+ ss.imbue(l);
+ ss << bl::as::domain(domain) << bl::translate(original.c_str());
+ TEST(ss.str()==expected);
+ }
+}
+
+void test_cntranslate(std::string c,std::string s,std::string p,int n,std::string expected,std::locale const &l,std::string domain)
+{
+ strings_equal<char>(c,s,p,n,expected,l,domain);
+ strings_equal<wchar_t>(c,s,p,n,expected,l,domain);
+ #ifdef BOOST_HAS_CHAR16_T
+ if(backend=="icu" || backend=="std")
+ strings_equal<char16_t>(c,s,p,n,expected,l,domain);
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ if(backend=="icu" || backend=="std")
+ strings_equal<char32_t>(c,s,p,n,expected,l,domain);
+ #endif
+}
+
+
+void test_ntranslate(std::string s,std::string p,int n,std::string expected,std::locale const &l,std::string domain)
+{
+ strings_equal<char>(s,p,n,expected,l,domain);
+ strings_equal<wchar_t>(s,p,n,expected,l,domain);
+ #ifdef BOOST_HAS_CHAR16_T
+ if(backend=="icu" || backend=="std")
+ strings_equal<char16_t>(s,p,n,expected,l,domain);
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ if(backend=="icu" || backend=="std")
+ strings_equal<char32_t>(s,p,n,expected,l,domain);
+ #endif
+}
+
+void test_ctranslate(std::string c,std::string original,std::string expected,std::locale const &l,std::string domain)
+{
+ strings_equal<char>(c,original,expected,l,domain);
+ strings_equal<wchar_t>(c,original,expected,l,domain);
+ #ifdef BOOST_HAS_CHAR16_T
+ if(backend=="icu" || backend=="std")
+ strings_equal<char16_t>(c,original,expected,l,domain);
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ if(backend=="icu" || backend=="std")
+ strings_equal<char32_t>(c,original,expected,l,domain);
+ #endif
+}
+
+
+
+void test_translate(std::string original,std::string expected,std::locale const &l,std::string domain)
+{
+ strings_equal<char>(original,expected,l,domain);
+ strings_equal<wchar_t>(original,expected,l,domain);
+ #ifdef BOOST_HAS_CHAR16_T
+ if(backend=="icu" || backend=="std")
+ strings_equal<char16_t>(original,expected,l,domain);
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ if(backend=="icu" || backend=="std")
+ strings_equal<char32_t>(original,expected,l,domain);
+ #endif
+}
+
+
+
+int main(int argc,char **argv)
+{
+ try {
+ std::string def[] = {
+ #ifdef BOOST_LOCALE_WITH_ICU
+ "icu" ,
+ #endif
+ #ifndef BOOST_LOCALE_NO_STD_BACKEND
+ "std" ,
+ #endif
+ #ifndef BOOST_LOCALE_NO_POSIX_BACKEND
+ "posix",
+ #endif
+ #ifndef BOOST_LOCALE_NO_WINAPI_BACKEND
+ "winapi",
+ #endif
+ };
+ for(int type = 0 ; type < int(sizeof(def)/sizeof(def[0])) ; type ++ ) {
+ boost::locale::localization_backend_manager tmp_backend = boost::locale::localization_backend_manager::global();
+ tmp_backend.select(def[type]);
+ boost::locale::localization_backend_manager::global(tmp_backend);
+
+ backend = def[type];
+
+ std::cout << "Testing for backend --------- " << def[type] << std::endl;
+
+ boost::locale::generator g;
+ g.add_messages_domain("default");
+ g.add_messages_domain("simple");
+ g.add_messages_domain("full");
+ g.add_messages_domain("fall");
+ if(argc==2)
+ g.add_messages_path(argv[1]);
+ else
+ g.add_messages_path("./");
+
+
+ std::string locales[] = { "he_IL.UTF-8", "he_IL.ISO8859-8" };
+
+ for(unsigned i=0;i<sizeof(locales)/sizeof(locales[0]);i++){
+ std::locale l=g(locales[i]);
+
+ std::cout << " Testing "<<locales[i]<<std::endl;
+ std::cout << " single forms" << std::endl;
+
+ test_translate("hello","שלום",l,"default");
+ test_translate("hello","×”×™×™",l,"simple");
+ test_translate("hello","hello",l,"undefined");
+ test_translate("untranslated","untranslated",l,"default");
+ // Check removal of old "context" information
+ test_translate("#untranslated","#untranslated",l,"default");
+ test_translate("##untranslated","##untranslated",l,"default");
+ test_ctranslate("context","hello","שלום בהקשר אחר",l,"default");
+ test_translate("#hello","#שלום",l,"default");
+
+ std::cout << " plural forms" << std::endl;
+
+ {
+ test_ntranslate("x day","x days",0,"x ימים",l,"default");
+ test_ntranslate("x day","x days",1,"יום x",l,"default");
+ test_ntranslate("x day","x days",2,"יומיים",l,"default");
+ test_ntranslate("x day","x days",3,"x ימים",l,"default");
+ test_ntranslate("x day","x days",20,"x יום",l,"default");
+
+ test_ntranslate("x day","x days",0,"x days",l,"undefined");
+ test_ntranslate("x day","x days",1,"x day",l,"undefined");
+ test_ntranslate("x day","x days",2,"x days",l,"undefined");
+ test_ntranslate("x day","x days",20,"x days",l,"undefined");
+ }
+ std::cout << " plural forms with context" << std::endl;
+ {
+ std::string inp = "context";
+ std::string out = "בהקשר ";
+
+ test_cntranslate(inp,"x day","x days",0,out+"x ימים",l,"default");
+ test_cntranslate(inp,"x day","x days",1,out+"יום x",l,"default");
+ test_cntranslate(inp,"x day","x days",2,out+"יומיים",l,"default");
+ test_cntranslate(inp,"x day","x days",3,out+"x ימים",l,"default");
+ test_cntranslate(inp,"x day","x days",20,out+"x יום",l,"default");
+
+ test_cntranslate(inp,"x day","x days",0,"x days",l,"undefined");
+ test_cntranslate(inp,"x day","x days",1,"x day",l,"undefined");
+ test_cntranslate(inp,"x day","x days",2,"x days",l,"undefined");
+ test_cntranslate(inp,"x day","x days",20,"x days",l,"undefined");
+ }
+ }
+ std::cout << " Testing fallbacks" <<std::endl;
+ test_translate("test","he_IL",g("he_IL.UTF-8"),"full");
+ test_translate("test","he",g("he_IL.UTF-8"),"fall");
+
+ std::cout << " Testing automatic conversions " << std::endl;
+ std::locale::global(g("he_IL.UTF-8"));
+
+
+ TEST(same_s(bl::translate("hello"))=="שלום");
+ TEST(same_w(bl::translate(to<wchar_t>("hello")))==to<wchar_t>("שלום"));
+
+ #ifdef BOOST_HAS_CHAR16_T
+ if(backend=="icu" || backend=="std")
+ TEST(same_u16(bl::translate(to<char16_t>("hello")))==to<char16_t>("שלום"));
+ #endif
+
+ #ifdef BOOST_HAS_CHAR32_T
+ if(backend=="icu" || backend=="std")
+ TEST(same_u32(bl::translate(to<char32_t>("hello")))==to<char32_t>("שלום"));
+ #endif
+
+ }
+
+ std::cout << "Testing custom file system support" << std::endl;
+ {
+ boost::locale::gnu_gettext::messages_info info;
+ info.language = "he";
+ info.country = "IL";
+ info.encoding="UTF-8";
+ if(argc==2)
+ info.paths.push_back(argv[1]);
+ else
+ info.paths.push_back("./");
+
+ info.domains.push_back(bl::gnu_gettext::messages_info::domain("default"));
+ info.callback = file_loader();
+
+ std::locale l(std::locale::classic(),boost::locale::gnu_gettext::create_messages_facet<char>(info));
+ TEST(file_loader_is_actually_called);
+ TEST(bl::translate("hello").str(l)=="שלום");
+ }
+ std::cout << "Testing non-US-ASCII keys" << std::endl;
+ {
+ std::cout << " UTF-8 keys" << std::endl;
+ {
+ boost::locale::generator g;
+ g.add_messages_domain("default");
+ if(argc==2)
+ g.add_messages_path(argv[1]);
+ else
+ g.add_messages_path("./");
+
+ std::locale l = g("he_IL.UTF-8");
+
+ // narrow
+ TEST(bl::gettext("בדיקה",l)=="test");
+ TEST(bl::gettext("לא קיים",l)=="לא קיים");
+
+ // wide
+ std::wstring wtest = bl::conv::to_utf<wchar_t>("בדיקה","UTF-8");
+ std::wstring wmiss = bl::conv::to_utf<wchar_t>("לא קיים","UTF-8");
+ TEST(bl::gettext(wtest.c_str(),l)==L"test");
+ TEST(bl::gettext(wmiss.c_str(),l)==wmiss);
+
+ l=g("he_IL.ISO-8859-8");
+
+ // conversion with substitution
+ TEST(bl::gettext("test-あにま-בדיקה",l)==bl::conv::from_utf("test--בדיקה","ISO-8859-8"));
+ }
+
+ std::cout << " `ANSI' keys" << std::endl;
+
+ {
+ boost::locale::generator g;
+ g.add_messages_domain("default/ISO-8859-8");
+ if(argc==2)
+ g.add_messages_path(argv[1]);
+ else
+ g.add_messages_path("./");
+
+ std::locale l = g("he_IL.UTF-8");
+
+ // narrow non-UTF-8 keys
+ // match
+ TEST(bl::gettext(bl::conv::from_utf("בדיקה","ISO-8859-8").c_str(),l)=="test");
+ // conversion
+ TEST(bl::gettext(bl::conv::from_utf("לא קיים","ISO-8859-8").c_str(),l)=="לא קיים");
+ }
+ }
+ // Test compiles
+ {
+ bl::gettext("");
+ bl::gettext(L"");
+ bl::dgettext("","");
+ bl::dgettext("",L"");
+ bl::pgettext("","");
+ bl::pgettext(L"",L"");
+ bl::dpgettext("","","");
+ bl::dpgettext("",L"",L"");
+ bl::ngettext("","",1);
+ bl::ngettext(L"",L"",1);
+ bl::dngettext("","","",1);
+ bl::dngettext("",L"",L"",1);
+ bl::npgettext("","","",1);
+ bl::npgettext(L"",L"",L"",1);
+ bl::dnpgettext("","","","",1);
+ bl::dnpgettext("",L"",L"",L"",1);
+ }
+
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+}
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/test/test_posix_collate.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_posix_collate.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,119 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifdef BOOST_LOCALE_NO_POSIX_BACKEND
+#include <iostream>
+int main()
+{
+ std::cout << "POSIX Backend is not build... Skipping" << std::endl;
+}
+#else
+#include <boost/locale/config.hpp>
+#include <boost/locale/conversion.hpp>
+#include <boost/locale/localization_backend.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/info.hpp>
+#include <iomanip>
+#include "test_locale.hpp"
+#include "test_locale_tools.hpp"
+#include "test_posix_tools.hpp"
+#include <iostream>
+
+int get_sign(int x)
+{
+ if(x<0)
+ return -1;
+ else if(x==0)
+ return 0;
+ return 1;
+}
+
+template<typename CharType>
+void test_one(std::locale const &l,std::string ia,std::string ib,int diff)
+{
+ std::basic_string<CharType> a=to_correct_string<CharType>(ia,l);
+ std::basic_string<CharType> b=to_correct_string<CharType>(ib,l);
+ if(diff < 0) {
+ TEST(l(a,b));
+ TEST(!l(b,a));
+ }
+ else if(diff == 0) {
+ TEST(!l(a,b));
+ TEST(!l(b,a));
+ }
+ else {
+ TEST(!l(a,b));
+ TEST(l(b,a));
+ }
+
+ std::collate<CharType> const &col = std::use_facet<std::collate<CharType> >(l);
+
+ TEST(diff == col.compare(a.c_str(),a.c_str()+a.size(),b.c_str(),b.c_str()+b.size()));
+ TEST(diff == get_sign(col.transform(a.c_str(),a.c_str()+a.size()).compare(col.transform(b.c_str(),b.c_str()+b.size()))));
+ if(diff == 0) {
+ TEST(col.hash(a.c_str(),a.c_str()+a.size()) == col.hash(b.c_str(),b.c_str()+b.size()));
+ }
+}
+
+template<typename CharType>
+void test_char()
+{
+ boost::locale::generator gen;
+
+ std::cout << "- Testing at least C" << std::endl;
+
+ std::locale l = gen("en_US.UTF-8");
+
+ test_one<CharType>(l,"a","b",-1);
+ test_one<CharType>(l,"a","a",0);
+
+ std::string name;
+
+
+ #ifndef __APPLE__
+ std::string names[] = { "en_US.UTF-8", "en_US.ISO8859-1" };
+ for(unsigned i=0;i<sizeof(names)/sizeof(names[0]);i++) {
+ if(have_locale(names[i])) {
+ name = names[i];
+ std::cout << "- Testing " << name << std::endl;
+ std::locale l=gen(name);
+ test_one<CharType>(l,"a","ç",-1);
+ test_one<CharType>(l,"ç","d",-1);
+ }
+ else {
+ std::cout << "- " << names[i] << " not supported, skipping" << std::endl;
+ }
+ }
+ #else
+ std::cout << "- Collation is broken in Mac OS X's C standard library, skipping" << std::endl;
+ #endif
+}
+
+
+int main()
+{
+ try {
+ boost::locale::localization_backend_manager mgr = boost::locale::localization_backend_manager::global();
+ mgr.select("posix");
+ boost::locale::localization_backend_manager::global(mgr);
+
+ std::cout << "Testing char" << std::endl;
+ test_char<char>();
+ std::cout << "Testing wchar_t" << std::endl;
+ test_char<wchar_t>();
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+
+}
+#endif // NO POSIX
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+
+

Added: trunk/libs/locale/test/test_posix_convert.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_posix_convert.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,121 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifdef BOOST_LOCALE_NO_POSIX_BACKEND
+#include <iostream>
+int main()
+{
+ std::cout << "POSIX Backend is not build... Skipping" << std::endl;
+}
+#else
+#include <boost/locale/conversion.hpp>
+#include <boost/locale/localization_backend.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/info.hpp>
+#include <iomanip>
+#include "test_locale.hpp"
+#include "test_locale_tools.hpp"
+#include "test_posix_tools.hpp"
+#include <iostream>
+
+#include <wctype.h>
+
+
+template<typename CharType>
+void test_one(std::locale const &l,std::string src,std::string tgtl,std::string tgtu)
+{
+ TEST(boost::locale::to_upper(to_correct_string<CharType>(src,l),l) == to_correct_string<CharType>(tgtu,l));
+ TEST(boost::locale::to_lower(to_correct_string<CharType>(src,l),l) == to_correct_string<CharType>(tgtl,l));
+ TEST(boost::locale::fold_case(to_correct_string<CharType>(src,l),l) == to_correct_string<CharType>(tgtl,l));
+}
+
+template<typename CharType>
+void test_char()
+{
+ boost::locale::generator gen;
+
+ std::cout << "- Testing at least C" << std::endl;
+
+ std::locale l = gen("en_US.UTF-8");
+
+ test_one<CharType>(l,"Hello World i","hello world i","HELLO WORLD I");
+
+ std::string name = "en_US.UTF-8";
+ if(have_locale(name)) {
+ std::cout << "- Testing " << name << std::endl;
+ std::locale l=gen(name);
+ test_one<CharType>(l,"Façade","façade","FAÇADE");
+ }
+ else {
+ std::cout << "- en_US.UTF-8 is not supported, skipping" << std::endl;
+ }
+
+ name = "en_US.ISO8859-1";
+ if(have_locale(name)) {
+ std::cout << "Testing " << name << std::endl;
+ std::locale l=gen(name);
+ test_one<CharType>(l,"Hello World","hello world","HELLO WORLD");
+ #ifdef __APPLE__
+ if(sizeof(CharType)!=1)
+ #endif
+ test_one<CharType>(l,"Façade","façade","FAÇADE");
+ }
+ else {
+ std::cout << "- en_US.ISO8859-1 is not supported, skipping" << std::endl;
+ }
+
+ name = "tr_TR.UTF-8";
+ if(have_locale(name)) {
+ std::cout << "Testing " << name << std::endl;
+ locale_t cl = newlocale(LC_ALL_MASK,name.c_str(),0);
+ try {
+ TEST(cl);
+ if(towupper_l(L'i',cl) == 0x130) {
+ test_one<CharType>(gen(name),"i","i","Ä°");
+ }
+ else {
+ std::cout <<" Turkish locale is not supported well" << std::endl;
+ }
+ }
+ catch(...) {
+ if(cl) freelocale(cl);
+ throw;
+ }
+ if(cl) freelocale(cl);
+
+ }
+ else
+ {
+ std::cout << "- tr_TR.UTF-8 is not supported, skipping" << std::endl;
+ }
+}
+
+
+int main()
+{
+ try {
+ boost::locale::localization_backend_manager mgr = boost::locale::localization_backend_manager::global();
+ mgr.select("posix");
+ boost::locale::localization_backend_manager::global(mgr);
+
+ std::cout << "Testing char" << std::endl;
+ test_char<char>();
+ std::cout << "Testing wchar_t" << std::endl;
+ test_char<wchar_t>();
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+
+}
+
+#endif // POSIX
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+
+

Added: trunk/libs/locale/test/test_posix_formatting.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_posix_formatting.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,283 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifdef BOOST_LOCALE_NO_POSIX_BACKEND
+#include <iostream>
+int main()
+{
+ std::cout << "POSIX Backend is not build... Skipping" << std::endl;
+}
+#else
+#include <boost/locale/formatting.hpp>
+#include <boost/locale/localization_backend.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/encoding.hpp>
+#include <boost/locale/info.hpp>
+#include <iomanip>
+#include "test_locale.hpp"
+#include "test_locale_tools.hpp"
+#include "test_posix_tools.hpp"
+#include <iostream>
+
+#include <time.h>
+#include <monetary.h>
+#include <assert.h>
+#include <langinfo.h>
+
+//#define DEBUG_FMT
+
+bool equal(std::string const &s1,std::string const &s2,locale_t /*lc*/)
+{
+ return s1 == s2;
+}
+
+bool equal(std::wstring const &s1,std::string const &s2,locale_t lc)
+{
+ return s1 == boost::locale::conv::to_utf<wchar_t>(s2,nl_langinfo_l(CODESET,lc));
+}
+
+template<typename CharType>
+std::basic_string<CharType> conv_to_char(char const *p)
+{
+ std::basic_string<CharType> r;
+ while(*p)
+ r+=CharType(*p++);
+ return r;
+}
+
+
+template<typename CharType,typename RefCharType>
+void test_by_char(std::locale const &l,locale_t lreal)
+{
+ typedef std::basic_stringstream<CharType> ss_type;
+ typedef std::basic_stringstream<RefCharType> ss_ref_type;
+ typedef std::basic_string<RefCharType> string_type;
+ typedef std::basic_string<RefCharType> string_ref_type;
+
+ using namespace boost::locale;
+
+ {
+ std::cout << "- Testing as::posix" << std::endl;
+ ss_type ss;
+ ss.imbue(l);
+
+ ss << 1045.45;
+ TEST(ss);
+ double n;
+ ss >> n;
+ TEST(ss);
+ TEST(n == 1045.45);
+ TEST(ss.str()==to_correct_string<CharType>("1045.45",l));
+ #ifdef DEBUG_FMT
+ std::cout << "[" << boost::locale::conv::from_utf(ss.str(),"UTF-8") << "]=\n" ;
+ #endif
+ }
+
+ {
+ std::cout << "- Testing as::number" << std::endl;
+ ss_type ss;
+ ss.imbue(l);
+
+ ss << as::number;
+ ss << 1045.45;
+ TEST(ss);
+ double n;
+ ss >> n;
+ TEST(ss);
+ TEST(n == 1045.45);
+
+ if(std::use_facet<boost::locale::info>(l).country()=="US")
+ TEST(equal(ss.str(),"1,045.45",lreal));
+ }
+
+ {
+ std::cout << "- Testing as::currency national " << std::endl;
+
+ char buf[256];
+ strfmon_l(buf,256,lreal,"%n",1043.34);
+
+ ss_type ss;
+ ss.imbue(l);
+
+ ss << as::currency;
+ ss << 1043.34;
+ TEST(ss);
+
+ TEST(equal(ss.str(),buf,lreal));
+ #ifdef DEBUG_FMT
+ std::cout << "[" << boost::locale::conv::from_utf(ss.str(),"UTF-8") << "]=\n" ;
+ std::cout << "[" << boost::locale::conv::from_utf(buf,"UTF-8") << "]\n" ;
+ #endif
+
+ }
+
+ {
+ std::cout << "- Testing as::currency iso" << std::endl;
+ char buf[256];
+ strfmon_l(buf,256,lreal,"%i",1043.34);
+ ss_type ss;
+ ss.imbue(l);
+
+ ss << as::currency << as::currency_iso;
+ ss << 1043.34;
+ TEST(ss);
+
+ TEST(equal(ss.str(),buf,lreal));
+ #ifdef DEBUG_FMT
+ std::cout << "[" << boost::locale::conv::from_utf(ss.str(),"UTF-8") << "]=\n" ;
+ std::cout << "[" << boost::locale::conv::from_utf(buf,"UTF-8") << "]\n" ;
+ #endif
+ }
+
+
+ {
+ std::cout << "- Testing as::date/time" << std::endl;
+ ss_type ss;
+ ss.imbue(l);
+
+ time_t a_date = 3600*24*(31+4); // Feb 5th
+ time_t a_time = 3600*15+60*33; // 15:33:05
+ time_t a_timesec = 13;
+ time_t a_datetime = a_date + a_time + a_timesec;
+
+ ss << as::time_zone("GMT");
+
+ ss << as::date << a_datetime << CharType('\n');
+ ss << as::time << a_datetime << CharType('\n');
+ ss << as::datetime << a_datetime << CharType('\n');
+ ss << as::time_zone("GMT+01:00");
+ ss << as::ftime(conv_to_char<CharType>("%H")) << a_datetime << CharType('\n');
+ ss << as::time_zone("GMT+00:15");
+ ss << as::ftime(conv_to_char<CharType>("%M")) << a_datetime << CharType('\n');
+
+ std::tm tm=*gmtime(&a_datetime);
+ char buf[256];
+ strftime_l(buf,sizeof(buf),"%x\n%X\n%c\n16\n48\n",&tm,lreal);
+
+ TEST(equal(ss.str(),buf,lreal));
+ #ifdef DEBUG_FMT
+ std::cout << "[" << boost::locale::conv::from_utf(ss.str(),"UTF-8") << "]=\n" ;
+ std::cout << "[" << boost::locale::conv::from_utf(buf,"UTF-8") << "]\n" ;
+ #endif
+ }
+
+}
+
+int main()
+{
+ locale_t lreal = 0;
+ try {
+ boost::locale::localization_backend_manager mgr = boost::locale::localization_backend_manager::global();
+ mgr.select("posix");
+ boost::locale::localization_backend_manager::global(mgr);
+ boost::locale::generator gen;
+ std::string name;
+
+ {
+ std::cout << "en_US.UTF locale" << std::endl;
+ name="en_US.UTF-8";
+ if(!have_locale(name)) {
+ std::cout << "en_US.UTF-8 not supported" << std::endl;
+ }
+ else {
+ std::locale l1=gen(name);
+ lreal=newlocale(LC_ALL_MASK,name.c_str(),0);
+ assert(lreal);
+ std::cout << "UTF-8" << std::endl;
+
+ test_by_char<char,char>(l1,lreal);
+
+ std::cout << "Wide UTF-" << sizeof(wchar_t) * 8 << std::endl;
+ test_by_char<wchar_t,char>(l1,lreal);
+ freelocale(lreal);
+ lreal = 0;
+ }
+ }
+ {
+ std::cout << "en_US.Latin-1 locale" << std::endl;
+ std::string name = "en_US.ISO8859-1";
+ if(!have_locale(name)) {
+ std::cout << "en_US.ISO8859-8 not supported" << std::endl;
+ }
+ else {
+ std::locale l1=gen(name);
+ lreal=newlocale(LC_ALL_MASK,name.c_str(),0);
+ assert(lreal);
+ test_by_char<char,char>(l1,lreal);
+ std::cout << "Wide UTF-" << sizeof(wchar_t) * 8 << std::endl;
+ test_by_char<wchar_t,char>(l1,lreal);
+ freelocale(lreal);
+ lreal = 0;
+ }
+ }
+ {
+ std::cout << "he_IL.UTF locale" << std::endl;
+ name="he_IL.UTF-8";
+ if(!have_locale(name)) {
+ std::cout << name << " not supported" << std::endl;
+ }
+ else {
+ std::locale l1=gen(name);
+ lreal=newlocale(LC_ALL_MASK,name.c_str(),0);
+ assert(lreal);
+ std::cout << "UTF-8" << std::endl;
+
+ test_by_char<char,char>(l1,lreal);
+
+ std::cout << "Wide UTF-" << sizeof(wchar_t) * 8 << std::endl;
+ test_by_char<wchar_t,char>(l1,lreal);
+ freelocale(lreal);
+ lreal = 0;
+ }
+ }
+ {
+ std::cout << "he_IL.ISO locale" << std::endl;
+ std::string name = "he_IL.ISO8859-8";
+ if(!have_locale(name)) {
+ std::cout << name <<" not supported" << std::endl;
+ }
+ else {
+ std::locale l1=gen(name);
+ lreal=newlocale(LC_ALL_MASK,name.c_str(),0);
+ assert(lreal);
+ test_by_char<char,char>(l1,lreal);
+ std::cout << "Wide UTF-" << sizeof(wchar_t) * 8 << std::endl;
+ test_by_char<wchar_t,char>(l1,lreal);
+ freelocale(lreal);
+ lreal = 0;
+ }
+ }
+ {
+ std::cout << "Testing UTF-8 punct issues" << std::endl;
+ std::string name = "ru_RU.UTF-8";
+ if(!have_locale(name)) {
+ std::cout << "- No russian locale" << std::endl;
+ }
+ else {
+ std::locale l1=gen(name);
+ std::ostringstream ss;
+ ss.imbue(l1);
+ ss << std::setprecision(10) ;
+ ss << boost::locale::as::number << 12345.45;
+ std::string v=ss.str();
+ TEST(v == "12345,45" || v == "12 345,45" || v=="12.345,45");
+ }
+ }
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ if(lreal)
+ freelocale(lreal);
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+
+}
+
+#endif // posix
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/test/test_posix_tools.hpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_posix_tools.hpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,31 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef BOOST_LOCLAE_TEST_LOCALE_POSIX_TOOLS_HPP
+#define BOOST_LOCLAE_TEST_LOCALE_POSIX_TOOLS_HPP
+
+#include <locale.h>
+#include <string>
+
+#ifdef __APPLE__
+#include <xlocale.h>
+#endif
+
+inline bool have_locale(std::string const &name)
+{
+ locale_t l=newlocale(LC_ALL_MASK,name.c_str(),0);
+ if(l) {
+ freelocale(l);
+ return true;
+ }
+ return false;
+}
+
+#endif
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/test/test_std_collate.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_std_collate.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,124 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifdef BOOST_LOCALE_NO_STD_BACKEND
+#include <iostream>
+int main()
+{
+ std::cout << "STD Backend is not build... Skipping" << std::endl;
+}
+#else
+
+#include <boost/locale/config.hpp>
+#include <boost/locale/conversion.hpp>
+#include <boost/locale/localization_backend.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/info.hpp>
+#include <iomanip>
+#include "test_locale.hpp"
+#include "test_locale_tools.hpp"
+#include <iostream>
+
+int get_sign(int x)
+{
+ if(x<0)
+ return -1;
+ else if(x==0)
+ return 0;
+ return 1;
+}
+
+template<typename CharType>
+void test_one(std::locale const &l,std::string ia,std::string ib,int diff)
+{
+ std::basic_string<CharType> a=to_correct_string<CharType>(ia,l);
+ std::basic_string<CharType> b=to_correct_string<CharType>(ib,l);
+ if(diff < 0) {
+ TEST(l(a,b));
+ TEST(!l(b,a));
+ }
+ else if(diff == 0) {
+ TEST(!l(a,b));
+ TEST(!l(b,a));
+ }
+ else {
+ TEST(!l(a,b));
+ TEST(l(b,a));
+ }
+
+ std::collate<CharType> const &col = std::use_facet<std::collate<CharType> >(l);
+
+ TEST(diff == col.compare(a.c_str(),a.c_str()+a.size(),b.c_str(),b.c_str()+b.size()));
+ TEST(diff == get_sign(col.transform(a.c_str(),a.c_str()+a.size()).compare(col.transform(b.c_str(),b.c_str()+b.size()))));
+ if(diff == 0) {
+ TEST(col.hash(a.c_str(),a.c_str()+a.size()) == col.hash(b.c_str(),b.c_str()+b.size()));
+ }
+}
+
+template<typename CharType>
+void test_char()
+{
+ boost::locale::generator gen;
+
+ std::cout << "- Testing at least C" << std::endl;
+
+ std::locale l = gen("en_US.UTF-8");
+
+ test_one<CharType>(l,"a","b",-1);
+ test_one<CharType>(l,"a","a",0);
+
+ std::string name;
+
+ std::string names[] = { "en_US.UTF-8", "en_US.ISO8859-1" };
+ for(unsigned i=0;i<sizeof(names)/sizeof(names[0]);i++) {
+ name = get_std_name(names[i]);
+ if(!name.empty()) {
+ std::cout << "- Testing " << name << std::endl;
+ std::locale l=gen(name);
+ test_one<CharType>(l,"a","ç",-1);
+ test_one<CharType>(l,"ç","d",-1);
+ }
+ else {
+ std::cout << "- " << names[i] << " not supported, skipping" << std::endl;
+ }
+ }
+}
+
+
+int main()
+{
+ try {
+ boost::locale::localization_backend_manager mgr = boost::locale::localization_backend_manager::global();
+ mgr.select("std");
+ boost::locale::localization_backend_manager::global(mgr);
+
+ std::cout << "Testing char" << std::endl;
+ test_char<char>();
+ std::cout << "Testing wchar_t" << std::endl;
+ test_char<wchar_t>();
+ #ifdef BOOST_HAS_CHAR16_T
+ std::cout << "Testing char16_t" << std::endl;
+ test_char<char16_t>();
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ std::cout << "Testing char32_t" << std::endl;
+ test_char<char32_t>();
+ #endif
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+
+}
+
+#endif // NO STD
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/test/test_std_convert.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_std_convert.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,119 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifdef BOOST_LOCALE_NO_STD_BACKEND
+#include <iostream>
+int main()
+{
+ std::cout << "STD Backend is not build... Skipping" << std::endl;
+}
+#else
+
+
+
+#include <boost/locale/conversion.hpp>
+#include <boost/locale/localization_backend.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/info.hpp>
+#include <iomanip>
+#include "test_locale.hpp"
+#include "test_locale_tools.hpp"
+#include <iostream>
+
+template<typename CharType>
+void test_one(std::locale const &l,std::string src,std::string tgtl,std::string tgtu)
+{
+ TEST(boost::locale::to_upper(to_correct_string<CharType>(src,l),l) == to_correct_string<CharType>(tgtu,l));
+ TEST(boost::locale::to_lower(to_correct_string<CharType>(src,l),l) == to_correct_string<CharType>(tgtl,l));
+ TEST(boost::locale::fold_case(to_correct_string<CharType>(src,l),l) == to_correct_string<CharType>(tgtl,l));
+}
+
+template<typename CharType>
+void test_char()
+{
+ boost::locale::generator gen;
+
+ std::cout << "- Testing at least C" << std::endl;
+
+ std::locale l = gen("en_US.UTF-8");
+
+ test_one<CharType>(l,"Hello World i","hello world i","HELLO WORLD I");
+
+ std::string name;
+
+ name = get_std_name("en_US.UTF-8");
+ if(!name.empty()) {
+ std::cout << "- Testing " << name << std::endl;
+ std::locale l=gen(name);
+ test_one<CharType>(l,"Façade","façade","FAÇADE");
+ }
+ else {
+ std::cout << "- en_US.UTF-8 is not supported, skipping" << std::endl;
+ }
+
+ name = get_std_name("en_US.ISO8859-1");
+ if(!name.empty()) {
+ std::cout << "Testing " << name << std::endl;
+ std::locale l=gen(name);
+ test_one<CharType>(l,"Hello World","hello world","HELLO WORLD");
+ test_one<CharType>(l,"Façade","façade","FAÇADE");
+ }
+ else {
+ std::cout << "- en_US.ISO8859-1 is not supported, skipping" << std::endl;
+ }
+ std::string real_name;
+ name = get_std_name("tr_TR.UTF-8",&real_name);
+ if(!name.empty()) {
+ std::cout << "Testing " << name << std::endl;
+ if(std::use_facet<std::ctype<wchar_t> >(std::locale(real_name.c_str())).toupper(L'i')!=L'I') {
+ std::locale l=gen(name);
+ test_one<CharType>(l,"i","i","Ä°");
+ }
+ else {
+ std::cout << "Standard library does not support this locale's case conversion correctly" << std::endl;
+ }
+ }
+ else
+ {
+ std::cout << "- tr_TR.UTF-8 is not supported, skipping" << std::endl;
+ }
+}
+
+
+int main()
+{
+ try {
+ boost::locale::localization_backend_manager mgr = boost::locale::localization_backend_manager::global();
+ mgr.select("std");
+ boost::locale::localization_backend_manager::global(mgr);
+
+ std::cout << "Testing char" << std::endl;
+ test_char<char>();
+ std::cout << "Testing wchar_t" << std::endl;
+ test_char<wchar_t>();
+ #ifdef BOOST_HAS_CHAR16_T
+ std::cout << "Testing char16_t" << std::endl;
+ test_char<char16_t>();
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ std::cout << "Testing char32_t" << std::endl;
+ test_char<char32_t>();
+ #endif
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+
+}
+
+#endif // no std
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+
+

Added: trunk/libs/locale/test/test_std_formatting.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_std_formatting.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,372 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+
+#ifdef BOOST_LOCALE_NO_STD_BACKEND
+#include <iostream>
+int main()
+{
+ std::cout << "STD Backend is not build... Skipping" << std::endl;
+}
+#else
+
+
+#include <boost/locale/formatting.hpp>
+#include <boost/locale/localization_backend.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/encoding.hpp>
+#include <iomanip>
+#include "test_locale.hpp"
+#include "test_locale_tools.hpp"
+#include <iostream>
+
+//#define DEBUG_FMT
+
+#include <boost/config.hpp>
+#ifdef BOOST_MSVC
+# pragma warning(disable : 4996)
+#endif
+
+
+template<typename C1,typename C2>
+bool equal(std::basic_string<C1> const &s1,std::basic_string<C2> const &s2)
+{
+ return boost::locale::conv::from_utf(s1,"UTF-8") == boost::locale::conv::from_utf(s2,"UTF-8");
+}
+
+template<>
+bool equal(std::string const &s1,std::string const &s2)
+{
+ return s1==s2;
+}
+
+template<typename CharType>
+std::basic_string<CharType> conv_to_char(char const *p)
+{
+ std::basic_string<CharType> r;
+ while(*p)
+ r+=CharType(*p++);
+ return r;
+}
+
+
+template<typename CharType,typename RefCharType>
+void test_by_char(std::locale const &l,std::locale const &lreal)
+{
+ typedef std::basic_stringstream<CharType> ss_type;
+ typedef std::basic_stringstream<RefCharType> ss_ref_type;
+ typedef std::basic_string<RefCharType> string_type;
+ typedef std::basic_string<RefCharType> string_ref_type;
+
+ using namespace boost::locale;
+
+ {
+ std::cout << "- Testing as::posix" << std::endl;
+ ss_type ss;
+ ss.imbue(l);
+
+ ss << 1045.45;
+ TEST(ss);
+ double n;
+ ss >> n;
+ TEST(ss);
+ TEST(n == 1045.45);
+ TEST(ss.str()==to_correct_string<CharType>("1045.45",l));
+ #ifdef DEBUG_FMT
+ std::cout << "[" << boost::locale::conv::from_utf(ss.str(),"UTF-8") << "]=\n" ;
+ #endif
+ }
+
+ {
+ std::cout << "- Testing as::number" << std::endl;
+ ss_type ss;
+ ss.imbue(l);
+
+ ss << as::number;
+ ss << 1045.45;
+ TEST(ss);
+ double n;
+ ss >> n;
+ TEST(ss);
+ TEST(n == 1045.45);
+
+ ss_ref_type ss_ref;
+ ss_ref.imbue(lreal);
+
+ ss_ref << 1045.45;
+
+ TEST(equal(ss.str(),ss_ref.str()));
+ #ifdef DEBUG_FMT
+ std::cout << "[" << boost::locale::conv::from_utf(ss.str(),"UTF-8") << "]=\n" ;
+ std::cout << "[" << boost::locale::conv::from_utf(ss_ref.str(),"UTF-8") << "]\n" ;
+ #endif
+ }
+
+ {
+ std::cout << "- Testing as::currency national " << std::endl;
+
+ bool bad_parsing = false;
+ ss_ref_type ss_ref;
+ ss_ref.imbue(lreal);
+ ss_ref << std::showbase;
+ std::use_facet<std::money_put<RefCharType> >(lreal).put(ss_ref,false,ss_ref,RefCharType(' '),104334);
+ { // workaround MSVC library issues
+ std::ios_base::iostate err=std::ios_base::iostate();
+ typename std::money_get<RefCharType>::iter_type end;
+ long double tmp;
+ std::use_facet<std::money_get<RefCharType> >(lreal).get(ss_ref,end,false,ss_ref,err,tmp);
+ if(err & std::ios_base::failbit) {
+ std::cout << "-- Looks like standard library does not support parsing well" << std::endl;
+ bad_parsing=true;
+ }
+ }
+
+ ss_type ss;
+ ss.imbue(l);
+
+ ss << as::currency;
+ ss << 1043.34;
+ if(!bad_parsing) {
+ TEST(ss);
+ double v1;
+ ss >> v1;
+ }
+
+
+ TEST(equal(ss.str(),ss_ref.str()));
+ #ifdef DEBUG_FMT
+ std::cout << "[" << boost::locale::conv::from_utf(ss.str(),"UTF-8") << "]=\n" ;
+ std::cout << "[" << boost::locale::conv::from_utf(ss_ref.str(),"UTF-8") << "]\n" ;
+ #endif
+
+ }
+
+ {
+ std::cout << "- Testing as::currency iso" << std::endl;
+ ss_type ss;
+ ss.imbue(l);
+
+ ss << as::currency << as::currency_iso;
+ ss << 1043.34;
+ TEST(ss);
+ double v1;
+ ss >> v1;
+ TEST(ss);
+ TEST(v1==1043.34);
+
+ ss_ref_type ss_ref;
+ ss_ref.imbue(lreal);
+ ss_ref << std::showbase;
+ std::use_facet<std::money_put<RefCharType> >(lreal).put(ss_ref,true,ss_ref,RefCharType(' '),104334);
+
+ TEST(equal(ss.str(),ss_ref.str()));
+ #ifdef DEBUG_FMT
+ std::cout << "[" << boost::locale::conv::from_utf(ss.str(),"UTF-8") << "]=\n" ;
+ std::cout << "[" << boost::locale::conv::from_utf(ss_ref.str(),"UTF-8") << "]\n" ;
+ #endif
+ }
+
+
+ {
+ std::cout << "- Testing as::date/time" << std::endl;
+ ss_type ss;
+ ss.imbue(l);
+
+ time_t a_date = 3600*24*(31+4); // Feb 5th
+ time_t a_time = 3600*15+60*33; // 15:33:05
+ time_t a_timesec = 13;
+ time_t a_datetime = a_date + a_time + a_timesec;
+
+ ss << as::time_zone("GMT");
+
+ ss << as::date << a_datetime << CharType('\n');
+ ss << as::time << a_datetime << CharType('\n');
+ ss << as::datetime << a_datetime << CharType('\n');
+ ss << as::time_zone("GMT+01:00");
+ ss << as::ftime(conv_to_char<CharType>("%H")) << a_datetime << CharType('\n');
+ ss << as::time_zone("GMT+00:15");
+ ss << as::ftime(conv_to_char<CharType>("%M")) << a_datetime << CharType('\n');
+
+ ss_ref_type ss_ref;
+ ss_ref.imbue(lreal);
+
+ std::basic_string<RefCharType> rfmt(conv_to_char<RefCharType>("%x\n%X\n%c\n16\n48\n"));
+
+ std::tm tm=*gmtime(&a_datetime);
+
+ std::use_facet<std::time_put<RefCharType> >(lreal).put(ss_ref,ss_ref,RefCharType(' '),&tm,rfmt.c_str(),rfmt.c_str()+rfmt.size());
+
+ TEST(equal(ss.str(),ss_ref.str()));
+ #ifdef DEBUG_FMT
+ std::cout << "[" << boost::locale::conv::from_utf(ss.str(),"UTF-8") << "]=\n" ;
+ std::cout << "[" << boost::locale::conv::from_utf(ss_ref.str(),"UTF-8") << "]\n" ;
+ #endif
+ }
+
+}
+
+int main()
+{
+ try {
+ boost::locale::localization_backend_manager mgr = boost::locale::localization_backend_manager::global();
+ mgr.select("std");
+ boost::locale::localization_backend_manager::global(mgr);
+ boost::locale::generator gen;
+
+ {
+ std::cout << "en_US.UTF locale" << std::endl;
+ std::string real_name;
+ std::string name = get_std_name("en_US.UTF-8",&real_name);
+ if(name.empty()) {
+ std::cout << "en_US.UTF-8 not supported" << std::endl;
+ }
+ else {
+ std::locale l1=gen(name),l2(real_name.c_str());
+ std::cout << "UTF-8" << std::endl;
+ if(name==real_name)
+ test_by_char<char,char>(l1,l2);
+ else
+ test_by_char<char,wchar_t>(l1,l2);
+
+ std::cout << "Wide UTF-" << sizeof(wchar_t) * 8 << std::endl;
+ test_by_char<wchar_t,wchar_t>(l1,l2);
+
+ #ifdef BOOST_HAS_CHAR16_T
+ std::cout << "char16 UTF-16" << std::endl;
+ test_by_char<char16_t,char16_t>(l1,l2);
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ std::cout << "char32 UTF-32" << std::endl;
+ test_by_char<char32_t,char32_t>(l1,l2);
+ #endif
+ }
+ }
+ {
+ std::cout << "en_US.Latin-1 locale" << std::endl;
+ std::string real_name;
+ std::string name = get_std_name("en_US.ISO8859-1",&real_name);
+ if(name.empty()) {
+ std::cout << "en_US.ISO8859-8 not supported" << std::endl;
+ }
+ else {
+ std::locale l1=gen(name),l2(real_name.c_str());
+ test_by_char<char,char>(l1,l2);
+ std::cout << "Wide UTF-" << sizeof(wchar_t) * 8 << std::endl;
+ test_by_char<wchar_t,wchar_t>(l1,l2);
+
+ #ifdef BOOST_HAS_CHAR16_T
+ std::cout << "char16 UTF-16" << std::endl;
+ test_by_char<char16_t,char16_t>(l1,l2);
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ std::cout << "char32 UTF-32" << std::endl;
+ test_by_char<char32_t,char32_t>(l1,l2);
+ #endif
+ }
+ }
+ {
+ std::cout << "he_IL.UTF locale" << std::endl;
+ std::string real_name;
+ std::string name = get_std_name("he_IL.UTF-8",&real_name);
+ if(name.empty()) {
+ std::cout << "he_IL.UTF-8 not supported" << std::endl;
+ }
+ else {
+ std::locale l1=gen(name),l2(real_name.c_str());
+ std::cout << "UTF-8" << std::endl;
+ if(name==real_name)
+ test_by_char<char,char>(l1,l2);
+ else
+ test_by_char<char,wchar_t>(l1,l2);
+
+ std::cout << "Wide UTF-" << sizeof(wchar_t) * 8 << std::endl;
+ test_by_char<wchar_t,wchar_t>(l1,l2);
+
+ #ifdef BOOST_HAS_CHAR16_T
+ std::cout << "char16 UTF-16" << std::endl;
+ test_by_char<char16_t,char16_t>(l1,l2);
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ std::cout << "char32 UTF-32" << std::endl;
+ test_by_char<char32_t,char32_t>(l1,l2);
+ #endif
+ }
+ }
+ {
+ std::cout << "he_IL.ISO8859-8 locale" << std::endl;
+ std::string real_name;
+ std::string name = get_std_name("he_IL.ISO8859-8",&real_name);
+ if(name.empty()) {
+ std::cout << "he_IL.ISO8859-8 not supported" << std::endl;
+ }
+ else {
+ std::locale l1=gen(name),l2(real_name.c_str());
+ test_by_char<char,char>(l1,l2);
+ std::cout << "Wide UTF-" << sizeof(wchar_t) * 8 << std::endl;
+ test_by_char<wchar_t,wchar_t>(l1,l2);
+
+ #ifdef BOOST_HAS_CHAR16_T
+ std::cout << "char16 UTF-16" << std::endl;
+ test_by_char<char16_t,char16_t>(l1,l2);
+ #endif
+ #ifdef BOOST_HAS_CHAR32_T
+ std::cout << "char32 UTF-32" << std::endl;
+ test_by_char<char32_t,char32_t>(l1,l2);
+ #endif
+ }
+ }
+ {
+ std::cout << "Testing UTF-8 punct workaround" << std::endl;
+ std::string real_name;
+ std::string name = get_std_name("ru_RU.UTF-8",&real_name);
+ if(name.empty()) {
+ std::cout << "- No russian locale" << std::endl;
+ }
+ else if(name != real_name) {
+ std::cout << "- Not having UTF-8 locale, no need for workaround" << std::endl;
+ }
+ else {
+ std::locale l1=gen(name),l2(real_name.c_str());
+ bool fails = false;
+ try {
+ std::ostringstream ss;
+ ss.imbue(l2);
+ ss << 12345.45;
+ boost::locale::conv::from_utf<char>(ss.str(),"windows-1251",boost::locale::conv::stop);
+ fails = false;
+ }
+ catch(...) {
+ fails = true;
+ }
+
+ if(!fails) {
+ std::cout << "- No invalid UTF. No need to check"<<std::endl;
+ }
+ else {
+ std::ostringstream ss;
+ ss.imbue(l1);
+ ss << std::setprecision(10) ;
+ ss << boost::locale::as::number << 12345.45;
+ TEST(ss.str() == "12 345,45" || ss.str()=="12345,45");
+ }
+ }
+ }
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+
+}
+
+#endif // no std
+
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/test/test_winapi_collate.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_winapi_collate.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,132 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifdef BOOST_LOCALE_NO_WINAPI_BACKEND
+#include <iostream>
+int main()
+{
+ std::cout << "WinAPI Backend is not build... Skipping" << std::endl;
+}
+#else
+
+#include <boost/locale/collator.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/localization_backend.hpp>
+#include <iomanip>
+#include "test_locale.hpp"
+
+
+template<typename Char>
+void test_comp(std::locale l,std::basic_string<Char> left,std::basic_string<Char> right,int ilevel,int expected)
+{
+ typedef std::basic_string<Char> string_type;
+ boost::locale::collator_base::level_type level = static_cast<boost::locale::collator_base::level_type>(ilevel);
+ TEST(boost::locale::comparator<Char>(l,level)(left,right) == (expected < 0));
+ if(ilevel==4) {
+ std::collate<Char> const &coll=std::use_facet<std::collate<Char> >(l);
+ string_type lt=coll.transform(left.c_str(),left.c_str()+left.size());
+ string_type rt=coll.transform(right.c_str(),right.c_str()+right.size());
+ if(expected < 0)
+ TEST(lt<rt);
+ else if(expected == 0) {
+ TEST(lt==rt);
+ }
+ else
+ TEST(lt > rt);
+ long lh=coll.hash(left.c_str(),left.c_str()+left.size());
+ long rh=coll.hash(right.c_str(),right.c_str()+right.size());
+ if(expected == 0)
+ TEST(lh==rh);
+ else
+ TEST(lh!=rh);
+ }
+ boost::locale::collator<Char> const &coll=std::use_facet<boost::locale::collator<Char> >(l);
+ string_type lt=coll.transform(level,left.c_str(),left.c_str()+left.size());
+ TEST(lt==coll.transform(level,left));
+ string_type rt=coll.transform(level,right.c_str(),right.c_str()+right.size());
+ TEST(rt==coll.transform(level,right));
+ if(expected < 0)
+ TEST(lt<rt);
+ else if(expected == 0)
+ TEST(lt==rt);
+ else
+ TEST(lt > rt);
+ long lh=coll.hash(level,left.c_str(),left.c_str()+left.size());
+ TEST(lh==coll.hash(level,left));
+ long rh=coll.hash(level,right.c_str(),right.c_str()+right.size());
+ TEST(rh==coll.hash(level,right));
+ if(expected == 0)
+ TEST(lh==rh);
+ else
+ TEST(lh!=rh);
+
+}
+
+#define TEST_COMP(c,_l,_r) test_comp<c>(l,_l,_r,level,expected)
+
+
+void compare(std::string left,std::string right,int level,int expected)
+{
+ boost::locale::generator gen;
+ std::locale l=gen("en_US.UTF-8");
+ if(level == 4)
+ TEST(l(left,right) == (expected < 0));
+ TEST_COMP(char,left,right);
+ TEST_COMP(wchar_t,to<wchar_t>(left),to<wchar_t>(right));
+}
+
+
+void test_collate()
+{
+ int
+ primary = 0,
+ secondary = 1,
+ tertiary = 2,
+ quaternary = 3,
+ identical = 4;
+ int le = -1,gt = 1,eq = 0;
+
+
+ compare("a","A",primary,eq);
+ compare("a","A",secondary,eq);
+ compare("A","a",tertiary,gt);
+ compare("a","A",tertiary,le);
+ compare("a","A",quaternary,le);
+ compare("A","a",quaternary,gt);
+ compare("a","A",identical,le);
+ compare("A","a",identical,gt);
+ compare("a","ä",primary,eq); // a , ä
+ compare("a","ä",secondary,le); // a , ä
+ compare("ä","a",secondary,gt); // a , ä
+ compare("a","ä",quaternary,le); // a , ä
+ compare("ä","a",quaternary,gt); // a , ä
+ compare("a","ä",identical,le); // a , ä
+ compare("ä","a",identical,gt); // a , ä
+}
+
+
+
+
+int main()
+{
+ try {
+ boost::locale::localization_backend_manager mgr = boost::locale::localization_backend_manager::global();
+ mgr.select("winapi");
+ boost::locale::localization_backend_manager::global(mgr);
+
+ test_collate();
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+
+}
+#endif // NO WINAPI
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

Added: trunk/libs/locale/test/test_winapi_convert.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_winapi_convert.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,107 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifdef BOOST_LOCALE_NO_WINAPI_BACKEND
+#include <iostream>
+int main()
+{
+ std::cout << "WinAPI Backend is not build... Skipping" << std::endl;
+}
+#else
+
+#include <boost/locale/conversion.hpp>
+#include <boost/locale/localization_backend.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/info.hpp>
+#include <iomanip>
+#include "test_locale.hpp"
+#include "test_locale_tools.hpp"
+#include <iostream>
+
+template<typename CharType>
+void test_one(std::locale const &l,std::string src,std::string tgtl,std::string tgtu)
+{
+ TEST(boost::locale::to_upper(to_correct_string<CharType>(src,l),l) == to_correct_string<CharType>(tgtu,l));
+ TEST(boost::locale::to_lower(to_correct_string<CharType>(src,l),l) == to_correct_string<CharType>(tgtl,l));
+ TEST(boost::locale::fold_case(to_correct_string<CharType>(src,l),l) == to_correct_string<CharType>(tgtl,l));
+}
+
+template<typename CharType>
+void test_char()
+{
+ boost::locale::generator gen;
+
+ std::cout << "- Testing at least C" << std::endl;
+
+
+ std::locale l = gen("en_US.UTF-8");
+
+ test_one<CharType>(l,"Hello World i","hello world i","HELLO WORLD I");
+
+ std::string name = "en_US.UTF-8";
+
+ std::cout << "- Testing " << name << std::endl;
+ l=gen(name);
+ test_one<CharType>(l,"Façade","façade","FAÇADE");
+
+
+ name = "tr_TR.UTF-8";
+ std::cout << "Testing " << name << std::endl;
+ test_one<CharType>(gen(name),"i","i","Ä°");
+
+}
+
+template<typename Char>
+void test_normc(std::basic_string<Char> orig,std::basic_string<Char> normal,boost::locale::norm_type type)
+{
+ std::locale l = boost::locale::generator().generate("en_US.UTF-8");
+ TEST(boost::locale::normalize(orig,type,l)==normal);
+ TEST(boost::locale::normalize(orig.c_str(),type,l)==normal);
+ TEST(boost::locale::normalize(orig.c_str(),orig.c_str()+orig.size(),type,l)==normal);
+}
+
+
+void test_norm(std::string orig,std::string normal,boost::locale::norm_type type)
+{
+ test_normc<char>(orig,normal,type);
+ test_normc<wchar_t>(to<wchar_t>(orig),to<wchar_t>(normal),type);
+}
+
+int main()
+{
+ try {
+ boost::locale::localization_backend_manager mgr = boost::locale::localization_backend_manager::global();
+ mgr.select("winapi");
+ boost::locale::localization_backend_manager::global(mgr);
+
+ std::cout << "Testing char" << std::endl;
+ test_char<char>();
+ std::cout << "Testing wchar_t" << std::endl;
+ test_char<wchar_t>();
+
+ std::cout << "Testing Unicode normalization" << std::endl;
+ test_norm("\xEF\xAC\x81","\xEF\xAC\x81",boost::locale::norm_nfd); /// ligature fi
+ test_norm("\xEF\xAC\x81","\xEF\xAC\x81",boost::locale::norm_nfc);
+ #if defined(_WIN32_NT) && _WIN32_NT >= 0x600
+ test_norm("\xEF\xAC\x81","fi",boost::locale::norm_nfkd);
+ test_norm("\xEF\xAC\x81","fi",boost::locale::norm_nfkc);
+ #endif
+ test_norm("ä","ä",boost::locale::norm_nfd); // ä to a and accent
+ test_norm("ä","ä",boost::locale::norm_nfc);
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+
+}
+
+#endif // no winapi
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+
+

Added: trunk/libs/locale/test/test_winapi_formatting.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/locale/test/test_winapi_formatting.cpp 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,261 @@
+//
+// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifdef BOOST_LOCALE_NO_WINAPI_BACKEND
+#include <iostream>
+int main()
+{
+ std::cout << "WinAPI Backend is not build... Skipping" << std::endl;
+}
+#else
+
+#include <boost/locale/formatting.hpp>
+#include <boost/locale/localization_backend.hpp>
+#include <boost/locale/generator.hpp>
+#include <boost/locale/encoding.hpp>
+#include <boost/locale/info.hpp>
+#include <iomanip>
+#include "test_locale.hpp"
+#include "test_locale_tools.hpp"
+#include <iostream>
+
+#include <time.h>
+#include <assert.h>
+
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
+
+#include <windows.h>
+
+#define DEBUG_FMT
+
+bool equal(std::string const &s1,std::wstring const &s2)
+{
+ bool res = s1 == boost::locale::conv::from_utf(s2,"UTF-8");
+ #ifdef DEBUG_FMT
+ if(!res)
+ std::cout << "[" << s1 << "]!=["<<boost::locale::conv::from_utf(s2,"UTF-8")<<"]"<<std::endl;
+ #endif
+ return res;
+}
+
+bool equal(std::wstring const &s1,std::wstring const &s2)
+{
+ bool res = s1 == s2;
+ #ifdef DEBUG_FMT
+ if(!res)
+ std::cout << "[" << boost::locale::conv::from_utf(s1,"UTF-8") << "]!=["<<boost::locale::conv::from_utf(s2,"UTF-8")<<"]"<<std::endl;
+ #endif
+ return res;
+}
+
+
+bool equal(std::string const &s1,std::string const &s2)
+{
+ bool res = s1 == s2;
+ #ifdef DEBUG_FMT
+ if(!res)
+ std::cout << "[" << s1 << "]!=["<<s2<<"]"<<std::endl;
+ #endif
+ return res;
+}
+
+bool equal(std::wstring const &s1,std::string const &s2)
+{
+ bool res = s1 == boost::locale::conv::to_utf<wchar_t>(s2,"UTF-8");
+ #ifdef DEBUG_FMT
+ if(!res)
+ std::cout << "[" << boost::locale::conv::from_utf(s1,"UTF-8") << "]!=["<<s2<<"]"<<std::endl;
+ #endif
+ return res;
+
+}
+
+template<typename CharType>
+std::basic_string<CharType> conv_to_char(char const *p)
+{
+ std::basic_string<CharType> r;
+ while(*p)
+ r+=CharType(*p++);
+ return r;
+}
+
+
+template<typename CharType>
+void test_by_char(std::locale const &l,std::string name,int lcid)
+{
+ typedef std::basic_stringstream<CharType> ss_type;
+ typedef std::basic_string<CharType> string_type;
+
+ using namespace boost::locale;
+
+ {
+ std::cout << "--- Testing as::posix" << std::endl;
+ ss_type ss;
+ ss.imbue(l);
+
+ ss << 1045.45;
+ TEST(ss);
+ double n;
+ ss >> n;
+ TEST(ss);
+ TEST(n == 1045.45);
+ TEST(equal(ss.str(),"1045.45"));
+ }
+
+ {
+ std::cout << "--- Testing as::number" << std::endl;
+ ss_type ss;
+ ss.imbue(l);
+
+ ss << as::number;
+ ss << 1045.45;
+ TEST(ss);
+ double n;
+ ss >> n;
+ TEST(ss);
+ TEST(n == 1045.45);
+
+ if(name == "ru_RU.UTF-8") {
+ if(sizeof(CharType)==1)
+ TEST(equal(ss.str(),"1 045,45")); // SP
+ else
+ TEST(equal(ss.str(),"1\xC2\xA0" "045,45")); // NBSP
+ }
+ else
+ TEST(equal(ss.str(),"1,045.45"));
+ }
+
+ {
+ std::cout << "--- Testing as::currency " << std::endl;
+
+ ss_type ss;
+ ss.imbue(l);
+
+ ss << as::currency;
+ ss << 1043.34;
+ TEST(ss);
+
+ wchar_t buf[256];
+ GetCurrencyFormatW(lcid,0,L"1043.34",0,buf,256);
+
+ TEST(equal(ss.str(),buf));
+ }
+
+ {
+ std::cout << "--- Testing as::date/time" << std::endl;
+ ss_type ss;
+ ss.imbue(l);
+
+ time_t a_date = 3600*24*(31+4); // Feb 5th
+ time_t a_time = 3600*15+60*33; // 15:33:13
+ time_t a_timesec = 13;
+ time_t a_datetime = a_date + a_time + a_timesec;
+
+ ss << as::time_zone("GMT");
+
+ ss << as::date << a_datetime << CharType('\n');
+ ss << as::time << a_datetime << CharType('\n');
+ ss << as::datetime << a_datetime << CharType('\n');
+ ss << as::time_zone("GMT+01:00");
+ ss << as::ftime(conv_to_char<CharType>("%H")) << a_datetime << CharType('\n');
+ ss << as::time_zone("GMT+00:15");
+ ss << as::ftime(conv_to_char<CharType>("%M")) << a_datetime << CharType('\n');
+
+ wchar_t time_buf[256];
+ wchar_t date_buf[256];
+
+ SYSTEMTIME st= { 1970, 2,5, 5,15,33,13,0 };
+ GetTimeFormatW(lcid,0,&st,0,time_buf,256);
+ GetDateFormatW(lcid,0,&st,0,date_buf,256);
+ TEST(equal(ss.str(),std::wstring(date_buf)+L"\n" + time_buf +L"\n" + date_buf + L" " + time_buf + L"\n16\n48\n"));
+
+ }
+
+}
+
+
+void test_date_time(std::locale l)
+{
+ std::ostringstream ss;
+ ss.imbue(l);
+
+ ss << boost::locale::as::time_zone("GMT");
+
+ time_t a_date = 3600*24*(31+4); // Feb 5th
+ time_t a_time = 3600*15+60*33; // 15:33:13
+ time_t a_timesec = 13;
+ time_t a_datetime = a_date + a_time + a_timesec;
+
+ std::string pat[] = {
+ "a", "Thu",
+ "A", "Thursday",
+ "b", "Feb",
+ "B", "February",
+ "d", "05",
+ "D", "02/05/70",
+ "e", "5",
+ "h", "Feb",
+ "H", "15",
+ "I", "03",
+ "m", "02",
+ "M", "33",
+ "n", "\n",
+ "p", "PM",
+ "r", "03:33:13 PM",
+ "R", "15:33",
+ "S", "13",
+ "t", "\t",
+ "y", "70",
+ "Y", "1970",
+ "%", "%"
+ };
+
+ for(unsigned i=0;i<sizeof(pat)/sizeof(pat[0]);i+=2) {
+ ss.str("");
+ ss << boost::locale::as::ftime("%" + pat[i]) << a_datetime;
+ TEST(equal(ss.str(),pat[i+1]));
+ }
+}
+
+int main()
+{
+ try {
+ boost::locale::localization_backend_manager mgr = boost::locale::localization_backend_manager::global();
+ mgr.select("winapi");
+ boost::locale::localization_backend_manager::global(mgr);
+ boost::locale::generator gen;
+ std::string name;
+ std::string names[] = { "en_US.UTF-8", "he_IL.UTF-8", "ru_RU.UTF-8" };
+ int lcids[] = { 0x0409, 0x040D ,0x0419 };
+
+ for(unsigned i=0;i<sizeof(names)/sizeof(names[9]);i++) {
+ name = names[i];
+ std::cout << "- " << name << " locale" << std::endl;
+ std::locale l1=gen(name);
+ std::cout << "-- UTF-8" << std::endl;
+ test_by_char<char>(l1,name,lcids[i]);
+ std::cout << "-- UTF-16" << std::endl;
+ test_by_char<wchar_t>(l1,name,lcids[i]);
+ }
+ std::cout << "- Testing strftime" <<std::endl;
+ test_date_time(gen("en_US.UTF-8"));
+ }
+ catch(std::exception const &e) {
+ std::cerr << "Failed " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ FINALIZE();
+
+}
+
+#endif // no winapi
+
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
+

Added: trunk/libs/locale/tools/cross-compile-gettext.sh
==============================================================================
--- (empty file)
+++ trunk/libs/locale/tools/cross-compile-gettext.sh 2011-07-12 09:57:36 EDT (Tue, 12 Jul 2011)
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+# Small and Fast Cross Compile Script
+
+rm -r build
+cd build
+
+BUILD_TYPE=i586-mingw32msvc
+GETTEXT_VER=0.18.1.1
+ICONV_VER=1.13.1
+
+wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-$ICONV_VER.tar.gz || exit 1
+wget http://ftp.gnu.org/pub/gnu/gettext/gettext-$GETTEXT_VER.tar.gz || exit 1
+
+tar -xzf libiconv-$ICONV_VER.tar.gz || exit 1
+tar -xzf gettext-$GETTEXT_VER.tar.gz || exit 1
+
+
+mkdir win32
+PACKAGE_DIR=gettext-tools-static-$GETTEXT_VER
+mkdir $PACKAGE_DIR
+
+PREFIX=`pwd`/win32
+
+cd libiconv-$ICONV_VER
+
+./configure --disable-shared --host=$BUILD_TYPE --prefix=$PREFIX || exit 1
+make -j 4 && make install || exit 1
+cp ./COPYING ../$PACKAGE_DIR/COPYING-libiconv.txt
+
+cd ../gettext-$GETTEXT_VER
+
+./configure --disable-shared --host=$BUILD_TYPE --prefix=$PREFIX --with-libiconv-prefix=$PREFIX || exit 1
+cd gettext-tools
+make -j 4 && make install || exit 1
+cd ..
+
+cp ./gettext-tools/gnulib-lib/libxml/COPYING ../$PACKAGE_DIR/COPYING-libxml.txt
+cp ./COPYING ../$PACKAGE_DIR/COPYING-gettext.txt
+
+cd ..
+
+echo http://ftp.gnu.org/pub/gnu/libiconv/libiconv-$ICONV_VER.tar.gz > $PACKAGE_DIR/sources.txt
+echo http://ftp.gnu.org/pub/gnu/gettext/gettext-$GETTEXT_VER.tar.gz >> $PACKAGE_DIR/sources.txt
+
+cp win32/bin/*.exe $PACKAGE_DIR
+
+unix2dos $PACKAGE_DIR/*.txt
+
+zip $PACKAGE_DIR.zip $PACKAGE_DIR/*
+
+mv $PACKAGE_DIR.zip ..


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk