Лекция 5. Функции (Программирование на C++, часть 1)

preview_player
Показать описание

Лекция №5 в курсе "Программирование на C++, часть " (осень 2018).
Преподаватель курса: Валерий Михайлович Лесин
Рекомендации по теме
Комментарии
Автор

5:11 - передача параметров в функцию
24:10 - RVO
32:30 - немного о move semantics
34:02 - перегрузка
42:05 - произвольное количество аргументов
58:10 - auto
01:00:55 - передача const& в шаблонные функции
01:05:05 - лямбда-функции
01:09:50 - каррирование функций
01:14:10 - calling conventions

igorl
Автор

Может кто-нибудь оставит ссылку на статью о соглашении о вызовах функций с хабра о которой идёт речь в конце ролика?

das.official
Автор

1:17:20 - тут очень важно уточнить, что эта конвенция (__cdecl) не работает на x64 и ARM процессорах

bezik
Автор

Интересно, нашли статью с Хабра!? Очень хотелось бы ознакомится!

remzona
Автор

Я правильно понял, что про typedef имеется ввиду схожесть с typedef old_type new_type в том, что с "простым" тайпдефом у нас вместо new_type подставляется название переменной при обьявлении, а при тайпдефе для функции мы так же определяем указатель на функцию путем замены new_type на имя? Простите за запутанное обьяснение))
55:47

illiadenysenko
Автор

1:07:39 тип лямбды вполне можно указать вручную, как std::function<void()> f_display_42 = []() { print_num(42); };
Но удобнее, несомненно, auto.

imax
Автор

52:20 - Если кто не понял. Ниже приведу примеры и "скелет".

Псевдоним базового типа:
typedef int myint

Псевдоним указателя на функцию:
typedef ret_type(*myfuncptr)(args)


Примерно так расшифровывается то, что преподаватель объясняет на доске:

Тип "указатель на функцию":
_(*_)(_)

А вот так выглядит определение псевдонима:
typedef _(*aliasname)(_)

А если представлять в "обычном" синтаксисе, то это значит:
typedef _(*_)(_) aliasname

Короче говоря, type(*)() это как int, т.е. это "тип данных" «указатель на функцию» и при typedef'e он уже зашит в синтаксисе.

LOL-nqky
Автор

на каком диалекте русского тут говорят? Обычные слова трудно понимать

wizard_still