Evgenios1 Δημοσ. 11 Ιουλίου 2010 Δημοσ. 11 Ιουλίου 2010 Πως θα περασω μια εξωτερικη μεταβλητη σε "δευτεροβαθμια lambda (?)" πχ >#include <algorithm> #include <functional> void foo(std::function<void(void)> f) { throw L"not imp"; } int _tmain(int argc, _TCHAR* argv[]) { int val=0; foo([&val] { val++; [color="Red"] foo([&val] { val++; });[/color] }); return 0; } Στο κοκκινο δε μου το δεχεται. Φυσικα αν κανω καποιο αντιγραφο στη πρωτη lambda θα το περασει. κατι τετοιο >#include <algorithm> #include <functional> void foo(std::function<void(void)> f) { throw L"not imp"; } int _tmain(int argc, _TCHAR* argv[]) { int val=0; foo([&val] { val++; int tmpval = val; foo([&tmpval] { tmpval++; }); }); return 0; } Γινετε με καποιο αλλο τροπο να το περασω (εκτος του να ειναι global ή με αντιγραφο)
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.