Рассмотрим следующий код:
#include <iostream>
#include <functional>
using namespace std;
int main() {
auto f = [](int a = 3) {cout << a << endl; };
f(2); // OK
f(); // OK
auto g = f;
g(2); // OK
g(); // OK
function<void(int)> h = f;
h(2); // OK
h(); // Error! How to make this work?
return 0;
}
Как я могу объявить h
вести себя так же, как f
и g
?