Quote:
Originally Posted by MrSm!th
Dass obj.operator func()() nicht implizit funktionieren kann, war mir schon klar, da der () Operator auch sicherlich höhere Priorität hat als Konvertierungen (war zumindest mein Gedanke dabei).
|
operator() hat keine "Konvertierungs-Priorität". Aber laut [over.match.call] wird bei
obj() nach [over.call.object] aufgelöst, und da steht, dass nur Konvertierungsfunktionen in Zeiger bzw. Referenzen auf Funktionen (also z. B.
obj.operator void(*)() ()) neben
obj.operator()() als brauchbare Funktionen überhaupt in Betracht gezogen werden.
Quote:
Originally Posted by Raz9r
Unter Clang (OS X 10.9, Xcode 5, Apple LLVM 5.0) laufen übrigens alle 4 Fälle, wobei ich mir sicher bin, dass der erste nicht laufen sollte. Es zitiere bitte jemand den Standard und korrigiere mich!
|
Meinst du die Zuweisungsoperation (
test=obj) oder die Initialisierung (
func test=obj)?