O''''Reilly Network For Information About''''s Book part 31 pot - Pdf 17

Acknowledgments
A number of people have made all the difference for this book, and for my ability
to write it. First of all, I wish to thank the Boost community for these astonishing
libraries. Theythe libraries and the Boostersmake a very real difference
for the C++
community and the whole software industry. Then, there are people who have very
actively supported this effort of mine, and I wish to thank them personally. It's
inevitable that I will fail to mention some: To all of you, please accept my sincere
apologies. Beman Dawes, thank you for creating Boost in the first place, and for
hooking me up with Addison-Wesley. Bjarne Stroustrup, thank you for providing
guidance and pointing out important omissions from the nearly finished
manuscript. Robert Stewart, thank you for the careful technical and general editing
of this book. Rob has made this book much more consistent, more readable, and
more accurateand all of this on his free time! The technical errors that remain are
mine, not his. Rob has also been instrumental in finding ways to help the reader
stay on track even when the author strays. Chuck Allison, thank you for your
continuous encouragement and support for my authoring goals. David Abrahams,
thank you for supporting this effort and for helping out with reviewing. Matthew
Wilson, thank you for reviewing parts of this book and for being a good friend.
Gary Powell, thank you for the excellent reviews and for your outstanding
enthusiasm for this endeavor. All of the authors of Boost libraries have created
online documentation for them: Without this great source of information, it nearly
would have been impossible to write this book. Thanks to all of you. Many
Boosters have helped out in different ways, and special thanks go to those who
have reviewed various chapters of this book. Without their help, important points
would not have been made and errors would have prevailed. Aleksey Gurtovoy,
David Brownell, Douglas Gregor, Duane Murphy, Eric Friedman, Eric Niebler,
Fernando Cacciola, Frank Griswold, Jaakko Järvi, James Curran, Jeremy Siek,
John Maddock, Kevlin Henney, Michiel Salters, Paul Grenyer, Peter Dimov,
Ronald Garcia, Phil Boyd, Thorsten Ottosen, Tommy Svensson, and Vladimir
Prusthank you all so much!

that is to show where the types and functions come from. If something is from the
Standard Library, it will be prefixed with std::.
If it's from Boost, it will be prefixed
with boost::.
Some of the libraries covered by this book are very extensive, which makes it
impossible to include detailed explanations of all aspects of the library. When this
is the case, there's typically a note stating that there is more to know, with
references to the online documentation, related literature, or both. Also, I have
tried to focus on the things that are of the most immediate use, and that have a
strong relation with the C++ Standard Library.
The first part of this book covers general libraries, which are libraries that are
eminently useful, but have no other obvious affinity. The second discusses
important data structures and containers. The third is about higher-order
programming. There's no requi
rement to read about the libraries in a specific order,
but it certainly doesn't hurt to follow tradition and start from the beginning.
Before getting to the in-depth look at the covered Boost libraries, a survey of each
of the currently available Boost libraries will introduce you to the Boost libraries
and give context for those that I'll address in the rest of the book. It gives an
interesting overview of the versatility of this world-class collection of C++
libraries.

String and Text Processing
Boost.Regex

Regular expressions are essential for solving a great number of pattern-matching
problems. They are often used to process large strings, find inexact substrings,

those in the C++ Standard Library.
The author of String_algo is Pavol Droba.
Boost.Tokenizer

This library offers ways of separating character sequences into tokens. Common
parsing tasks include finding the data in delimited text streams. It is beneficial to
be able to treat such a sequence as a container of elements, where the elements are
delimited according to user-defined criteria. Parsing is a separate task from
operating on the elements, and it is exactly this abstraction that is offered by
Tokenizer. The user determines how the character sequence is delimited, and the
library finds the tokens as the user requests new elements.
The author of Tokenizer is John Bandela.
Data Structures, Containers, Iterators, and Algorithms
Boost.Any

The Any library supports typesafe storage and retrieval of values of any type.
When the need for a variant type arises, there are three possible solutions:
 Indiscriminate types, such as void*. This solution can almost never be made
typesafe; avoid it like the plague.
 Variant typesthat is, types that support the storage and retrieval of a set of
types.
 Types that support conversions, such as between string types and integral
types.
Any implements the second solutiona value-
based variant type, with an unbounded
set of possible types. The library is often used for storing heterogeneous types in
Standard Library containers. Read more in "Library 6: Any."

boost::dynamic_bitset supports runtime size configuration. Although
dynamic_bitset supports the same interface as std::bitset, it adds functions that
support runtime-specific functionality and some that aren't available in std::bitset.
The library is typically used instead of std::bitset
, in scenarios where the size of the
bitset isn't necessarily known at compile time, or may change during program
execution.
The authors of Dynamic_bitset are Jeremy Siek and Chuck Allison.
Boost.Graph

Graph is a library for processing graph structures, using a design heavily
influenced by the STL. It is generic and highly configurable,
and includes different
data structures: adjacency lists, adjacency matrices, and edge lists. Graph also
provides a large number of graph algorithms, such as Dijsktra's shortest path,
Kruskal's minimum spanning tree, topological sort, and many more.
The authors of Graph are Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine.
Boost.Iterator

This library provides a framework for creating new iterator types, and it also offers
a number of useful iterator adaptors beyond those defined by the C++ Standard.
Creating new iterator types that conform to the standard is a difficult and tedious
task. Iterator simplifies that task by automating most of the details, such as
providing the required typedefs. Iterator also makes it possible to adapt an existing
iterator type to give it new behavior. For example, the indirect iterator adaptor
applies an extra dereferencing operation, making it possible to treat a container of
pointers (or smart pointers) to a type as if it contained objects of that type.
The authors of Iterator are Jeremy Siek, David Abrahams, and Thomas Witt.
Boost.MultiArray


function return type or argument, and provides a generic way of accessing the
tuple's elements. See "Library 8: Tuple 8" for the details of this great librar
y. Tuple
has been accepted for the upcoming Library Technical Report.
The author of Tuple is Jaakko Järvi.
Boost.Variant

The Variant library contains a generic discriminated union class for storing and
manipulating an object from a set of heterogeneous types. A unique feature of the
library is the support for type-
safe visitation, which alleviates the common problem
of type-switching code for variant data types.
The authors of Variant are Eric Friedman and Itay Maman.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status