Expert C++ Programming
by: Jeganathan Swaminathan – Maya Posch – Jacek Galowicz
ISBN-10: 178883139X
ISBN-13: 9781788831390
Released: 2018-04-11
Pages: 1030
Publisher finelybook 出版社: Packt
Book Description
Developing expert level application development skills with C++
C++ has come a long way and has now been adopted in several contexts. Its key strengths are its software infrastructure and resource-constrained applications. The C++ 17 release will change the way developers write code, and this course will help you master your developing skills with C++. With real-world, practical examples explaining each concept, the course is divided into three modules where will begin by introducing you to the latest features in C++ 17. It encourages clean code practices in C++ in general and demonstrates the GUI app-development options in C++. You’ll get tips on avoiding memory leaks using smart-pointers.
In the next module, you’ll see how multi-threaded programming can help you achieve concurrency in your applications. We start with a brief introduction to the fundamentals of multithreading and concurrency concepts. We then take an in-depth look at how these concepts work at the hardware-level as well as how both operating systems and frameworks use these low-level functions.
You will learn about the native multithreading and concurrency support available in C++ since the 2011 revision,synchronization and communication between threads,debugging concurrent C++ applications,and the best programming practices in C++.
Moving on, you’ll get an in-depth understanding of the C++ Standard Template Library. Where we show implementation-specific,problem-solution approach that will help you quickly overcome hurdles. You will learn the core STL concepts,such as containers,algorithms,utility classes,lambda expressions,iterators,and more while working on practical real-world recipes. These recipes will help you get the most from the STL and show you how to program in a better way.
Jeganathan Swaminathan: Mastering C++ Programming
Maya Posch: Mastering C++ Multithreading
Jacek Galowicz: C++17 STL Cookbook
What You Will Learn
Write modular C++ applications in terms of the existing and newly introduced features
Identify code-smells, clean up, and refactor legacy C++ applications
Leverage the possibilities provided by Cucumber and Google Test/Mock to automate test cases
Deep dive into the details of the how various operating systems currently implement multithreading
Choose the best multithreading APIs when designing a new application
Explore the use of mutexes,spin-locks,and other synchronization concepts and see how to safely pass data between threads
Work with strings the STL way instead of handcrafting C-style code
Understand standard support classes for concurrency and synchronization,and how to put them to work
Use the filesystem library addition available with the C++17 STL
Contents
Preface
Module 1: Mastering C++Programming
Chapter 1: Introduction to C++17 Standard Template Library
Chapter 2: Template Programming
Chapter 3: Smart Pointers
Chapter 4: Developing GUI Applications in C++
Chapter 5: Test-Driven Development
Chapter 6: Behavior-Driven Development
Chapter 7: Code Smells and Clean Code Practices
Module 2: Mastering C++Multithreading
Chapter 8: Revisiting Multithreading
Chapter 9: Multithreading Implementation on the Processor and OS
Chapter 10: C++Multithreading APIs
Chapter 11: Thread Synchronization and Communication
Chapter 12: Native C++Threads and Primitives
Chapter 13: Debugging Multithreaded Code
Chapter 14: Best Practices
Chapter 15: Atomic Operations-Working with the Hardware
Chapter 16: Multithreading with Distributed Computing
Chapter 17: Multithreading with GPGPU
Module 3: C++17 STL Cookbook
Chapter 18: The New C++17 Features
Chapter 19: STL Containers
Chapter 20: Iterators
Chapter 21: Lambda Expressions
Chapter 22: STL Algorithm Basics
Chapter 23: Advanced Use of STL Algorithms
Chapter 24: Strings,Stream Classes,and Regular Expressions
Chapter 25: Utility Classes
Chapter 26: Parallelism and Concurrency
Chapter 27: Filesystem
Bibliography
Index