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?