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