<?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.intro" last-revision="$Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $">
    <title>Introduction</title>

    <para>
        The String Algorithm Library provides a generic implementation of
        string-related algorithms which are missing in STL. It is an extension
        to the algorithms library of STL and it includes trimming, case conversion, 
        predicates and find/replace functions. All of them come in different variants 
        so it is easier to choose the best fit for a particular need.
    </para>
    <para>
        The implementation is not restricted to work with a particular container 
        (like <code>std::basic_string</code>), rather it is as generic as
        possible. This generalization is not compromising the performance since
        algorithms are using container specific features when it means a performance
        gain.
    </para>
    <para>
        <emphasis role="bold">
            Important note: In this documentation we use term <emphasis>string</emphasis> to 
            designate a sequence of <emphasis>characters</emphasis> stored in an arbitrary container.
            A <emphasis>string</emphasis> is not restricted to <code>std::basic_string</code> and 
            <emphasis>character</emphasis> does not have to be <code>char</code> or <code>wchar_t</code>,
            although these are most common candidates.
        </emphasis>
        Consult the <link linkend="string_algo.design">design chapter</link> to see precise specification of
        supported string types.
    </para>
    <para>      
        The library interface functions and classes are defined in namespace <code>boost::algorithm</code>, and
        they are lifted into namespace <code>boost</code> via using declaration.
    </para>
    <para>
        The documentation is divided into several sections. For a quick start read the 
        <link linkend="string_algo.usage">Usage</link> section followed by 
        <link linkend="string_algo.quickref">Quick Reference</link>. 
        <link linkend="string_algo.design">The Design Topics</link>,
        <link linkend="string_algo.concept">Concepts</link> and <link linkend="string_algo.rationale">Rationale</link>
        provide some explanation about the library design and structure an explain how it should be used.
        See the <link linkend="string_algo.reference">Reference</link> for the complete list of provided utilities
        and algorithms. Functions and classes in the reference are organized by the headers in which they are defined.
        The reference contains links to the detailed description for every entity in the library.
    </para>
</section>
