Jak mogę zamienić poniższą funkcję w typedef?C++ 11 definiowanie przechwytywania typu funkcji przez odniesienie
auto fn = [&] (int x) { doSomething(x, 3); }
Jak mogę zamienić poniższą funkcję w typedef?C++ 11 definiowanie przechwytywania typu funkcji przez odniesienie
auto fn = [&] (int x) { doSomething(x, 3); }
Jak o
using my_function_type = std::function<void(int)>;
VS2012 nie działa! – linquize
@linquize Następnie użyj 'typedef'. –
Można użyć decltype
aby uzyskać typ dokładny:
auto fn = [&] (int x) { doSomething(x, 3); };
using lambda_type = decltype(fn);
Ale jeśli po prostu chcesz wiedzieć zgodną, bardziej ogólny typ , powiedzmy, że przekazując lambdę jako argument do innej funkcji, możesz użyć std::function<void(int)>
(jak Jo achim wzmianki).
typedef std::function<void(int)> my_function_type;
Works w VS2012
czyni tę pomoc http://stackoverflow.com/questions/4295432/typedef-function-pointer? – Chemistpp