#include <iostream>
typedef std::function<bool(int)> set;
using namespace std;
set singletonSet(int a) {
return [&] (int x) { return (a == x); };
}
bool contains(set s, int test) {
return s(test);
}
int main() {
auto first = singletonSet(5);
auto r1 = contains(first, 10);
auto r2 = contains(first, 5);
cout << r1 << " " << r2 << endl;
return 0;
}
ich diese 0 1
drucken erwarten aber Ergebnis ist 1 1
C++ std :: Funktion gibt unerwarteten Wert
Anfänger C++ labmda Programmierer hier so sorry im Voraus, wenn dies ein Grundfehler ist.
'[&]' erfasst durch Verweis 'a', der nach der' return' Anweisung –