19 июля
Поиск Кёнига

Поиск Кёнига в языке C++ — это набор правил для поиска неквалифицированных (без оператора разрешения области видимости ::) имён функций и операторов. По-другому он называется поиском, зависящим от аргументов, по-английски — argument-dependent lookup (ADL), Koenig lookup.

ADL в упрощённой формулировке означает, что при поиске имени функции компилятор будет рассматривать не только то пространство имён, в котором она находится, но ещё и пространства имён, которые содержат типы аргументов этой функции. В отличие от перегрузки функций, ADL — особенность вызова функции, а не её объявления [Дьюхерст07, 96—97].

Причины появления

Герб Саттер пишет [Саттер05, 118]:

«Причина [...] заключается в том, чтобы обеспечить коду, использующему объект x типа X, возможность работать с частью его интерфейса, состоящей из функций, не являющихся членами (например, инструкция cout << x использует оператор operator<<, который не является членом класса X) так же легко, как и функции-члены (например, вызов x.f() не требует выполнения специального поиска, поскольку очевидно, что поиск f выполняется в области видимости X)».

Попробуем разобраться.

Читать далее →
План курса по языку C++

Бесплатный видеокурс по языку C++ «dynamic_pointer_cast»

Для кого?

Для тех, кто хочет начать с основ, но уже имеет опыт работы с другим языком, знает основы алгоритмизации (понимать, что такое переменные, ветвления, циклы, функции) и разбирается в системах счисления. А ещё вы можете сами установить среду и скомпилировать программу.

Курс записывается профессиональным преподавателем. Каждая тема разбирается подробно, задания — на канале. Вы получите представление о разных стилях написания кода, узнаете, как писать производительные и поддерживаемые приложения.

Ссылка на Youtube: youtube.com/

Ссылка на канал: dynamic_pointer_cast

Репозиторий: github.com/Dyzzet/dynamic_pointer_cast

Я в телеграме: @dyzzet.

Бесплатный набор

Для пяти прошедших отбор человек предлагаю бесплатную обратную связь, разбор выполненных заданий и выполнение небольших проектов. Общение — в закрытой группе в телеграме.

Примерные темы видео

  1. Hello, world. Типы (диапазоны, внутреннее устройство). Явные и неявные преобразования.
  2. Ввод и вывод.
  3. Операторы. Управляющие конструкции. Область видимости.
  4. Массивы и указатели. Ссылки.
  5. Функции. Перегрузка функций и операторов.
  6. Классы памяти.
  7. Строки.
  8. Структуры, битовые поля, объединения.
  9. Файлы.
  10. Препроцессор. Технические детали: компиляция, компоновка, оптимизация.
  11. Пространства имён. ADL.
  12. Классы и объекты. Правило трёх, пяти, нуля.
  13. Обработка исключений. RAII.
  14. Шаблоны. SFINAE. CRTP.
  15. Наследование и полиморфизм. RTTI
  16. Умные указатели.
  17. Контейнеры, алгоритмы, итераторы стандартной библиотеки. BOOST.
  18. Основы многопоточности.
  19. Важные нововведения в новых стандартах (в нескольких частях).
  20. Популярные идиомы, проектирование программ на C++.
4
3 2 1
© MMXIMMXX
Светлая тема / тёмная тема