Код: Выделить всё
static int frob;
int& foo();
template
auto bar(F f)
{
return f();
}
int& foo()
{
return bar([&](){
return frob;
});
// int* p;
// bar([&](){
// p = &frob;
// });
// return *p;
}
Код: Выделить всё
error: cannot bind non-const lvalue reference of type ‘int&’ to an rvalue of type ‘int’
Я немного немного Смущен ошибкой, так что в первую очередь вопрос, почему я в первую очередь получу ошибку (и во -вторых, как я могу обойти ее, все еще выводя результат из лямбды через оператор возврата).
Подробнее здесь: https://stackoverflow.com/questions/794 ... rom-lambda
Мобильная версия