mirror of
https://github.com/boostorg/website-v2-docs.git
synced 2026-01-19 04:42:17 +00:00
Replace hardcoded version # with "latest" in UG/CG (#473)
This commit is contained in:
@@ -764,7 +764,7 @@ While there is not a specific library dedicated solely to null pointer dereferen
|
||||
+
|
||||
There are several libraries that provide functionalities for input validation, sanitization, and handling, helping to mitigate security vulnerabilities related to invalid or malicious input data:
|
||||
+
|
||||
* https://www.boost.org/doc/libs/1_83_0/doc/html/string_algo.html[Boost.String_Algo] provides a collection of algorithms for string manipulation, including functions for removing leading or trailing whitespace, case conversion, tokenization, and search.
|
||||
* https://www.boost.org/doc/libs/latest/doc/html/string_algo.html[Boost.String_Algo] provides a collection of algorithms for string manipulation, including functions for removing leading or trailing whitespace, case conversion, tokenization, and search.
|
||||
+
|
||||
* boost:tokenizer[] provides a tokenizer class for splitting input strings into tokens based on delimiter characters or regular expressions. This can be useful for parsing and validating input data that is structured or delimited, such as CSV files, configuration files, or network protocols. The tokenizer class allows you to define custom tokenization rules and handle edge cases effectively, improving the reliability and security of input data processing.
|
||||
+
|
||||
|
||||
@@ -30,7 +30,7 @@ Here are the standards for boost headers. Many of these are also reasonable guid
|
||||
|
||||
* The preferred ordering for class definitions is `public` members, `protected` members, and finally `private` members.
|
||||
|
||||
* Include the https://www.boost.org/doc/libs/1_83_0/boost/config.hpp[`boost/config.hpp`] if there is a need to deal with compiler or platform configuration issues.
|
||||
* Include the https://www.boost.org/doc/libs/latest/boost/config.hpp[`boost/config.hpp`] if there is a need to deal with compiler or platform configuration issues.
|
||||
|
||||
== Sample
|
||||
|
||||
|
||||
@@ -28,9 +28,9 @@ For example:
|
||||
|
||||
[source,asciidoc]
|
||||
----
|
||||
https://www.boost.org/doc/libs/1_81_0/libs/json/index.html
|
||||
https://www.boost.org/doc/libs/1_82_0/libs/serialization/index.html
|
||||
https://www.boost.org/doc/libs/1_83_0/libs/beast/index.html
|
||||
https://www.boost.org/doc/libs/latest/libs/json/index.html
|
||||
https://www.boost.org/doc/libs/latest/libs/serialization/index.html
|
||||
https://www.boost.org/doc/libs/latest/libs/beast/index.html
|
||||
----
|
||||
|
||||
Although the content of the `index.html` file is up to the library author, libraries use this `index.html` entry point to redirect to the main documentation page located elsewhere.
|
||||
|
||||
@@ -84,14 +84,14 @@ Provide any specific instructions or recommendations for users upgrading from a
|
||||
|
||||
The following examples show some different approaches. Note how many rely on links to issues to provide the detailed information.
|
||||
|
||||
* https://www.boost.org/doc/libs/1_83_0/libs/json/doc/html/json/release_notes.html[JSON Release Notes]
|
||||
* https://www.boost.org/doc/libs/1_83_0/libs/nowide/doc/html/changelog_page.html[NoWide Change Log]
|
||||
* https://www.boost.org/doc/libs/1_83_0/libs/type_traits/doc/html/boost_typetraits/history.html[Type Traits History]
|
||||
* https://www.boost.org/doc/libs/1_81_0/libs/variant2/doc/html/variant2.html#changelog[Variant2 Revision History]
|
||||
* https://www.boost.org/doc/libs/latest/libs/json/doc/html/json/release_notes.html[JSON Release Notes]
|
||||
* https://www.boost.org/doc/libs/latest/libs/nowide/doc/html/changelog_page.html[NoWide Change Log]
|
||||
* https://www.boost.org/doc/libs/latest/libs/type_traits/doc/html/boost_typetraits/history.html[Type Traits History]
|
||||
* https://www.boost.org/doc/libs/latest/libs/variant2/doc/html/variant2.html#changelog[Variant2 Revision History]
|
||||
|
||||
== Update Boost History
|
||||
|
||||
When you have completed the library release notes, add the required information to the `[section New Libraries]` or `[section Updated Libraries]` of the https://github.com/boostorg/website/tree/master/feed/history[Boostorg History]. Copy the formatting of the examples below, which for reference is https://www.boost.org/doc/libs/1_83_0/doc/html/quickbook.html[Quickbook format].
|
||||
When you have completed the library release notes, add the required information to the `[section New Libraries]` or `[section Updated Libraries]` of the https://github.com/boostorg/website/tree/master/feed/history[Boostorg History]. Copy the formatting of the examples below, which for reference is https://www.boost.org/doc/libs/latest/doc/html/quickbook.html[Quickbook format].
|
||||
|
||||
The examples below come from the https://github.com/boostorg/website/blob/master/feed/history/boost_1_83_0.qbk[boost_1_83_0.qbk] file:
|
||||
|
||||
|
||||
@@ -200,5 +200,5 @@ A library can be in one or more categories. The string is not case-sensitive. In
|
||||
|
||||
== See Also
|
||||
|
||||
* https://www.boost.org/doc/libs/1_82_0/libs/libraries.htm[Boost Libraries]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm[Boost Libraries]
|
||||
|
||||
|
||||
@@ -27,9 +27,9 @@ Boost uses an automatic regression test suite which generates HTML compiler stat
|
||||
|
||||
== Optional
|
||||
|
||||
* Use boost:test[] to create individual test cases and group them into test suites. Then use the library's test tools for https://www.boost.org/doc/libs/1_83_0/libs/test/doc/html/boost_test/test_output.html[Controlling outputs] to verify the expected behavior.
|
||||
* Use boost:test[] to create individual test cases and group them into test suites. Then use the library's test tools for https://www.boost.org/doc/libs/latest/libs/test/doc/html/boost_test/test_output.html[Controlling outputs] to verify the expected behavior.
|
||||
|
||||
* For simple cases, you can use the https://www.boost.org/doc/libs/1_83_0/libs/core/doc/html/core/lightweight_test.html[lightweight_test] features of boost:core[].
|
||||
* For simple cases, you can use the https://www.boost.org/doc/libs/latest/libs/core/doc/html/core/lightweight_test.html[lightweight_test] features of boost:core[].
|
||||
|
||||
== Protocol for Fixing Bugs or Adding Features
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ Official repository: https://github.com/boostorg/website-v2-docs
|
||||
|
||||
Boost provides many useful macros that help with configuration, debugging, portability, and convenience when working with the libraries.
|
||||
|
||||
There are thousands of defined macros (refer to the https://www.boost.org/doc/libs/1_87_0/libs/config/doc/html/boost_config/boost_macro_reference.html[Boost Macro Reference]). However, here are some of the most commonly used, and some sample code showing how to work them into your code.
|
||||
There are thousands of defined macros (refer to the https://www.boost.org/doc/libs/latest/libs/config/doc/html/boost_config/boost_macro_reference.html[Boost Macro Reference]). However, here are some of the most commonly used, and some sample code showing how to work them into your code.
|
||||
|
||||
[square]
|
||||
* <<Library Inclusion and Linking>>
|
||||
@@ -382,5 +382,5 @@ int main() {
|
||||
|
||||
== See Also
|
||||
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/config/doc/html/boost_config/boost_macro_reference.html[Boost Macro Reference]
|
||||
* https://www.boost.org/doc/libs/latest/libs/config/doc/html/boost_config/boost_macro_reference.html[Boost Macro Reference]
|
||||
* xref:testing-debugging.adoc[]
|
||||
@@ -9,7 +9,7 @@ Official repository: https://github.com/boostorg/website-v2-docs
|
||||
= Explore the Content
|
||||
:navtitle: Explore the Content
|
||||
|
||||
There are a number of ways you can approach exploring Boost. Clearly, examining the documentation for any of the https://www.boost.org/doc/libs/1_82_0/libs/libraries.htm[Boost libraries] is a great way to start. However, with 180 or so libraries to choose from, you might want to consider a range of options to get going. This section covers a number of approaches you have to focus your exploration of the libraries, and get deeper into Boost content.
|
||||
There are a number of ways you can approach exploring Boost. Clearly, examining the documentation for any of the https://www.boost.org/doc/libs/latest/libs/libraries.htm[Boost libraries] is a great way to start. However, with 180 or so libraries to choose from, you might want to consider a range of options to get going. This section covers a number of approaches you have to focus your exploration of the libraries, and get deeper into Boost content.
|
||||
|
||||
If knowing what others have done before you helps, refer to <<High-Profile users of Boost>>.
|
||||
|
||||
|
||||
@@ -433,7 +433,7 @@ While Boost strives to ensure compatibility with a wide range of compilers and s
|
||||
|
||||
. *What support does Boost provide for debugging and testing?*
|
||||
+
|
||||
Boost provides boost:test[] for unit testing, which can be an integral part of the debugging process. It also provides the boost:stacktrace[] library that can be used to produce useful debug information during a crash or from a running application. Refer also to https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Correctness[Category: Correctness and testing].
|
||||
Boost provides boost:test[] for unit testing, which can be an integral part of the debugging process. It also provides the boost:stacktrace[] library that can be used to produce useful debug information during a crash or from a running application. Refer also to https://www.boost.org/doc/libs/latest/libs/libraries.htm#Correctness[Category: Correctness and testing].
|
||||
|
||||
. *How do I enable assertions in Boost?*
|
||||
+
|
||||
|
||||
@@ -47,32 +47,32 @@ The current Boost libraries are categorized as follows - the count shows the num
|
||||
[cols="2,1,5", options="header", grid=none, frame=none, stripes=even]
|
||||
|===
|
||||
|**Category** | **Count** | **Description**
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Algorithms[Algorithms] | 13 | A range of libraries including several for 2D geometry, graphs, performance when iterating, sorting, string efficiency, and miscellaneous utility algorithms.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Workarounds[Broken compiler workarounds] | 1 | Addresses compiler idiosyncrasies, and help for non-conforming standard libraries.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Concurrent[Concurrent Programming] | 15 | Libraries that address concurrency, threads, networking, sockets, context switching, memory, and other multi-threading functions.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Containers[Containers] | 23 | Includes coverage of arrays, buffers, graphs, JSON, heaps, properties, stacks, and other storage constructs and issues.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Correctness[Correctness and testing] | 7 | Includes coverage of asserts, contracting, integer correctness, tracing, and unit testing.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Data[Data structures] | 22 | Supports a wide range of data structures, including maps, containers, heaps, JSON, optional objects, pointers, polygons, properties, and stacks.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Domain[Domain Specific] | 5 | Covers date and time utilities, cyclic redundancy code (CRC), unit analysis, and unique identifiers.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Error-handling[Error handling and recovery] | 5 | Covers asserts, error reporting and handling, and an infrastructure for throwing exceptions.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Function-objects[Function objects and higher-order programming] | 16 | Covers binding, function wrapping, function overloading, lambda functions, generic functions, and callback functions.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Generic[Generic Programming] | 15 | A range of generalized libraries, including for passing parameters, function template overloads, handling operators and iterators, generic types and templates, and parallel extensions.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Image-processing[Image processing] | 1 | A single library for generic image processing.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#IO[Input/Output] | 13 | Features include portable networking, conversions for correct byte-ordering, formatting, streams, JSON, serialization, and URL parsing.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Inter-language[Inter-language support] | 1 | A single library providing a framework for interfacing Python with pass:[C++].
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Iterators[Iterators] | 6 | Covers iterations in images, graphs, arithmetic classes, and tokens.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Emulation[Language Features Emulation] | 13 | Covers language features such as reflection, exceptions, semantics, deterministic failure, parameters, scope, types, and `typeof`.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Math[Math and numerics] | 19 | Covers many math issues, such as statistics, types and conversions, geometry, histograms, trigonometry, common factors, Quaternions, n-dimensional arrays, equations, operators, polygons, vectors, matrices, random numbers, ratios, rational numbers, safe integers, and linear algebra.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Memory[Memory] | 3 | Memory functions including for alignment, allocators, traits, pool management, smart pointers, and non-copyable classes.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Parsing[Parsing] | 4 | Libraries providing a parsing framework, covering grammars, primitives, directives, and other language features.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Patterns[Patterns and Idioms] | 6 | Covers design patterns, empty member optimization, deterministic failure, callbacks, and non-copyable classes.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Preprocessor[Preprocessor Metaprogramming] | 3 | Covers macro parameters, repetition, recursion, and macro data.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Programming[Programming Interfaces] | 6 | Covers object wrappers for deferred calls or callbacks, deterministic failure, parameters, Python bindings, and error reporting.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#State[State Machines] | 2 | Covers high-performance, and arbitrarily complex finite state machines.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#String[String and text processing] | 16 | Covers type conversion, string formatting, streams, localization, regular expressions, parsing, tokens, and string algorithms.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#System[System] | 11 | Time utilities, context switching, handling libraries, threads, a smart file system, processes, backtraces, and errors.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Metaprogramming[Template Metaprogramming] | 15 | Libraries to support the development of higher-level libraries, with features such as callable traits, reflection, function types, tuples, higher-order functions, parsing, sequences, metafunctions, static assertions, introspection, properties, and expressions.
|
||||
|https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Miscellaneous[Miscellaneous] | 15 | Libraries for numerical type and text conversion, byte-ordering, logging, swapping, timing, initialization, and many other utilities.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Algorithms[Algorithms] | 13 | A range of libraries including several for 2D geometry, graphs, performance when iterating, sorting, string efficiency, and miscellaneous utility algorithms.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Workarounds[Broken compiler workarounds] | 1 | Addresses compiler idiosyncrasies, and help for non-conforming standard libraries.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Concurrent[Concurrent Programming] | 15 | Libraries that address concurrency, threads, networking, sockets, context switching, memory, and other multi-threading functions.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Containers[Containers] | 23 | Includes coverage of arrays, buffers, graphs, JSON, heaps, properties, stacks, and other storage constructs and issues.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Correctness[Correctness and testing] | 7 | Includes coverage of asserts, contracting, integer correctness, tracing, and unit testing.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Data[Data structures] | 22 | Supports a wide range of data structures, including maps, containers, heaps, JSON, optional objects, pointers, polygons, properties, and stacks.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Domain[Domain Specific] | 5 | Covers date and time utilities, cyclic redundancy code (CRC), unit analysis, and unique identifiers.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Error-handling[Error handling and recovery] | 5 | Covers asserts, error reporting and handling, and an infrastructure for throwing exceptions.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Function-objects[Function objects and higher-order programming] | 16 | Covers binding, function wrapping, function overloading, lambda functions, generic functions, and callback functions.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Generic[Generic Programming] | 15 | A range of generalized libraries, including for passing parameters, function template overloads, handling operators and iterators, generic types and templates, and parallel extensions.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Image-processing[Image processing] | 1 | A single library for generic image processing.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#IO[Input/Output] | 13 | Features include portable networking, conversions for correct byte-ordering, formatting, streams, JSON, serialization, and URL parsing.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Inter-language[Inter-language support] | 1 | A single library providing a framework for interfacing Python with pass:[C++].
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Iterators[Iterators] | 6 | Covers iterations in images, graphs, arithmetic classes, and tokens.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Emulation[Language Features Emulation] | 13 | Covers language features such as reflection, exceptions, semantics, deterministic failure, parameters, scope, types, and `typeof`.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Math[Math and numerics] | 19 | Covers many math issues, such as statistics, types and conversions, geometry, histograms, trigonometry, common factors, Quaternions, n-dimensional arrays, equations, operators, polygons, vectors, matrices, random numbers, ratios, rational numbers, safe integers, and linear algebra.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Memory[Memory] | 3 | Memory functions including for alignment, allocators, traits, pool management, smart pointers, and non-copyable classes.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Parsing[Parsing] | 4 | Libraries providing a parsing framework, covering grammars, primitives, directives, and other language features.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Patterns[Patterns and Idioms] | 6 | Covers design patterns, empty member optimization, deterministic failure, callbacks, and non-copyable classes.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Preprocessor[Preprocessor Metaprogramming] | 3 | Covers macro parameters, repetition, recursion, and macro data.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Programming[Programming Interfaces] | 6 | Covers object wrappers for deferred calls or callbacks, deterministic failure, parameters, Python bindings, and error reporting.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#State[State Machines] | 2 | Covers high-performance, and arbitrarily complex finite state machines.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#String[String and text processing] | 16 | Covers type conversion, string formatting, streams, localization, regular expressions, parsing, tokens, and string algorithms.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#System[System] | 11 | Time utilities, context switching, handling libraries, threads, a smart file system, processes, backtraces, and errors.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Metaprogramming[Template Metaprogramming] | 15 | Libraries to support the development of higher-level libraries, with features such as callable traits, reflection, function types, tuples, higher-order functions, parsing, sequences, metafunctions, static assertions, introspection, properties, and expressions.
|
||||
|https://www.boost.org/doc/libs/latest/libs/libraries.htm#Miscellaneous[Miscellaneous] | 15 | Libraries for numerical type and text conversion, byte-ordering, logging, swapping, timing, initialization, and many other utilities.
|
||||
|===
|
||||
|
||||
Note:: One library may appear in more than one category.
|
||||
|
||||
@@ -67,11 +67,6 @@ struct Record {
|
||||
};
|
||||
|
||||
// Implement a Database Table Class
|
||||
#include <boost/container/flat_map.hpp>
|
||||
#include <boost/container/stable_vector.hpp>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
class DatabaseTable {
|
||||
public:
|
||||
using RecordStorage = boost::container::stable_vector<Record>;
|
||||
@@ -130,6 +125,18 @@ int main() {
|
||||
|
||||
Note:: Key features of this sample are that it is memory-efficient (reducing fragmentation and with good performance), `stable_vector` prevents invalid references when resizing, and `flat_map` is faster than `std::map` for heavy use.
|
||||
|
||||
Run the program, the output should be:
|
||||
|
||||
[source,text]
|
||||
----
|
||||
Found: ID = 102, Name = Bob
|
||||
All records:
|
||||
ID: 101, Name: Alice
|
||||
ID: 102, Name: Bob
|
||||
ID: 103, Name: Charlie
|
||||
|
||||
----
|
||||
|
||||
== Optimize Memory Allocation
|
||||
|
||||
As we are dealing with frequent allocations of small objects (the database records) we'll enhance our database engine by using boost:pool[]. This library avoids repeated calls to `malloc`, `new` and `delete`.
|
||||
@@ -229,6 +236,18 @@ int main() {
|
||||
|
||||
Note:: Custom _Object Pools_ can be tuned for your specific object sizes.
|
||||
|
||||
The output should be:
|
||||
|
||||
[source,text]
|
||||
----
|
||||
Found: ID = 102, Name = Bob
|
||||
Record 102 removed successfully.
|
||||
All records:
|
||||
ID: 101, Name: Alice
|
||||
ID: 103, Name: Charlie
|
||||
|
||||
----
|
||||
|
||||
== Integrate Shared Memory
|
||||
|
||||
In a realistic database environment, you would probably want to enable a shared-memory database table that multiple processes can access simultaneously. For this, we need the features of boost:interprocess[]. This library enables multiple processes to share the same data faster than inter-process communication (IPC) via files or sockets, and includes mutexes and condition variables.
|
||||
@@ -585,6 +604,6 @@ The Boost libraries have a lot to offer this particular scenario!
|
||||
|
||||
== See Also
|
||||
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Containers[Category: Containers]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Data[Category: Data structures]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Memory[Category: Memory]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Containers[Category: Containers]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Data[Category: Data structures]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Memory[Category: Memory]
|
||||
|
||||
@@ -548,8 +548,8 @@ _Ed25519_ : A high-performance, secure, and efficient public-key signature algor
|
||||
|
||||
== See Also
|
||||
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Concurrent[Category: Concurrent Programming]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#IO[Category: Input/Output]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Math[Category: Math and numerics]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Concurrent[Category: Concurrent Programming]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#IO[Category: Input/Output]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Math[Category: Math and numerics]
|
||||
|
||||
|
||||
|
||||
@@ -597,8 +597,8 @@ _Gradient Descent_ is an optimization algorithm used to minimize a function by i
|
||||
|
||||
== See Also
|
||||
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Algorithms[Category: Algorithms]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Iterators[Category: Iterators]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Math[Category: Math and numerics]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Parsing[Category: Parsing]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Algorithms[Category: Algorithms]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Iterators[Category: Iterators]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Math[Category: Math and numerics]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Parsing[Category: Parsing]
|
||||
|
||||
|
||||
@@ -392,5 +392,5 @@ Unlike `std::tuple`, which holds actual values, metaprogramming tuples operate e
|
||||
|
||||
== See Also
|
||||
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Preprocessor[Category: Preprocessor Metaprogramming]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Metaprogramming[Category: Template Metaprogramming]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Preprocessor[Category: Preprocessor Metaprogramming]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Metaprogramming[Category: Template Metaprogramming]
|
||||
|
||||
@@ -30,7 +30,7 @@ Natural language processing is a complex field that goes beyond just programming
|
||||
|
||||
* boost:regex[]: For some simpler parsing tasks, regular expressions can be sufficient and easier to use than full-blown parsing libraries. You could use boost:regex[] to match specific patterns in your input text, like specific words or phrases, word boundaries, etc.
|
||||
|
||||
* https://www.boost.org/doc/libs/1_82_0/doc/html/string_algo.html[Boost.String_Algo]: Provides various string manipulation algorithms, such as splitting strings, trimming whitespace, or replacing substrings. These can be useful in preprocessing text before parsing it.
|
||||
* https://www.boost.org/doc/libs/latest/doc/html/string_algo.html[Boost.String_Algo]: Provides various string manipulation algorithms, such as splitting strings, trimming whitespace, or replacing substrings. These can be useful in preprocessing text before parsing it.
|
||||
|
||||
* boost:optional[] and boost:variant[]: These libraries can be helpful in representing the result of a parsing operation, which could be a successful parse (yielding a specific result), an error, or an ambiguous parse (yielding multiple possible results).
|
||||
|
||||
@@ -149,8 +149,8 @@ Our subset is clearly very limited, as simply replacing the word "The" with "A"
|
||||
|
||||
The following example shows how to create a vocabulary of valid words, and allow optional adjectives and adverbs.
|
||||
|
||||
The parsing makes repeated use of statements such as `-adj_syms[phoenix::ref(adj1) = qi::_1]`, which in English means _"Try to match an adjective from adj_syms. If one is found, store it in adj1. If not found, continue without error."_. This functionality is a feature of boost:phoenix[], the statement attaches a semantic action to `adj_syms`, so that whenever a match occurs, it will execute `adj1 = matched_value`. The unary minus in front of `adj_syms` means this match is optional.
|
||||
`
|
||||
The parsing makes repeated use of statements such as `-adj_syms[phoenix::ref(adj1) = qi::_1]`, which in English means _"Try to match an adjective from adj_syms. If one is found, store it in adj1. If not found, continue without error."_. This functionality is a feature of boost:phoenix[], the statement attaches a semantic action to `adj_syms`, so that whenever a match occurs, it will execute `adj1 = matched_value`. The unary minus in front of `adj_syms` means this match is optional.
|
||||
|
||||
[source,cpp]
|
||||
----
|
||||
#include <boost/spirit/include/qi.hpp>
|
||||
@@ -414,8 +414,8 @@ You will notice how adding more features to a natural language parser starts to
|
||||
|
||||
== See Also
|
||||
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Parsing[Category: Parsing]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Patterns[Category: Patterns and Idioms]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#String[Category: String and text processing]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Parsing[Category: Parsing]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Patterns[Category: Patterns and Idioms]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#String[Category: String and text processing]
|
||||
|
||||
|
||||
|
||||
@@ -779,5 +779,5 @@ Other libraries, such as boost:mysql[], are also based on boost:asio[].
|
||||
|
||||
== See Also
|
||||
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Concurrent[Category: Concurrent Programming]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#IO[Category: Input/Output]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Concurrent[Category: Concurrent Programming]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#IO[Category: Input/Output]
|
||||
|
||||
@@ -388,5 +388,5 @@ Parallel computing is an exciting challenge - success should come from focusing
|
||||
|
||||
== See Also
|
||||
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Concurrent[Category: Concurrent Programming]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#System[Category: System]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Concurrent[Category: Concurrent Programming]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#System[Category: System]
|
||||
@@ -849,9 +849,9 @@ A _Directed Acyclic Graph_ (DAG) is a finite directed graph with no cycles, mean
|
||||
|
||||
== See Also
|
||||
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Algorithms[Category: Algorithms]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Concurrent[Category: Concurrent Programming]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Math[Category: Math and numerics]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Algorithms[Category: Algorithms]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Concurrent[Category: Concurrent Programming]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Math[Category: Math and numerics]
|
||||
* xref:glossary.adoc#q[Glossary: Quantum Computing]
|
||||
|
||||
|
||||
|
||||
@@ -572,7 +572,7 @@ It is good practice when designing a simulation of real-world activity to clearl
|
||||
|
||||
== See Also
|
||||
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Algorithms[Category: Algorithms]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Image-processing[Category: Image processing]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Math[Category: Math and numerics]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#State[Category: State Machines]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Algorithms[Category: Algorithms]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Image-processing[Category: Image processing]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Math[Category: Math and numerics]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#State[Category: State Machines]
|
||||
|
||||
@@ -417,6 +417,6 @@ Adding timing features to your system operations will help you maintain more rob
|
||||
|
||||
== See Also
|
||||
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Memory[Category: Memory]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Miscellaneous[Category: Miscellaneous]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#System[Category: System]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Memory[Category: Memory]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Miscellaneous[Category: Miscellaneous]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#System[Category: System]
|
||||
|
||||
@@ -359,6 +359,6 @@ For a boost:spirit[] approach to parsing, refer to xref:task-natural-language-pa
|
||||
|
||||
== See Also
|
||||
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Miscellaneous[Category: Miscellaneous]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Parsing[Category: Parsing]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#String[Category: String and text processing]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Miscellaneous[Category: Miscellaneous]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Parsing[Category: Parsing]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#String[Category: String and text processing]
|
||||
|
||||
@@ -334,6 +334,6 @@ And check out the full functionality of boost:test[].
|
||||
|
||||
== See Also
|
||||
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Workarounds[Category: Broken compiler workarounds]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Correctness[Category: Correctness and testing]
|
||||
* https://www.boost.org/doc/libs/1_87_0/libs/libraries.htm#Error-handling[Category: Error handling and recovery]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Workarounds[Category: Broken compiler workarounds]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Correctness[Category: Correctness and testing]
|
||||
* https://www.boost.org/doc/libs/latest/libs/libraries.htm#Error-handling[Category: Error handling and recovery]
|
||||
|
||||
Reference in New Issue
Block a user