Dlaczego ten kod nie kompiluje się?
#include <map>
int main()
{
int c = 2;
std::map<char, int (*)(int, int)> funcs;
funcs['A'] = [c](int a, int b) -> int {
return a + b + c;
};
funcs['A'](2, 9);
return 0;
}
błąd jest w 9 linijce, jeśli nie tak to jak przechwytywać zmienne w wyrażeniach lambda które są w mapie?
błąd:
main.cpp: In function ‘int main()’:
main.cpp:9:16: error: cannot convert ‘main()::’ to ‘std::map::mapped_type {aka int (*)(int, int)}’ in assignment
funcs['A'] = [c](int a, int b) -> int {