Уровень сложности:
Длительность курса: 32 ак.ч.
График обучения: 4 дня по 8 часов или 8 дней по 4 часа
Аннотация
Стандарт С++11 - это первое значительное изменение стандарта языка С++ с 1998-го года. Многие полезные нововведения были позаимствованы из популярной в среде программистов на С++ библиотеки Boost и согласно новому стандарту стали «родными» в реализации С++, то есть поддерживаются как компилятором, так и стандартной библиотекой. В результате – перед нами практически новый язык программирования, возможностями которого пока еще мало кто пользуется, а некоторые программисты даже не в курсе тех новшеств, которые появились в языке С++.
Целью данного курса является освоение новых концепций и программных средств, добавленных в язык программирования С++ согласно стандарту С++11. Также в курсе рассматриваются изменения, включенные в стандарт C++14 и C++17. Средства стандарта С++11-14-17 для создания многопоточных приложений вынесены в отдельный курс – C23 и базируются на знаниях, полученных в курсе С22.
Знания и умения, полученные в результате обучения
После окончания обучения программист сможет:
- повысить эффективность работы программы за счет использования семантики перемещения (move semantics);
- уменьшать количество дублируемого кода посредством семантики продвижения (forwarding);
- увеличивать гибкость программ за счет использования шаблонов с переменным числом параметров (variadic templates);
- применять для поддержки локальных действий лямбда функции;
- а также использовать другие удобные и полезные новшества, появившиеся в С++.
Курсы, в освоении которых помогут приобретенные знания
17 900 ₽
Расчёт стоимости с учётом возможных скидок
21 900 ₽
Скидки предоставляются в зависимости от количества слушателей,
суммы договора и других условий, оговариваемых с Заказчиком.
Расчёт стоимости с учётом возможных скидок представлен как справочная информация.
Фактический размер скидки может несколько отличаться из-за округления значения суммы.
Внимательно ознакомьтесь с условиями действующих
акций и скидкок...
Начальные требования
- Уверенное манипулирование классами;
- Понимание механизмов, которые неявно реализует компилятор при действиях с объектами;
- Владение приемами обобщенного программирования (templates);
- Знание контейнеров, обобщенных алгоритмов и предикатов STL.
Тематический план
Тема 1. Введение в стандарт ISO/IEC 14882:2011.
- Необходимость нововведений языка С++.
- Преемственность стандарта С++11 от библиотеки Boost.
Тема 2. Нововведения в ядре языка С++
- Новые типы.
- Расширение возможностей компилятора по определению типа.
- Range based for.
- Выражения, вычисляемые на этапе компиляции.
Тема 3. Расширение функциональности стандартной библиотеки
- Новые глобальные функции.
- Универсальная инициализация.
- Конструирование «по месту».
Тема 4. Лямбда выражения
- Локальные функции.
- Удобство для программиста.
Тема 5. Нововведения в классах
- Инициализация переменных класса.
- Автоматическая генерация компилятором методов класса.
- Изменения в инициализации производных классов.
Тема 6. rvalue reference и семантика перемещения
- Понятие rvalue reference.
- Перемещающие операции.
- Семантика перемещения при наследовании.
- Семантика перемещения при внедрении.
Тема 7. Семантика продвижения (forward)
- Использование T&& в шаблонах.
- Шаблон std::forward.
Тема 8. Регулярные выражения.
- Назначение регулярных выражений.
- Синтаксис регулярных выражений.
- Средства, предоставляемые стандартной библиотекой для использования регулярных выражений.
Тема 9. Смарт-указатели. Идиома RAII.
- Идиома RAII.
- Класс std::unique_ptr.
- Класс std::shared_ptr.
- Класс std::weak_ptr.
Тема 10. Шаблоны с переменным числом параметров.
- Понятие variadic template.
- Реализация variadic template функции.
- Реализация variadic template класса.
Тема 11. Шаблоны std::tuple, std::function, std::mem_fn, std::bind.
- Шаблон std::tuple.
- Шаблон std::function.
- Шаблон std::mem_fn.
- Шаблон std::bind.