mirror of
https://github.com/boostorg/static_string.git
synced 2025-07-30 04:27:33 +02:00
Add doc exposition and tidy
This commit is contained in:
51
README.md
51
README.md
@ -2,7 +2,52 @@
|
|||||||
|
|
||||||
Branch | Travis | Appveyor | Azure Pipelines | codecov.io | Docs | Matrix |
|
Branch | Travis | Appveyor | Azure Pipelines | codecov.io | Docs | Matrix |
|
||||||
:-------------: | ------ | -------- | --------------- | ---------- | ---- | ------ |
|
:-------------: | ------ | -------- | --------------- | ---------- | ---- | ------ |
|
||||||
[`master`](https://github.com/boostorg/fixed_string/tree/master) | [](https://travis-ci.org/boostorg/fixed_string) | [](https://ci.appveyor.com/project/maintainer/fixed_string-xyzzy/branch/master) | [](https://dev.azure.com/maintainer/fixed_string/_build/latest?definitionId=6&branchName=master) | [](https://codecov.io/gh/boostorg/fixed_string/branch/master) | [](http://www.boost.org/doc/libs/master/doc/html/fixed_string.html) | [](http://www.boost.org/development/tests/master/developer/fixed_string.html)
|
[`master`](https://github.com/vinniefalco/fixed_string/tree/master) | [](https://travis-ci.org/vinniefalco/fixed_string) | [](https://ci.appveyor.com/project/vinniefalco/fixed-string/branch/master) | [](https://dev.azure.com/vinniefalco/fixed-string/_build/latest?definitionId=6&branchName=master) | [](https://codecov.io/gh/vinniefalco/fixed_string/branch/master) | [](http://www.boost.org/doc/libs/master/doc/html/fixed_string.html) | [](http://www.boost.org/development/tests/master/developer/fixed_string.html)
|
||||||
[`develop`](https://github.com/boostorg/fixed_string/tree/develop) | [](https://travis-ci.org/boostorg/fixed_string) | [](https://ci.appveyor.com/project/maintainer/fixed_string-xyzzy/branch/develop) | [](https://dev.azure.com/maintainer/fixed_string/_build/latest?definitionId=6&branchName=master) | [](https://codecov.io/gh/boostorg/fixed_string/branch/develop) | [](http://www.boost.org/doc/libs/develop/doc/html/fixed_string.html) | [](http://www.boost.org/development/tests/develop/developer/fixed_string.html)
|
[`develop`](https://github.com/vinniefalco/fixed_string/tree/develop) | [](https://travis-ci.org/vinniefalco/fixed_string) | [](https://ci.appveyor.com/project/vinniefalco/fixed-string/branch/develop) | [](https://dev.azure.com/vinniefalco/fixed-string/_build/latest?definitionId=6&branchName=master) | [](https://codecov.io/gh/vinniefalco/fixed_string/branch/develop) | [](http://www.boost.org/doc/libs/develop/doc/html/fixed_string.html) | [](http://www.boost.org/development/tests/develop/developer/fixed_string.html)
|
||||||
|
|
||||||
This is currently **NOT** an official Boost library.
|
## This is currently **NOT** an official Boost library.
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
This library provides a dynamically resizable string of characters with
|
||||||
|
compile-time fixed capacity and contiguous embedded storage in which the
|
||||||
|
characters are placed within the string object itself. Its API closely
|
||||||
|
resembles that of `std::string`
|
||||||
|
|
||||||
|
## Motivation
|
||||||
|
|
||||||
|
A fixed capacity string is useful when:
|
||||||
|
|
||||||
|
* Memory allocation is not possible, e.g., embedded environments without a free
|
||||||
|
store, where only a stack and the static memory segment are available.
|
||||||
|
* Memory allocation imposes an unacceptable performance penalty.
|
||||||
|
e.g., with respect to latency.
|
||||||
|
* Allocation of objects with complex lifetimes in the static-memory
|
||||||
|
segment is required.
|
||||||
|
* A dynamically-resizable string is required within `constexpr` functions.
|
||||||
|
* The storage location of the static_vector elements is required to be
|
||||||
|
within the string object itself (e.g. to support memcopy for serialization
|
||||||
|
purposes).
|
||||||
|
|
||||||
|
## Design
|
||||||
|
|
||||||
|
The over-arching design goal is to resemble the interface and behavior of
|
||||||
|
`std::string` as much as possible. When any operation would exceed the
|
||||||
|
maximum allowed size of the string, `std::length_error` is thrown. All
|
||||||
|
algorithms which throw exceptions provide the strong exception safety
|
||||||
|
guarantee.
|
||||||
|
|
||||||
|
## Iterators
|
||||||
|
|
||||||
|
The iterator invalidation rules are different than those for `std::string`,
|
||||||
|
since:
|
||||||
|
|
||||||
|
* Moving a string invalidates all iterators
|
||||||
|
* Swapping two strings invalidates all iterators
|
||||||
|
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Distributed under the Boost Software License, Version 1.0.
|
||||||
|
(See accompanying file [LICENSE_1_0.txt](LICENSE_1_0.txt) or copy at
|
||||||
|
https://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
@ -175,12 +175,12 @@ boostbook fixed_string
|
|||||||
:
|
:
|
||||||
<xsl:param>boost.root=../../../..
|
<xsl:param>boost.root=../../../..
|
||||||
<xsl:param>chapter.autolabel=1
|
<xsl:param>chapter.autolabel=1
|
||||||
<xsl:param>chunk.section.depth=8 # Depth to which sections should be chunked
|
<xsl:param>chunk.section.depth=0 # Depth to which sections should be chunked
|
||||||
<xsl:param>chunk.first.sections=1 # Chunk the first top-level section?
|
<xsl:param>chunk.first.sections=1 # Chunk the first top-level section?
|
||||||
<xsl:param>toc.section.depth=8 # How deep should recursive sections appear in the TOC?
|
<xsl:param>toc.section.depth=8 # How deep should recursive sections appear in the TOC?
|
||||||
<xsl:param>toc.max.depth=8 # How many levels should be created for each TOC?
|
<xsl:param>toc.max.depth=8 # How many levels should be created for each TOC?
|
||||||
<xsl:param>generate.section.toc.level=8 # Control depth of TOC generation in sections
|
<xsl:param>generate.section.toc.level=8 # Control depth of TOC generation in sections
|
||||||
<xsl:param>generate.toc="chapter toc,title section nop reference nop"
|
<xsl:param>generate.toc=""
|
||||||
<include>../../../tools/boostbook/dtd
|
<include>../../../tools/boostbook/dtd
|
||||||
:
|
:
|
||||||
<dependency>images
|
<dependency>images
|
||||||
|
@ -30,16 +30,66 @@
|
|||||||
[template include_file[path][^<'''<ulink url="../../../../'''[path]'''">'''[path]'''</ulink>'''>]]
|
[template include_file[path][^<'''<ulink url="../../../../'''[path]'''">'''[path]'''</ulink>'''>]]
|
||||||
[template issue[n] '''<ulink url="https://github.com/boostorg/beast/issues/'''[n]'''">#'''[n]'''</ulink>''']
|
[template issue[n] '''<ulink url="https://github.com/boostorg/beast/issues/'''[n]'''">#'''[n]'''</ulink>''']
|
||||||
|
|
||||||
[section:quickref Reference]
|
[/-----------------------------------------------------------------------------]
|
||||||
|
|
||||||
|
[section Introduction]
|
||||||
|
|
||||||
|
This library provides a dynamically resizable string of characters with
|
||||||
|
compile-time fixed capacity and contiguous embedded storage in which the
|
||||||
|
characters are placed within the string object itself. Its API closely
|
||||||
|
resembles that of `std::string`
|
||||||
|
|
||||||
[xinclude quickref.xml]
|
|
||||||
[endsect]
|
[endsect]
|
||||||
[block'''<reference id="json_hidden"><title>This Page Intentionally Left Blank 1/2</title>''']
|
|
||||||
[section:ref This Page Intentionally Left Blank 2/2]
|
[/-----------------------------------------------------------------------------]
|
||||||
|
|
||||||
|
[section Motivation]
|
||||||
|
|
||||||
|
A fixed capacity string is useful when:
|
||||||
|
|
||||||
|
* Memory allocation is not possible, e.g., embedded environments without a free
|
||||||
|
store, where only a stack and the static memory segment are available.
|
||||||
|
* Memory allocation imposes an unacceptable performance penalty.
|
||||||
|
e.g., with respect to latency.
|
||||||
|
* Allocation of objects with complex lifetimes in the static-memory
|
||||||
|
segment is required.
|
||||||
|
* A dynamically-resizable string is required within `constexpr` functions.
|
||||||
|
* The storage location of the static_vector elements is required to be
|
||||||
|
within the string object itself (e.g. to support memcopy for serialization
|
||||||
|
purposes).
|
||||||
|
|
||||||
|
[endsect]
|
||||||
|
|
||||||
|
[/-----------------------------------------------------------------------------]
|
||||||
|
|
||||||
|
[section Design]
|
||||||
|
|
||||||
|
The over-arching design goal is to resemble the interface and behavior of
|
||||||
|
`std::string` as much as possible. When any operation would exceed the
|
||||||
|
maximum allowed size of the string, `std::length_error` is thrown. All
|
||||||
|
algorithms which throw exceptions provide the strong exception safety
|
||||||
|
guarantee.
|
||||||
|
|
||||||
|
[endsect]
|
||||||
|
|
||||||
|
[/-----------------------------------------------------------------------------]
|
||||||
|
|
||||||
|
[section Iterators]
|
||||||
|
|
||||||
|
The iterator invalidation rules are different than those for `std::string`,
|
||||||
|
since:
|
||||||
|
|
||||||
|
* Moving a string invalidates all iterators
|
||||||
|
* Swapping two strings invalidates all iterators
|
||||||
|
|
||||||
|
[endsect]
|
||||||
|
|
||||||
|
[/-----------------------------------------------------------------------------]
|
||||||
|
|
||||||
|
[section:ref Reference]
|
||||||
[include reference.qbk]
|
[include reference.qbk]
|
||||||
[endsect]
|
[endsect]
|
||||||
[block'''</reference>''']
|
|
||||||
|
|
||||||
This is the main file
|
[/-----------------------------------------------------------------------------]
|
||||||
|
|
||||||
[xinclude index.xml]
|
[xinclude index.xml]
|
||||||
|
Reference in New Issue
Block a user