Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »anti-freak« (11.08.2015, 19:45)
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Batzer« (09.08.2014, 02:49)
Welche Typedefs findest du denn unsinnig?
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 |
template <typename T> int sgn(T val) { return (T(0) < val) - (val < T(0)); } template <typename T> inline T round(T num) { return sgn(num) * std::floor(std::abs(static_cast<double>(num)) + 0.5); } |
ich hatte das damals alles als Template, hat sich aber in gewissen Dingen als eher unpraktisch herausgestellt, deswegen gehe ich jetzt diesen Weg.
Damit ich diesen ganzen redundanten Code aus den Point(3D) Klassen heraus bekomme, wäre vom Prinzip her, die +=, -=,... Operatoren als freie Funktion zu deklarieren. Hätte das denn irgendwelche Nachteile (außer das ich nicht direkt auf die Member zugreifen könnte)? Oder gäbe es einen anderen Weg?
ich hatte das damals alles als Template, hat sich aber in gewissen Dingen als eher unpraktisch herausgestellt, deswegen gehe ich jetzt diesen Weg.
Mich würde interessieren an welcher stelle sich das als unpraktisch herausgestellt hat.
Damit ich diesen ganzen redundanten Code aus den Point(3D) Klassen heraus bekomme, wäre vom Prinzip her, die +=, -=,... Operatoren als freie Funktion zu deklarieren. Hätte das denn irgendwelche Nachteile (außer das ich nicht direkt auf die Member zugreifen könnte)? Oder gäbe es einen anderen Weg?
Also die Diskussion die Operatoren als freie Funktion oder an die Klasse gebunden hatte wir hier schon mal, mit Keinem Klaren Ergebnis (meiner Meinung nach).
Wie gesagt mein Weg wäre alles in eine Template Klasse packen. Vielleicht mal hier spicken bei der SFML.
Gruß Koschi
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »anti-freak« (10.08.2014, 18:00)
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <include/sigslot/signal.h> #include <include/sigslot/receiver.h> class Foo : public sl::sigslot::Receiver { public: Foo() : Receiver() {} void onEmit(int x, float y) { m_X = x; m_Y = y; } int m_X = 0; int m_Y = 0.0f; }; int main() { Foo foo; sl::sigslot::signal<int, float> sig; sig.connect(&foo, &Foo::onEmit); sig(3, 4.5f); // alternativ sig.emit } |
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »anti-freak« (11.08.2015, 19:50)
Werbeanzeige