int main()
{
foo modifier;
int val_to_be_modify = 0; modifier.modify([](int i){return i+1}, val_to_be_modify);
std::cout << "modified value: " << val_to_be_modify;
}
در این مثال اولین پارامتر ورودی متد modify یک لامبدا است.
خروجی:
modified value: 1
class foo
{
public:
template<typename T>
int modify(T t, int val)
{
return t(val);
}
}
بجای استفاده از lambda می توان کد زیر را استفاده کرد
class functor_t
{
public:
int operator()(int val)
{
return val+1;
}
}
int main()
{
foo modifier;
int val_to_be_modify = 0;
functor_t functor;
modifier.modify(functor, val_to_be_modify);
std::cout << "modified value: " << val_to_be_modify;
}