| 1 | <?xml version="1.0" encoding="utf-8"?> |
|---|
| 2 | <!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" |
|---|
| 3 | "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd"> |
|---|
| 4 | |
|---|
| 5 | <!-- Copyright (c) 2002-2006 Pavol Droba. |
|---|
| 6 | Subject to the Boost Software License, Version 1.0. |
|---|
| 7 | (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0) |
|---|
| 8 | --> |
|---|
| 9 | |
|---|
| 10 | <section id="string_algo.intro" last-revision="$Date: 2006/08/16 07:10:48 $"> |
|---|
| 11 | <title>Introduction</title> |
|---|
| 12 | |
|---|
| 13 | <para> |
|---|
| 14 | The String Algorithm Library provides a generic implementation of |
|---|
| 15 | string-related algorithms which are missing in STL. It is an extension |
|---|
| 16 | to the algorithms library of STL and it includes trimming, case conversion, |
|---|
| 17 | predicates and find/replace functions. All of them come in different variants |
|---|
| 18 | so it is easier to choose the best fit for a particular need. |
|---|
| 19 | </para> |
|---|
| 20 | <para> |
|---|
| 21 | The implementation is not restricted to work with a particular container |
|---|
| 22 | (like <code>std::basic_string</code>), rather it is as generic as |
|---|
| 23 | possible. This generalization is not compromising the performance since |
|---|
| 24 | algorithms are using container specific features when it means a performance |
|---|
| 25 | gain. |
|---|
| 26 | </para> |
|---|
| 27 | <para> |
|---|
| 28 | <emphasis role="bold"> |
|---|
| 29 | Important note: In this documentation we use term <emphasis>string</emphasis> to |
|---|
| 30 | designate a sequence of <emphasis>characters</emphasis> stored in an arbitrary container. |
|---|
| 31 | A <emphasis>string</emphasis> is not restricted to <code>std::basic_string</code> and |
|---|
| 32 | <emphasis>character</emphasis> does not have to be <code>char</code> or <code>wchar_t</code>, |
|---|
| 33 | although these are most common candidates. |
|---|
| 34 | </emphasis> |
|---|
| 35 | Consult the <link linkend="string_algo.design">design chapter</link> to see precise specification of |
|---|
| 36 | supported string types. |
|---|
| 37 | </para> |
|---|
| 38 | <para> |
|---|
| 39 | The library interface functions and classes are defined in namespace <code>boost::algorithm</code>, and |
|---|
| 40 | they are lifted into namespace <code>boost</code> via using declaration. |
|---|
| 41 | </para> |
|---|
| 42 | <para> |
|---|
| 43 | The documentation is divided into several sections. For a quick start read the |
|---|
| 44 | <link linkend="string_algo.usage">Usage</link> section followed by |
|---|
| 45 | <link linkend="string_algo.quickref">Quick Reference</link>. |
|---|
| 46 | <link linkend="string_algo.design">The Design Topics</link>, |
|---|
| 47 | <link linkend="string_algo.concept">Concepts</link> and <link linkend="string_algo.rationale">Rationale</link> |
|---|
| 48 | provide some explanation about the library design and structure an explain how it should be used. |
|---|
| 49 | See the <link linkend="string_algo.reference">Reference</link> for the complete list of provided utilities |
|---|
| 50 | and algorithms. Functions and classes in the reference are organized by the headers in which they are defined. |
|---|
| 51 | The reference contains links to the detailed description for every entity in the library. |
|---|
| 52 | </para> |
|---|
| 53 | </section> |
|---|