Lambda выражения
Функиональный объект (функтор) — конструкция, позволяющая использовать объект как функцию. В C++ функтор для объявления функтора достаточно переопределить operator()
#include <iostream>
class Clamp
{
public:
int operator() (int Value, int Min, int Max) const
{
return Value < Min ? Min : Value < Max ? Value : Max;
}
};
int main()
{
Clamp clamp;
std::cout<< clamp(40, 0, 30) << std::endl; // 30
std::cout<< clamp(-1, 0, 30) << std::endl; // 0
std::cout<< clamp(15, 0, 30) << std::endl; // 15
}
Предикат — подмножество функторов, в которых тип возвращаемого значения bool
Анонимная функция lambda — это краткая форма записи анонимных функторов
Last updated
Was this helpful?