15.10.2019. Лекция № 7. Приведение типов.

Развернуть

  1. static_cast.
  2. dynamic_cast.
  3. const_cast.
  4. reinterpret_cast.
  5. typeid.
  6. move & noexcept.
  7. constexpr.
  8. constexpr-if.

08.10.2019. Лекция № 6. Вариативные шаблоны

Развернуть

  1. new & delete expressions.
  2. new & delete operators.
  3. Placement new.
  4. Variadic template emulation.
  5. Ellipsis operator.
  6. Template parameter pack.
  7. Pack expansion.
  8. Variadic & non-variadic templates overloading.
  9. Counting arguments.
  10. Expansion without recursion.
  11. Fold expressions.
  12. Tuple.

01.10.2019. Лекция № 5. Прямая передача

Развернуть

  1. decltype.
  2. std::move.
  3. std::forward.
  4. Universal reference vs rvalue reference.
  5. Reference collapsing.
  6. Perfect forwarding.

24.09.2019. Лекция № 4. Черные ящики

Развернуть

  1. Copy constructor.
  2. Move constructor.
  3. Simple assignment operator.
  4. Implicit members.
  5. Operator overloading.
  6. keyword: explicit.

17.09.2019. Лекция № 3. Вывод типов

Развернуть

  1. Rvalue-reference.
  2. Template type deduction.
  3. Three cases of type deduction.
  4. Array arguments.
  5. Function arguments.
  6. auto type deduction.
  7. Uniform initialization.
  8. std::initializer_list.

10.09.2019. Лекция № 2. Шаблоны

Развернуть

  1. Two-phase translation.
  2. Linker errors.
  3. Inclusion model.
  4. Precompiled headers.
  5. Default template arguments.
  6. inline.
  7. static_assert.
  8. Nontype function template parameters.
  9. Nontype class template parameters.
  10. Alias declaration.

03.09.2019. Лекция №1. Шаблоны

Развернуть

  1. Motivation for templates.
  2. How it work? Instantiation.
  3. Template argument deduction from a function call.
  4. Class templates.
  5. Function templates specialization.
  6. Class templates specialization.
  7. Member templates.
  8. Traits classes.
  9. Policy classes.
  10. Functors from <functional>. std::bind.
  11. Lambda-expression.
  12. SFINAE.
  13. Iterator implementation until and since C++17.

13.05.2019. Лекция № 12. Принцип разделения интерфейса.

Развернуть

  1. Принцип разделения интерфейса (ISP).
  2. SOLID.
  3. Проектирование для задачи линейной аппроксимации набора точек.

06.05.2019. Лекция № 11. Графическая нотация. Принципы LSP и DIP.

Развернуть

  1. Графическая нотация для отношений.
  2. Пример: проектирование программы форматирования текста.
  3. Принцип подстановки Лискоу (LSP).
  4. Принцип инверсии зависимостей (DIP).

15.04.2019. Лекция №10. Отношения между классами. Принцип открытия-закрытия.

Развернуть

  1. Наследование.
  2. Композиция. Выбор между композицией и наследованием.
  3. Агрегация. Разница между композицией и агрегацией.
  4. Ассоциация.
  5. Пример замены композиции на ассоциацию.
  6. Принцип открытия-закрытия (OCP).
  7. Как вносить изменения, не нарушая принцип OCP? Выделение абстракции.

Действия