Каков тип шаблонной лямбды?C++

Программы на C++. Форум разработчиков
Anonymous
Каков тип шаблонной лямбды?

Сообщение Anonymous »

Следующий код пытается создать шаблон лямбда-выражения и передать его вызывающей его функции. Однако компиляция завершается неудачей, поскольку тип аргумента лямбда неправильный.
#include

void foo(std::function&lambda) {
lambda.template operator()();
}

int main() {
auto f = []() {};
foo(f);
}

Как определить тип аргумента, который получает шаблонную лямбду?
Использование auto работает, но мне нужен явный тип (чтобы я мог изменить foo, чтобы он возвращал все, что возвращает лямбда).
void foo(auto &lambda) { // Works but not what I want

Я пробовал, но не компилируется:
template
void foo(std::function&lambda) {


Подробнее здесь: https://stackoverflow.com/questions/787 ... ted-lambda

Вернуться в «C++»