LINUX.ORG.RU

История изменений

Исправление vertexua, (текущая версия) :

А, все, перечитал весь разговор и понял.

Короче раньше не было типа «функция». Были просто любые классы у которых перегружен оператор (). И люди делали велосипеды каждый раз когда нужно было заставить вернуть обьект, который «как функция». Это называли «функтором» (WHAT?!?) или фунциональным обьектом (уже лучше). Ну и ничего не мешало их возвращать из функции, а потом вызывать f(10), главное чтобы скомпилялось в итоге.

Теперь просто взяли и сделали нормальный тип, std::function. Он тоже попросту функциональный обьект, но зато стандартный. С бонусом что все лямбды - синтаксический сахар превращения в него.

Исходная версия vertexua, :

А, все, перечитал весь разговор и понял.

Короче раньше не было типа функции. Были просто любые классы у которых перегружен оператор (). И люди делали велосипеды каждый раз когда нужно было заставить вернуть обьект, который «как функция». Это называли «функтором» (WHAT?!?) или фунциональным обьектом (уже лучше). Ну и ничего не мешало их возвращать из функции, а потом вызывать f(10), главное чтобы скомпилялось в итоге.

Теперь просто взяли и сделали нормальный тип, std::function. Он тоже попросту функциональный обьект, но зато стандартный. С бонусом что все лямбды - синтаксический сахар превращения в него.