intro.xml 2.9 KB

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