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

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

21

21.09.2015, 11:05

Das ist ja alles schön und gut. Ist nur hier gar nicht der Anwendungsfall. Hier soll eine Kopie von dem Pointer gespeichert werden, auf dem später dann offensichtlich noch beliebig operiert wird - also das genaue Gegenteil von einer Funktion...

Aber gut zu wissen, das der aktuelle Stuhl mir da zustimmt, das da ein unique_ptr nicht passt:
"Guideline: Express that a function will store and share ownership of a heap object using a by-value shared_ptr parameter."

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

22

21.09.2015, 11:18

Du musst allerdings noch zwischen kennen und besitzen unterscheiden. Wenn einer besitzt und mehrere kennen, dann unique_ptr + raw. Wenn mehrere besitzen, dann shared_ptr. Ist doch eigentlich ganz einfach und durchaus sinnig finde ich. Shared_ptr haben auch auch so ihre Nachteile gegnüber unique_ptr, gerade, wenn du etwas komplexere Strukturen hast.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

23

21.09.2015, 11:21

Das ist ja alles schön und gut. Ist nur hier gar nicht der Anwendungsfall. Hier soll eine Kopie von dem Pointer gespeichert werden, auf dem später dann offensichtlich noch beliebig operiert wird - also das genaue Gegenteil von einer Funktion...

Aber gut zu wissen, das der aktuelle Stuhl mir da zustimmt, das da ein unique_ptr nicht passt:
"Guideline: Express that a function will store and share ownership of a heap object using a by-value shared_ptr parameter."

Wo genau meinst du im Anwendungsfall hier die Situation einer Shared Ownership zu erkennen?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (21.09.2015, 11:37)


H5::

Treue Seele

Beiträge: 368

Wohnort: Kiel

  • Private Nachricht senden

24

21.09.2015, 14:02

Wenn einer besitzt und mehrere kennen, dann unique_ptr + raw.
Wäre die Wahl hierbei nicht der weak_ptr?
:love: := Go;

25

21.09.2015, 14:03

weak_ptr gibt es nur in Kombination mir shared_ptr.

H5::

Treue Seele

Beiträge: 368

Wohnort: Kiel

  • Private Nachricht senden

26

21.09.2015, 14:07

das ist mir bewusst.
:love: := Go;

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

27

21.09.2015, 14:09

Wenn es nur einen Besitzer gibt, verwendet man unique_ptr und nicht shared_ptr... ;)

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

28

21.09.2015, 14:12

Wenn es nur einen Besitzer gibt, verwendet man unique_ptr und nicht shared_ptr... ;)


Genau so habe ich es auch verstanden. Weak_Ptr sind z.B. dafür da, zyklische shared_ptr konstrukte sauber auflösen lassen zu können.

H5::

Treue Seele

Beiträge: 368

Wohnort: Kiel

  • Private Nachricht senden

29

21.09.2015, 14:12

Mir ging es um das Kennen.
:love: := Go;

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

30

21.09.2015, 14:14

Wenn es einen Besitzer gibt, verwendet man unique_ptr und rohe Zeiger bzw. Referenzen für "das Kennen" und nicht shared_ptr und weak_ptr.

Werbeanzeige