KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
A function named test takes std::function<> as its parameter. template<typename R, typename ...A> void test(std::function<R(A...)> f) { // ... } But, if I do the following: void foo(int n) { /* ... */ } // ... test(foo); Compiler(gcc 4.6.1) says no matching function for call to test(void (&)(int)) . To make the last line test(foo) compiles and works properly, how can I modify the test() function? In test() function, I need f with type of std::function<> . I mean, is there any template tricks to let compiler determine the signature of function( foo in example), and convert it to std::function<void(int)> automatically? EDIT I want to make this work for lambdas (both stateful and stateless) as well.
Tags (comma-separated)
Save Edits
Cancel