HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
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.
Coverage includes
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.
Manipulating C++ Graph Data Structures with the Boost Graph Library
Searching and Matching with Regular Expressions in C++
How the Boost Bind Library Can Improve Your C++ Programs
Download the Sample
Chapter related to this title.
Foreword.
Preface.
Acknowledgments.
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
Input/Output
Miscellaneous
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?
scoped_ptr
scoped_array
shared_ptr
shared_array
intrusive_ptr
weak_ptr
Smart_ptr Summary
Library 2: Conversion.
How Does the Conversion Library Improve Your Programs?
polymorphic_cast
polymorphic_downcast
numeric_cast
lexical_cast
Conversion Summary
Library 3: Utility.
How Does the Utility Library Improve Your Programs?
BOOST_STATIC_ASSERT
checked_delete
noncopyable
addressof
enable_if
Utility Summary
Library 4: Operators.
How Does the Operators Library Improve Your Programs?
Operators
Usage
Operators Summary
Library 5: Regex.
How Does the Regex Library Improve Your Programs?
How Does Regex Fit with the Standard Library?
Regex
Usage
Regex Summary
II. CONTAINERS AND DATA STRUCTURES.
Library 6: Any.
How Does the Any Library Improve Your Programs?
How Does Any Fit with the Standard Library?
Any
Usage
Any Summary
Library 7: Variant.
How Does the Variant Library Improve Your Programs?
How Does Variant Fit with the Standard Library?
Variant
Usage
Variant Summary
Library 8: Tuple.
How Does the Tuple Library Improve Your Programs?
How Does the Tuple Library Fit with the Standard Library?
Tuple
Usage
Tuple Summary
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?
Bind
Usage
Bind Summary
Library 10: Lambda.
How Does the Lambda Library Improve Your Programs?
How Does Lambda Fit with the Standard Library?
Lambda
Usage
Lambda Summary
Library 11: Function.
How Does the Function Library Improve Your Programs?
How Does Function Fit with the Standard Library?
Function
Usage
Function Summary
Library 12: Signals.
How Does the Signals Library Improve Your Programs?
How Does Signals Fit with the Standard Library?
Signals
Usage
Signals Summary
Bibliography.
Index.
Welcome to Beyond the C++ Standard Library: An Introduction to Boost.
If you are interested in generic programming, library design, and the C++ Standard Library, this book is for you. Because the intended audience for the book is intermediate to advanced C++ programmers, there is little coverage of basic C++ concepts. As the title suggests, the focus of this book is on the Boost librariesgeneral usage, best practices, implementation techniques, and design rationale.
Almost from the day I discovered Boost, the people behind it, and the extraordinary libraries in it, I've wanted to write this book. It is amazing that a language as mature as C++ still offers room for exploration into higher-level abstractions as well as technical detail, all without requiring changes to the language. Of course, this is what sets C++ apart from many other programming languages: It is specifically and intentionally designed for extension, and the language's facilities for generic constructs are extremely powerful. This exploration is at the core of the Boost libraries and the Boost community itself. Boost is about making programming in C++ more elegant, more robust, and more productive. As discoveries are made and best practices are shaped, a great challenge faces the C++ community; to share this knowledge with others. In isolation, there is limited value to these remarkable findings, but when exposed to a larger audience, a whole industry will evolve.
This book shows how to use a selection of the wonderfully useful Boost libraries, teaches best practices for their use, and even goes behind the scenes to see how they actually work. The Boost libraries' license grants permission to copy, use, and modify the software for any use (commercial and non-commercial), so all you need to do is visit www.boost.org and download the latest version.
For all the C++ Standard Library aficionados out there, it is well known that a new revision of the Standard Library is in progress. From a standardization point of view, there are three primary areas where the C++ Standard Library is likely to change:
The Boost libraries address all of these areas in one way or another. Of the 12 libraries covered in this book, six have already been accepted for inclusion in the upcoming Library Technical Report, which means that they will most likely be part of the next version of the Standard Library. Thus, learning about these libraries has excellent long-term value. I hope that you will find this book to be a valuable tool for using, understanding, and extending the Boost libraries. From that vantage, you'll want to incorporate those libraries and the knowledge enshrined within them into your own designs and implementations. That's what I call reuse.
Thank you for reading.
Björn Karlsson
Download the Index
file related to this title.