Lecture Slides for Programming in C++ (Version 2018-02-15): The C++ Language, Libraries, Tools, and Other Topics

· Michael Adams
5.0
23 reviews
Ebook
2124
Pages
Eligible

About this ebook

This document, which consists of over 2000 lecture slides, offers a wealth of information on many topics relevant to programming in C++, including coverage of the C++ language itself, the C++ standard library and a variety of other libraries, numerous software tools, and an assortment of other programming-related topics.  The coverage of the C++ language and standard library is current with the C++17 standard.

C++ PROGRAMMING LANGUAGE.  Many aspects of the C++ language are covered from introductory to more advanced.  This material includes: the preprocessor, language basics (objects, types, values, operators, expressions, control-flow constructs, functions, and namespaces), classes, templates (function, class, variable, and alias templates, variadic templates, template specialization, and SFINAE), lambda expressions, inheritance (run-time polymorphism and CRTP), exceptions (exception safety and RAII), smart pointers, memory management (new and delete operators and expressions, placement new, and allocators), rvalue references (move semantics and perfect forwarding), concurrency (memory models, and happens-before and synchronizes-with relationships).

C++ STANDARD LIBRARY AND VARIOUS OTHER LIBRARIES.  Various aspects of the C++ standard library are covered including: containers, iterators, algorithms, I/O streams, time measurement, and concurrency support (threads, mutexes, condition variables, promises and futures, atomics, and fences).  A number of Boost libraries are discussed, including the Intrusive, Iterator, and Container libraries.  The OpenGL library and GLSL are discussed at length, along with several related libraries, including: GLFW, GLUT, and GLM.  The CGAL library is also discussed in some detail.

SOFTWARE TOOLS.  A variety of software tools are discussed, including: static analysis tools (e.g., Clang Tidy), code sanitizers (e.g., ASan, UBSan, and TSan), debugging and testing tools (e.g., Catch2), performance analysis tools (e.g., Perf, PAPI, Gprof, and Valgrind/Callgrind), build tools (e.g., CMake and Make), and version control systems (e.g., Git).

OTHER TOPICS.  An assortment of other programming-related topics are also covered, including: data structures, algorithms, computer arithmetic (e.g., floating-point arithmetic and interval arithmetic), cache-efficient algorithms, vectorization, good programming practices, and software documentation.

Ratings and reviews

5.0
23 reviews
Jun Luo
April 25, 2018
This book is very helpful to me for learning C++. If anyone is interested in learning C++, I would strongly recommend to read this book. It summarized many important features and concepts in C++ and provided many good examples to help illustrating those concepts. Before when I started to learn C++ by reading the C++11 Programming Language book written by Bjarne Stroustrup before I got many questions and confusions, (it is a good book but I think it is more suitable for senior C++ programmer), while most of the confusions have been resolved after I read this book. I think this book can bring significant benefit people who is interested in learning C++, especially for the beginners or who is in the junior or mid-level. I also recommended many of my friends to read this book and all of them speaks highly of it.
2 people found this review helpful
Did you find this helpful?
Yue Fang
April 28, 2018
This slides is very useful for students who are going to use C++ heavily. You can find almost all the important features of C++. Moreover, it also introduce the new features of C++ 14 and 17. This slides can not only be a simple textbook but also can be a tool book if anyone want to find any feature of C++.
4 people found this review helpful
Did you find this helpful?
Boyang J
August 25, 2018
This sets of slides prepared by Dr. Adams is an extremely helpful asset for anybody learning C++. It extensively covers many useful topics for both C++ and robust programming, and includes plentiful examples throughout.
1 person found this review helpful
Did you find this helpful?

Rate this ebook

Tell us what you think.

Reading information

Smartphones and tablets
Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.
Laptops and computers
You can listen to audiobooks purchased on Google Play using your computer's web browser.
eReaders and other devices
To read on e-ink devices like Kobo eReaders, you'll need to download a file and transfer it to your device. Follow the detailed Help Center instructions to transfer the files to supported eReaders.