Ich versuche, Code zu schreiben, etwas ähnliches (Code zu Demonstrationszwecken geschrieben) auf, dies zu tun:Wrapping einen Templat-Funktionsaufruf in einem Lambda-
template <typename F, typename Args...>
inline auto runFunc(F func) -> foo
{
return foo([func](Args... args) -> std::result_of<F>::type
{
// Do something before calling func
func(args...);
// Do something after call func
});
}
I Also im Grunde ist versucht, eine Funktion zu schreiben, die eine zurückgibt Objekt, das Lambda übernimmt, das mit dem Funktionstyp "Templated" übereinstimmt. Offensichtlich funktioniert dieser Code nicht, weil ich keine Args ... definiert habe. Wie würde ich das in C++ 11 lösen?
Können Sie mehr Kontext über das, was Sie versuchen, bieten? – templatetypedef
Das '-> foo' nach' runFunc (F func) 'macht keinen Sinn. Probiere 'declltype (foo ([func] (Args ... args)' ... '))' – Czipperz
Was ist 'foo()'? Versuchst du nur, 'Func' zu dekorieren? – Barry