<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">

<!-- Copyright (c) 2002-2006 Pavol Droba.
     Subject to the Boost Software License, Version 1.0. 
     (See accompanying file LICENSE_1_0.txt or  http://www.boost.org/LICENSE_1_0.txt)
-->

<section id="string_algo.rationale" last-revision="$Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $">
    <title>Rationale</title>

    <using-namespace name="boost"/>
    <using-namespace name="boost::algorithm"/>
    
   <section it="string_algo.locale">
        <title>Locales</title>

        <para>
            Locales have a very close relation to string processing. They contain information about
            the character sets and are used, for example, to change the case of characters and 
            to classify the characters. 
        </para>
        <para>
            C++ allows to work with multiple different instances of locales at once. If an algorithm
            manipulates some data in a way that requires the usage of locales, there must be a way
            to specify them. However, one instance of locales is sufficient for most of the applications,
            and for a user it could be very tedious to specify which locales to use at every place 
            where it is needed. 
        </para> 
        <para>
            Fortunately, the C++ standard allows to specify the <emphasis>global</emphasis> locales (using static member
            function <code>std:locale::global()</code>). When instantiating an
            <code>std::locale</code> class without explicit information, the instance will 
            be initialized with the <emphasis>global</emphasis> locale. This implies, that if an algorithm needs a locale,
            it should have an <code>std::locale</code> parameter defaulting to  <code>std::locale()</code>.
            If a user needs to specify locales explicitly, she can do so. Otherwise the <emphasis>global</emphasis>
            locales are used.
        </para>
    </section>
    <section id="string_algo.regex">
        <title>Regular Expressions</title>

        <para>
            Regular expressions are an essential part of text processing. For this reason, the library 
            also provides regex variants of some algorithms. The library does not attempt to replace
            <libraryname>Boost.Regex</libraryname>; it merely wraps its functionality in a new interface.
            As a part of this library, regex algorithms integrate smoothly with other components, which 
            brings additional value.
        </para>
    </section>
</section>
