Каков тип шаблонной лямбды?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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