
Boost C++ Application Development Cookbook
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Person
Antony Polukhin If you are wondering who is Antony Polukhin and could he be trusted to teach about C++ and Boost libraries, then here are some facts: * Antony Polukhin currently represents Russia in international C++ standardization committee * He is the author of multiple Boost libraries and maintains (keeps an eye on) some of the old Boost libraries * He is a perfectionist: all the source codes from the book are auto tested on multiple platforms using different C++ standards. But let's start from the beginning. Antony Polukhin was born in Russia. As a child, he could speak the Russian and Hungarian languages and learned English at school. Since his school days, he was participating in different mathematics, physics, and chemistry competitions and winning them. He was accepted into University twice: once for taking part in a city mathematics competition and again for gaining high score in an University's mathematics and physics challenge. In his university life, there was a year when he did not participate in exams at all: he gained A's in all disciplines by writing highly difficult programs for each teacher. He met his future wife in university and graduated with honors. For more than three years, he worked in a VoIP company developing business logic for a commercial alternative to Asterisc. During those days he started contributing to Boost and became a maintainer of the Boost.LexicalCast library. He also started making translations to Russian for Ubuntu Linux at that time. Today, he works for Yandex Ltd., helps Russian speaking people with C++ standardization proposals, continues to contribute to the open source and to the C++ language in general. You may find his code in Boost libraries such as Any, Conversion, DLL, LexicalCast, Stacktrace, TypeTraits, Variant, and others. He has been happily married for more than five years.
Content
- Cover
- Title Page
- Copyright
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Table of Contents
- Preface
- Chapter 1: Starting to Write Your Application
- Introduction
- Getting configuration options
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Storing any value in a container/variable
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Storing multiple chosen types in a container/variable
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Using a safer way to work with a container that stores multiple chosen types
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Returning a value or flag where there is no value
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Returning an array from a function
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Combining multiple values into one
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Binding and reordering function parameters
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Getting a human-readable type name
- Getting ready
- How to do it
- How it works...
- There's more...
- See also
- Using the C++11 move emulation
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Making a noncopyable class
- Getting ready
- How to do it...
- How it works...
- See also
- Making a noncopyable but movable class
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Using C++14 and C++11 algorithms
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Chapter 2: Managing Resources
- Introduction
- Managing local pointers to classes that do not leave scope
- Getting started
- How to do it...
- How it works...
- There's more...
- See also
- Reference counting of pointers to classes used across functions
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Managing pointers to arrays that do not leave scope
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Reference counting of pointers to arrays used across functions
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Storing any functional objects in a variable
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Passing function pointer in a variable
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Passing C++11 lambda functions in a variable
- Getting ready
- How to do it...
- There's more...
- See also
- Containers of pointers
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Do it at scope exit!
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Initializing the base class by the member of the derived class
- Getting started
- How to do it...
- How it works...
- There's more...
- See also
- Chapter 3: Converting and Casting
- Introduction
- Converting strings to numbers
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Converting numbers to strings
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Converting numbers to numbers
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Converting user-defined types to/from strings
- How to do it...
- How it works...
- There's more...
- See also
- Converting smart pointers
- Getting started
- How to do it...
- How it works...
- There's more...
- See also
- Casting polymorphic objects
- Getting started
- How to do it...
- How it works...
- There's more...
- See also
- Parsing simple input
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Parsing complex input
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Chapter 4: Compile-Time Tricks
- Introduction
- Checking sizes at compile time
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Enabling function template usage for integral types
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Disabling function template usage for real types
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Creating a type from a number
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Implementing a type trait
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Selecting an optimal operator for a template parameter
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Getting a type of expression in C++03
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Chapter 5: Multithreading
- Introduction
- Creating a thread of execution
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Syncing access to a common resource
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Fast access to common resource using atomics
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Creating work_queue class
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Multiple-readers-single-writer lock
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Creating variables that are unique per thread
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Interrupting a thread
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Manipulating a group of threads
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Initializing a shared variable safely
- Getting ready
- How to do it...
- How it works...
- There's more..
- See also
- Locking multiple mutexes
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Chapter 6: Manipulating Tasks
- Introduction
- Before you start
- Registering a task for an arbitrary data type processing
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Making timers and processing timer events as tasks
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Network communication as a task
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Accepting incoming connections
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Executing different tasks in parallel
- Getting started
- How to do it...
- How it works...
- There's more...
- See also
- Pipeline tasks processing
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Making a nonblocking barrier
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Storing an exception and making a task from it
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Getting and processing system signals as tasks
- Getting ready
- How to do it...
- How it works...
- There is more...
- See also
- Chapter 7: Manipulating Strings
- Introduction
- Changing cases and case-insensitive comparison
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Matching strings using regular expressions
- Getting started
- How to do it...
- How it works...
- There's more...
- See also
- Searching and replacing strings using regular expressions
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Formatting strings using safe printf-like functions
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Replacing and erasing strings
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Representing a string with two iterators
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Using a reference to string type
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Chapter 8: Metaprogramming
- Introduction
- Using type vector of types
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Manipulating a vector of types
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Getting a function's result type at compile time
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Making a higher-order metafunction
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Evaluating metafunctions lazily
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also...
- Converting all the tuple elements to strings
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Splitting tuples
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Manipulating heterogeneous containers in C++14
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Chapter 9: Containers
- Introduction
- Storing a few elements in a sequence container
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Storing at most N elements in the sequence container
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Comparing strings in an ultra-fast manner
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Using an unordered set and map
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Making a map, where value is also a key
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Using multi-index containers
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Getting benefits of a single linked list and memory pool
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Using flat associative containers
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Chapter 10: Gathering Platform and Compiler Information
- Introduction
- Detecting an OS and compiler
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Detecting int128 support
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Detecting and bypassing disabled RTTI
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Writing metafunctions using simpler methods
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- The portable way to export and import functions and classes
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Detecting the Boost version and getting latest features
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Chapter 11: Working with the System
- Introduction
- Listing files in a directory
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Erasing and creating files and directories
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Writing and using plugins
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Getting backtrace - current call sequence
- Getting started
- How to do it...
- How it works...
- There's more...
- See also
- Passing data quickly from one process to another
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Syncing interprocess communications
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Using pointers in a shared memory
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- The fastest way to read files
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Coroutines - saving the state and postponing the execution
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Chapter 12: Scratching the Tip of the Iceberg
- Introduction
- Working with graphs
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Visualizing graphs
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Using a true random number generator
- Getting started
- How to do it...
- How it works...
- There's more...
- See also
- Using portable math functions
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Writing test cases
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Combining multiple test cases in one test module
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Manipulating images
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Index
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.