Home > Store > Programming > C/C++

larger cover

Add To My Wish List

Beyond the C++ Standard Library: An Introduction to Boost

Register your product to gain access to bonus material or receive a coupon.

  • Description
  • Extras
  • Reviews
  • Sample Content

Product Author Bios

Björn Karlsson works as a Senior Software Engineer at ReadSoft, where he spends most of his time designing and programming in C++. He has written a number of articles about C++ and the Boost libraries for publications such as C/C++ Users Journal, Overload, and the online journal The C++ Source.

Karlsson is a member of the advisory board for The C++ Source and has been a member of the editorial board of C/C++ Users Journal, where he is also one of the columnists in the Experts Forum. He participates in the Boost newsgroups and is one of the Boost-Users moderators.

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

  • 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.

Customer Reviews

28 of 28 people found the following review helpful
5.0 out of 5 stars Essential for intermediate programmers using Boost, September 14, 2005
By 
G. Powell (Seattle, WA USA) - See all my reviews
(REAL NAME)   
This review is from: Beyond the C++ Standard Library: An Introduction to Boost (Paperback)
This book is not just a rehash of the online documentation of the boost library. This book is way more than that, it's a why you should use these libraries and how to book. Not a how to write the libraries, or program in C++. As such this book is geared toward the intermediate to advanced C++ programmer who has heard about www.boost.org but isn't using all of the libraries yet.

This is not an unbiased review, as I reviewed the chapter on Lambda as I'm one of the original authors of the library. However I'm not on the payroll so you can trust me when I say, buy the book, you'll be glad you did.

Why should you care? Well boost is a proving ground for many of the upcoming C++ 0X standard libaries. Before the libraries get accepted by the standards committee, often there is reference implementation done for boost. And those that don't make the standard cut, well, often its not poor quality code, but rather a narrow focus library. Boost may have just the thing you... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


23 of 25 people found the following review helpful
4.0 out of 5 stars If you're not using Boost, you're not getting the most out of C++., October 14, 2005
By 
Paul M. Dubuc (Columbus, OH USA) - See all my reviews
(REAL NAME)   
This review is from: Beyond the C++ Standard Library: An Introduction to Boost (Paperback)
All professional C++ programmers should become familiar with this freely available source of high quality, peer reviewed C++ code. Boost is a collection of libraries that are designed to complement the C++ Standard Library and provide very useful solutions to difficult program design tasks. This book is a very good introduction to Boost. There is an introductory chapter that gives a brief description of each Boost library (almost 60 of them as of version 1.32). Seven of these libraries have been accepted for the upcoming C++ Standard Library Technical Report which means that they will probably become part of the next version of the C++ standard. The remainder of the book gives a more in-depth tutorial introduction of a good sampling of 12 Boost libraries. This material complements the documentation on the Boost.org web site. It provides clear examples that illustrate the use and usefulness of each library.

My only complaint is that they didn't make the book longer... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


17 of 20 people found the following review helpful
3.0 out of 5 stars OK, but start with the boost site itself, February 13, 2007
This review is from: Beyond the C++ Standard Library: An Introduction to Boost (Paperback)
The book is well-written, clear, and honest to the title -- it truly is an intro. In fact, it's honest to the title a bit too much: I found it shallow. It is very much like most of the other recent C++ books (although it's one of the better-written ones), that is it has a distinct publish-or-perish taste to it, like a paper produced by another graduate student who doesn't really want to write it but has to. Not enough depth. It is, however, free from many sins of this PhD-indited flood: it's NOT pompous, it IS simple and clear, it has no pseudo-scientific pretense in it. I mean it's almost good; just not enough indepth.

Someone asked me recently, a bit confrontationally, well, you don't like anything, what's a good book then? No problem: books you tended to get a decade and more back; mostly written by practising professionals rather than CS PhD students; written by people motivated by either love of their work, or vanity, or greed -- all valid motivators, frequently... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


Share your thoughts with other customers:
 See all 20 customer reviews...

Online Sample Chapter

How the Boost Bind Library Can Improve Your C++ Programs

Index

Download the Index file related to this title.

Preface

Untitled Document Dear Reader,

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 libraries—general 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:

  • Fixing broken libraries
  • Augmenting missing features to existing libraries
  • Adding libraries that provide functionality that is missing in the Standard Library

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

Table of Contents

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.

 

Downloadable Sample Chapter

Download the Sample Chapter related to this title.

 
Best Value

Book + eBook Bundle  $116.98  $70.19

Book Price $51.99
eBook Price $18.20
eBook formats included

Buy

This book includes free shipping!

Buy

Book  $64.99  $51.99

Usually ships in 24 hours.

This book includes free shipping!

Buy

eBook (Watermarked)  $51.99  $41.59

Includes EPUB, MOBI, and PDF
About eBook Formats

This eBook includes the following formats, accessible from your Account page after purchase:

ePubEPUBThe open industry format known for its reflowable content and usability on supported mobile devices.

MOBIMOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

Adobe ReaderPDFThe popular standard, used most often with the free Adobe® Reader® software.

This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.

Purchase Reward: One Month Free Subscription
By completing any purchase on InformIT, you become eligible for an unlimited access one-month subscription to Safari Books Online.

Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.