53 lines
2.6 KiB
XML
53 lines
2.6 KiB
XML
<?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$">
|
|
<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>
|