Introducing the Boost libraries: the next breakthrough in C++ programming
Boost takes you far beyond the C++ Standard Library, making C++ programming more elegant, robust, and productive. Now, for the first time, a leading Boost expert systematically introduces the broad set of Boost libraries and teaches best practices for their use.
Writing for intermediate-to-advanced C++ developers, Björn Karlsson briefly outlines all 58 Boost libraries, and then presents comprehensive coverage of 12 libraries you're likely to find especially useful. Karlsson's topics range from smart pointers and conversions to containers and data structures, explaining exactly how using each library can improve your code. He offers detailed coverage of higher-order function objects that enable you to write code that is more concise, expressive, and readable. He even takes you "behind the scenes" with Boost, revealing tools and techniques for creating your own generic libraries.
- Smart pointers that provide automatic lifetime management of objects and simplify resource sharing
- Consistent, best-practice solutions for performing type conversions and lexical conversions
- Utility classes that make programming simpler and clearer
- Flexible container libraries that solve common problems not covered by the C++ Standard Library
- Powerful support for regular expressions with Boost.Regex
- Function objects defined at the call site with Boost.Bind and Boost.Lambda
- More flexible callbacks with Boost.Function
- Managed signals and slots (a.k.a. the Observer pattern) with Boost.Signals
The Boost libraries are proving so useful that many of them are planned for inclusion in the next version of the C++ Standard Library. Get your head start now, with Beyond the C++ Standard Library.
Table of Contents
About the Author.
Organization of This Book.
Introduction to Boost.
String and Text Processing
Data Structures, Containers, Iterators, and Algorithms
Function Objects and Higher-Order Programming
Generic Programming and Template Metaprogramming
Math and Numerics
I. GENERAL LIBRARIES.
Library 1: Smart_ptr.
How Does the Smart_ptr Library Improve Your Programs?
When Do We Need Smart Pointers?
How Does Smart_ptr Fit with the Standard Library?
Library 2: Conversion.
How Does the Conversion Library Improve Your Programs?
Library 3: Utility.
How Does the Utility Library Improve Your Programs?
Library 4: Operators.
How Does the Operators Library Improve Your Programs?
Library 5: Regex.
How Does the Regex Library Improve Your Programs?
How Does Regex Fit with the Standard Library?
II. CONTAINERS AND DATA STRUCTURES.
Library 6: Any.
How Does the Any Library Improve Your Programs?
How Does Any Fit with the Standard Library?
Library 7: Variant.
How Does the Variant Library Improve Your Programs?
How Does Variant Fit with the Standard Library?
Library 8: Tuple.
How Does the Tuple Library Improve Your Programs?
How Does the Tuple Library Fit with the Standard Library?
III. FUNCTION OBJECTS AND HIGHER-ORDER PROGRAMMING.
Library 9: Bind.
How Does the Bind Library Improve Your Programs?
How Does Bind Fit with the Standard Library?
Library 10: Lambda.
How Does the Lambda Library Improve Your Programs?
How Does Lambda Fit with the Standard Library?
Library 11: Function.
How Does the Function Library Improve Your Programs?
How Does Function Fit with the Standard Library?
Library 12: Signals.
How Does the Signals Library Improve Your Programs?
How Does Signals Fit with the Standard Library?