tags:

views:

282

answers:

4

I am a seasoned .NET and C++ programmer who has been almost exclusively programming in C# for last 5 years and now I had to go "back" to start programming in C++ again.

Before becoming a C# developer I was a hardcore C++/STL/COM programmer, but never really used Boost back then (apart from playing around with a smart pointers from Boost).

I am sort of refreshed my memory of C++ to a working level and now keen to learn Boost again. Can someone recommend me a quick way to learn Boost to a reasonable (ok, let me face it, newbie) working level. Any Boost FAQ, learning resourses, ideas and suggestions would be greatly appreciated.

+1  A: 

I can't see any reason to learn whole Boost at once. You could reference to Boost Documentation for information about parts of Boost you really need in your work.

There is a book - Beyond the C++ Standard Library: An Introduction to Boost. You could start from reading it.

Kirill V. Lyadvinsky
+3  A: 

This book is a very good reference, but I guess it is not really "quick". The good think is that in the same page, InformIT, you can find a sample chapter about boost::bind. That library is like the boost auto pointers, is one of the boost libraries I use to develop any C++ program in my daily basis. The other is boost::lambda, which is related with boost::bind. The own boost documentation is a very good tutorial.

And regarding the other functionalities, I guess is like any other general library, you just have to learn the components you need to use. I guess you can have a look to this page to be aware of all these functionalities boost is offering you.

I almost forgot boost::mpl (metaprogramming library). Again the official boost documentation can help you.

fco.javier.sanz
+1  A: 

You will not find a book which covers all boost libs. Boost currently features more than 80 libraries.

My approach was:

  1. Identify the lib you need to solve the current problem
  2. Go to the web site of this library, read the tutorial or getting started (there you will learn it step-by-step)
  3. As you develop using this lib you will get more and more questions, these can be answered by either consulting the reference (not tutorial) of the lib or posting to the boost mailing lists. Boost mailing lists are very active and you usually get an answer within the next hour.
  4. There are only a few books I used to read to understand "hardcore" libs: Modern C++ Design by A. Alexandrescu and the MPL book from Abrahams & Gurtovoy.

The most important books I read were all Herb Sutter books, because idioms used in Boost and cetainly in STL are pretty well discussed there (Exceptional C++, More Exceptional C++ and Exceptional C++ Style). I also liked 101 Coding Guidelines by Sutter & Alexandrescu. The last book is more like a summary of most important idioms.

ovanes
+1  A: 

There's no book that covers Boost as a whole. I had to start learning it 2 months ago, and I chose the "learn what you really need" approach.

  1. Identify the problem
  2. Read the library descriptions and choose those of interest
  3. Most of them are pretty well documented and contain some examples/ tutorials so it shouldn't be so bad.
Maciek