Развернуть
- 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
.
Действия