operator() eines structs überladen
-
Ich weiß nicht was ich falsch mache.
Ich habe ein Struct welche einen Klassenpointer und einen Methodenpointer dieser Klasse hat.
Nun möchte ich den operator() überladen.typedef void (CDBBackupPage::*F)(void) ; // Hier haben wir unsere Struktur für den Thread // Wir geben eine Klasseninstanz und einen Funktionspointer mit. struct t_data { t_data(CDBBackupPage* p, F f) : pPage(p), fPage(f) {} CDBBackupPage* pPage; F fPage; void operator () { if(pPage && fPage) (pPage->*fPage)(); } void doit() { if(pPage && fPage) (pPage->*fPage)(); } };Dann bekomme ich erst mal die Meldung (alles die Zeile der Funktionsdefinition), dass void nicht passt.
error C2544: ')' fuer Operator '()' erwartet error C2144: Syntaxfehler : Fehlendes ';' vor Typ 'void' error C2182: '()' : Ungueltige Verwendung des Typs 'void' error C2059: Syntaxfehler : ')' error C2059: Syntaxfehler : '{' error C2334: Unerwartete(s) Token vor '{'; sichtbarer Funktionsrumpf wird übersprungenWas mache ich falsch. Den Typ auf bool umzuändern bringt auch nichts.
-
void operator ()()
-
Wie wäre es mit operator()()?
-
OMG
-
sieht aus wie titten
-
meinung schrieb:
sieht aus wie titten
Passt auch irgendwie
void operator (.)(.)