Развернуть
- Two-phase translation.
- Linker errors.
- Inclusion model.
- Precompiled headers.
- Default template arguments.
inline.
static_assert.
- Nontype function template parameters.
- Nontype class template parameters.
- Alias declaration.
Развернуть
- Motivation for templates.
- How it work? Instantiation.
- Template argument deduction from a function call.
- Class templates.
- Function templates specialization.
- Class templates specialization.
- Member templates.
- Traits classes.
- Policy classes.
- Functors from
<functional>. std::bind.
- Lambda-expression.
- SFINAE.
- Iterator implementation until and since C++17.
Развернуть
- Принцип разделения интерфейса (ISP).
- SOLID.
- Проектирование для задачи линейной аппроксимации набора точек.
Развернуть
- Графическая нотация для отношений.
- Пример: проектирование программы форматирования текста.
- Принцип подстановки Лискоу (LSP).
- Принцип инверсии зависимостей (DIP).
Развернуть
- Наследование.
- Композиция. Выбор между композицией и наследованием.
- Агрегация. Разница между композицией и агрегацией.
- Ассоциация.
- Пример замены композиции на ассоциацию.
- Принцип открытия-закрытия (OCP).
- Как вносить изменения, не нарушая принцип OCP? Выделение абстракции.
Развернуть
- Общие требования к классам (декомпозиция, модульная композиция, модульная понятность, модульная непрерывность, модульная защищённость).
- Простая и незамысловатая реализация программы вычисления медиан.
- Реализация с одним большим классом.
- Принцип одной зоны ответственности (Single Responsibility Principle, SRP).
- Разнесение зон ответственности через структуры данных. Функциональный подход.
- Разделение вычисления медиан на классы Parser и MediansMedian.
- Альтернативное разделение на классы: Parser, ParserClient и MediansMedian. «Активные» и «пассивные» классы.
Развернуть
- Abnormal program termination.
- Return error codes.
- Macro
errno.
try/catch/throw.
- Using objects as exceptions.
- Exception specifications.
- Unwinding stack.
- More exception features.
RAII.
- Exceptions in constructors.
- Best practices.
Развернуть
- Copying items from containers to containers.
- Sorting containers.
- Transforming items in containers.
- Finding items.
- Locating patterns in strings with
std::search.
- Dictionary merging tool.
- Fill and generate containers.
- Checks by predicate.
- Functor.
Развернуть
std::list.
std::forward_list.
std::map.
std::multimap.
std::set.
std::unordered_map.
std::unordered_multimap.
std::unordered_set.
- Erase-remove idiom on
std::vector.
- Filtering duplicates.
- Fast or safe way to access
std::array or std::vector.
- Word frequency counter.
Развернуть
- Стандартные потоки ввода / вывода (
standard input / output streams).
- Манипуляторы (
manipulators).
- Файловый поток (
std::fstream).
- Строковый поток (
std::stringstream).
std::string.
- Итераторы (
iterators).
auto & range-based for-loop.
Действия