Die ISO C++ FAQ (https://isocpp.org/wiki/faq/cpp11-language-templates, "Template-Aliase") zitiert das folgende Beispiel:Alias für eine Lambda-
using P = [](double)->void; // using plus suffix return type
ich einen Fehler versucht, dies mit g ++ zu kompilieren -std = C++ 11:
error: expected type-specifier before ‘[’ token
Was sollte die richtige Syntax sein? Wenn ich
auto p = [](double)->void {};
tun bekommt p abgeleitet entweder <lambda(double)>
oder main()::<lambda(double)>
sein, je nach Umfang. Allerdings kann ich nicht dann tun
using P = <lambda(double)>;
wie auch einen Fehler gibt:
expected type-specifier before ‘<’ token
Mmmmh, das ist kaputt. – Quentin
Warum brauchen Sie einen Alias für Lambda? Was ist mit einem Funktionszeiger: using FunctionPtr = void (*) (double); –
Keine Antwort, aber 'mit P = std :: function;' würde wahrscheinlich für Sie arbeiten, da das Lambda in die std :: -Funktion umwandelbar ist. –
acraig5075