std::tr1::_Bind<void (*()(std::tr1::reference_wrapper<int>))(int&)>
Ich verstehe std::tr1::reference_wrapper<int>
und das Ganze ist eine Art von Funktionszeiger, die void
und nimmt int&
als Argument zurückzugibt. Aber ich kann nicht scheinen, die *() am Anfang zu folgen. Der Code wurde aus einer gdb-Sitzung herausgeschnitten, die ich vor einiger Zeit durchging.Was ist der Typ in dieser Vorlage?
Auch, was ist der Typ zu tr1 :: Funktion? Eine Funktion, die void zurückgibt und kein Argument benötigt?
0x00000001000021a1 in std::tr1::function<void()()>::operator() (this=0x7fff5fbffb98) at functional_iterate.h:865
aber dann die folgende ist ein Fehler:
template <typename T>
void f()
{
cout << "general\n";
}
template<>
void f<void()()>() // this is error
{
cout << "specific\n";
}
Sollte der Stern nicht, dass zwischen den beiden Klammern sein? – 6502
@ 6502: Nein, weil der Stern zum * Rückgabetyp * der Funktion gehört (der selbst eine Funktion ist, und für * diese * Funktion steht der Stern tatsächlich innerhalb der entsprechenden Klammern. – celtschk
@ Fanatic23: Ich war bereits dabei, das zu schreiben. Es hat nur etwas gedauert. – celtschk