В С++ можно отделить объявление и определение функций. Например, вполне нормально объявлять функцию:
int Foo(int x);
в Foo.h
и реализовать его в Foo.cpp
. Можно ли что-то сделать с лямбдами? Например, определите
std::function<int(int)> bar;
в bar.h
и реализовать его в bar.cpp
как:
std::function<int(int)> bar = [](int n)
{
if (n >= 5)
return n;
return n*(n + 1);
};
Отказ от ответственности. У меня есть опыт работы с lambdas на С#, но я не очень использовал их на С++.