friend + namespace
-
Danke und tschö
-
wenn ich den rückgabetyp von fun auf int wähle, kompiliert es anstandslos
Der Rückgabetyp von
foo some::fun(const bar& t)ist foo aber nicht int. Du gibts aber mit t.member einen int zurück!
-
Keksman schrieb:
wenn ich den rückgabetyp von fun auf int wähle, kompiliert es anstandslos
Der Rückgabetyp von
foo some::fun(const bar& t)ist foo aber nicht int. Du gibts aber mit t.member einen int zurück!
Aber int kann implizit in einen foo umgewandelt werden.
-
bumerangtyp schrieb:
Aber int kann implizit in einen foo umgewandelt werden.
ARgg. Sorry ich wollte eigentlich nur helfen.
-
camper schrieb:
andere Möglichkeiten
friend foo (::some::fun(const bar&));Huch?
Nichtfriend foo (::some::fun)(const bar&);?
-
hustbaer schrieb:
camper schrieb:
andere Möglichkeiten
friend foo (::some::fun(const bar&));Huch?
Nichtfriend foo (::some::fun)(const bar&);?
so geht es auch.
-
Seit wann kann man da denn Klammern hinsetzen? Das ist doch keine expression. Gibts dafuer irgendwo eine spezielle Regel?
-
Ich dachte mir halt, wenns bei
typedefso geht, wieso sollte es dann beifriendnicht gehen?typedef int (*FunctionPtr)();Die Schreibweise von camper kannte ich aber auch noch nicht.
Funktionsnamen klammern ist auch eine gute Möglichkeit um die Auswertung als Function-Style-Makro zu verhindern:
#define max(a, b) ((a) > (b) ? (a) : (b)) //int x = std::max(foo(), bar()); int x = (std::max)(foo(), bar());
-
Kellerautomat schrieb:
Seit wann kann man da denn Klammern hinsetzen? Das ist doch keine expression. Gibts dafuer irgendwo eine spezielle Regel?
Du kannst vieles in Klammern setzen.
int(a);Solltest du kennen, oder?
Lässt sich auf
§8.3/4 schrieb:
In a declaration
T DwhereDhas the form
( D1 )
the type of the contained declarator-id is the same as that of the contained declarator-id in the declaration
T D1
Parentheses do not alter the type of the embedded declarator-id, but they can alter the binding of complex declarators.zurückführen.
-
Arcoth schrieb:
Du kannst vieles in Klammern setzen.
int(a);Solltest du kennen, oder?
Noe. Bzw, jetzt schon. Wasn Mist.