Solve practical programming problems using powerful, portable, and expressive libraries from Boost
About This Book
- Learn to apply the breadth of Boost libraries, including containers, smart pointers, regular expressions, threads, network I/O, and other utilities through practical programming examples
- Write clear and succinct C++ code that is efficient and maintainable
- Speed up using the Boost libraries without any prior knowledge, using an in-depth tutorial introduction
Who This Book Is For
If you are a C++ programmer who has never used Boost libraries before, this book will get you up-to-speed with using them. Whether you are developing new C++ software or maintaining existing code written using Boost libraries, this hands-on introduction will help you decide on the right library and techniques to solve your practical programming problems.
What You Will Learn
- Write efficient and maintainable code using expressive interfaces from Boost libraries
- Leverage a variety of flexible, practical, and highly efficient containers and algorithms beyond STL
- Solve common programming problems by applying a wide array of utility libraries
- Design and write portable multithreaded code that is easy to read and maintain
- Craft highly scalable and efficient TCP and UDP servers
- Build and deploy Boost libraries across a variety of popular platforms
- Use C++11 functionality and emulate C++11 language features in C++03 code
In Detail
Filled with dozens of working code examples that illustrate the use of over 40 popular Boost libraries, this book takes you on a tour of Boost, helping you to independently build the libraries from source and use them in your own code.
The first half of the book focuses on basic programming interfaces including generic containers and algorithms, strings, resource management, exception safety, and a miscellany of programming utilities that make everyday programming chores easy. Following a short interlude that introduces template metaprogramming and functional programming, the later chapters are devoted to systems programming interfaces, focusing on directory handling, I/O, concurrency, and network programming