Du bist nicht angemeldet.

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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

21

12.05.2014, 19:37

Ich kann dir sagen wo beides gleich lang lebt, und zwar sobald ich der Sprite eine rvalue Referenz übergeben möchte.

Wenn du mich fragst, ist das genau verkehrt herum gedacht. Sprachfeatures dienen dazu, gewisse Dinge auszudrücken. "Aber wenn ich Sprite als rvalue Referenz übergebe" ist imo keine sinnvolle Argumentation. Die Frage ist viel eher: Was stellt so ein Sprite genau dar und wie können wir das im Rahmen der Sprache ausdrücken. Macht es überhaupt Sinn, r-value Referenzen auf Sprites herumzureichen? r-value Referenzen sind unter gewissen Umständen das richtige Sprachmittel, um das Konzept eines Sprite auszudrücken; aber die Frage, ob Sprites das richtige Problem sind, um r-value Referenzen darauf anzuwenden, ist imo nicht zielführend – außer du bist gerade auf der Suche nach Beispielen für die Verwendung von r-value Referenzen...

Wenn ich ein Sprite habe, welches eine Textur hat die genauso lange existieren soll/braucht wie das Sprite, dann wäre es ratsam, wenn das Sprite die Lebensdauer verwaltet. Dies passiert jedoch in den wenigstens Fällen, ist aber durchaus interessant und nützlich, da es in diesem Fall Arbeit abnimmt, da man nicht selbst auf die Texture zu achten braucht.

Sprite und Textur sind aber doch offenbar entkoppelte Konzepte, wieso sollten sie sonst separate Klassen sein? Es ist halt eine Frage dessen, was genau ein Sprite in deiner Anwendung darstellen soll. Natürlich kann man ein Sprite bauen, das eine Textur besitzt. In dem Fall könnte es z.B. Sinn machen, die Textur per r-value Referenz in das Sprite zu moven um diesen Umstand explizit zu machen. Wenn man stattdessen geteilte Besitzverhältnisse haben will, würde man dagegen wohl sowas wie shared_ptr verwenden. Dies sind aber rein semantisch grundverschiedene Dinge. Je nach Kontext kann entweder das eine oder das andere oder was auch immer sonst sinnvoll sein. Aber ich kann mir gerade keinen Kontext vorstellen, in dem Sprite Objekte dynamisch entweder dem einen oder dem anderen Prinzip folgen sollten...

Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von »dot« (12.05.2014, 19:49)