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

· Michael Adams
5,0
23 відгуки
Електронна книга
2124
Сторінки
Можна додати

Про цю електронну книгу

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.

Оцінки та відгуки

5,0
23 відгуки

Оцініть цю електронну книгу

Повідомте нас про свої враження.

Як читати

Смартфони та планшети
Установіть додаток Google Play Книги для Android і iPad або iPhone. Він автоматично синхронізується з вашим обліковим записом і дає змогу читати книги в режимах онлайн і офлайн, де б ви не були.
Портативні та настільні комп’ютери
Ви можете слухати аудіокниги, куплені в Google Play, у веб-переглядачі на комп’ютері.
eReader та інші пристрої
Щоб користуватися пристроями для читання електронних книг із технологією E-ink, наприклад Kobo, вам знадобиться завантажити файл і перенести його на відповідний пристрій. Докладні вказівки з перенесення файлів на підтримувані пристрої можна знайти в Довідковому центрі.