KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm starting to develop applications using C++11 lambdas, and need to convert some types to function pointers. This works perfectly in GCC 4.6.0: void (* test)() = []() { puts("Test!"); }; test(); My problem is when I need to use function or method local variables within the lambda: const char * text = "test!"; void (* test)() = [&]() { puts(text); }; test(); G++ 4.6.0 gives the cast error code: main.cpp: In function 'void init(int)': main.cpp:10:2: error: cannot convert 'main(int argc, char ** argv)::<lambda()>' to 'void (*)()' in initialization If use auto , it works ok: const char * text = "Test!"; auto test = [&]() { puts(text); }; test(); My question is: how can I create a type for a lambda with [&] ? In my case, I can not use the STL std::function (because my program does not use C++ RTTI and EXCEPTIONS runtime), and It has a simple implementation of function to solve this problem?
Tags (comma-separated)
Save Edits
Cancel