ADL und Rückgabewerte
-
Hm, wie wärs dann mit:
[..]Ist viel langsamer. Wenn du dann noch das Objekt an ein Funktionstemplate übergibst (wie
std::copy_ifo.ä.), wird es deutlich lahmer, weil ständig der Umweg überfunctiongemacht wird.
-
Arcoth schrieb:
Ist viel langsamer. Wenn du dann noch das Objekt an ein Funktionstemplate übergibst (wie
std::copy_ifo.ä.), wird es deutlich lahmer, weil ständig der Umweg überfunctiongemacht wird.Hm, Ok.
Aber eigentlich ist ein Lambda ja auch nur Syntax Sugar weil man sich ja genausogut (und trivial) immer einen Functor mit der selben Funktionalität bauen kann.
Also braucht man
autoeigentlich nur dann zwingend (= für nicht-Syntax Sugar) wenn man wiederum Syntax Sugar (nämlich ein Lambda) benutzen will. Somit wäreautowiederum selbst nur Syntax Sugar.Oder?
-
Ne, genauso trivial garantiert nicht. Lambdas sind einfach irre sexy.
Boost.Lambda ist auch nett.
Im Prinzip hast du aber recht.
-
Arcoth schrieb:
Ne, genauso trivial garantiert nicht. Lambdas sind einfach irre sexy.
Ja, das auf jeden Fall.
Arcoth schrieb:
Im Prinzip hast du aber recht.
Die eigentliche Frage wäre halt, wo Syntax Sugar anfängt bzw. aufhört.
Weil wenn man so argumentiert könnte man ja auch sagen dass templates auch nur Syntax Sugar sind und das ist dann glaube ich nicht mehr sinnvoll...
-
happystudent schrieb:
Weil wenn man so argumentiert könnte man ja auch sagen dass templates auch nur Syntax Sugar sind und das ist dann glaube ich nicht mehr sinnvoll...
Fast alle C++-Features sind Syntax Sugar. Bis auf RAII, SFINAE, constexpr und decltype kann man alles in C nachimplementieren.
Und alles in C in Assembler. Und alles Assembler direkt als purer Machinencode.
Aller Programmiersprachen sind Syntax Sugar, das ist der Sinn von ihnen!
-
Nathan schrieb:
Fast alle C++-Features sind Syntax Sugar. Bis auf RAII, SFINAE, constexpr und decltype kann man alles in C nachimplementieren.
Und alles in C in Assembler. Und alles Assembler direkt als purer Machinencode.
Aller Programmiersprachen sind Syntax Sugar, das ist der Sinn von ihnen!Ja, schon

Aber dann ist der Begriff Syntax Sugar halt auch völlig sinnentleert und sagt letztendlich gar nichts aus.
-
Die einzigen Möglichkeiten von einem Ausdruck* auf einen Typ zu kommen sind in C++03 folgende:
- Der Ausdruck ist ein konstanter Ausdruck (Irgendein Zeiger, Integral oder Enumerator) und wird an ein Template als non-type-Argument übergeben.
- Es wird
sizeofauf den Ausdruck angewandt - und dann Schritt 1.
Durch den zweiten Punkt wird
BOOST_TYPEOFrealisiert.Es ist also leider unmöglich so etwas einfach und portabel in C++03 umzusetzen.
* Damit ist eine expression gemeint wie sie in der Standardgrammatik definiert ist.
-
Arcoth, was ist mit deinem Post über Karsten Ahnert geschehen?

-
Forentroll schrieb:
Arcoth, was ist mit deinem Post über Karsten Ahnert geschehen?

Spionagen werden vernichtet.
-
Der ist im anderen Thread.