Kann ich einen Funktionstyp schreiben, der eine Funktion zurückgibt?

Das Folgende kann nicht auf gcc und clang kompiliert werden

#include <type_traits>

int foo();

int main()
{
    using R = std::result_of_t<decltype(foo)()>; // error
}

Der Fehler auf beiden Compilern betrifft die Unzulässigkeit der Deklaration einer Funktion, die eine Funktion zurückgibt. Aber ich erkläre eine solche Funktion nicht - ich versuche nur, ihren Typ zu schreiben - da ist das, wasresult_of erwartet. Ist das wirklich noch schlecht geformt?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage