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

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

11

18.12.2013, 10:56

Geht halt leider nicht immer so (z.B. bei std::unique_ptr), aber new verwendet man sowieso selten und wenn, dann niemals mehr direkt... :P

Wieso geht das nicht?
Zeig bitte mal ein Beispiel.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

12

18.12.2013, 11:02

Ok, sry, mit std::unique_ptr geht's sogar noch. Aber sobald ein Typ weder kopierbar noch moveable ist, geht es nimmer:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct blub
{
private:
  blub(const blub&) = delete;
  blub& operator =(const blub&) = delete;
public:
  blub(int x)
  {
  }
};

int main()
{
  blub p(42);  // OK
  auto p = blub(42);  // ERROR
}

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


David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

14

18.12.2013, 12:40

Wie schaut's denn mit initializer lists und uniform initialization aus? Benutzt die schon jemand intensiv? Ich konnte mich bisher jedenfalls nicht dazu durchringen. Ist auf den ersten Blick eine etwas ungewohnte Schreibweise und im Vergleich zu () oder = geht ein {} auch nicht so einfach von der Hand, finde ich (auf einer deutschen Tastatur).

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

15

18.12.2013, 21:47

aber new verwendet man sowieso selten und wenn, dann niemals mehr direkt... :P
Damit bist Du schon der zweite, der das sagt. Ich frage mich wie genau es dann läuft. Beispiele? Gerade bei Polymorphie fällt mir da kein so richtiger Weg rundrum ein.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

patrick246

Treue Seele

Beiträge: 328

Wohnort: nahe Heilbronn/BW

Beruf: TG Profil Informatik-Schüler

  • Private Nachricht senden

16

18.12.2013, 22:17

Auf den Stack legen und über ne Referenz oder über den &-Operator übergeben?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

17

18.12.2013, 22:21

Wahrscheinlich meint er std::make_shared!

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

18

18.12.2013, 22:38

Auf den Stack legen dürfte in vielen Fällen nur bedingt funktionieren. Jedenfalls in den üblichen Fällen, wo ich Objekte dynamisch anhand von Level-Files/Daten erzeuge.
make_shared und make_unique macht schon eher Sinn, ja.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

19

19.12.2013, 02:52

Da muss es ja gewisse Standards geben, die von besagten Firmen genutzt werden, oder die einfach mittlerweile so selbstverständlich sind?Vielleicht sogar auf Dokumenten zusammen gefasst?


Die Google Style Guides fuer C++ gibt es online: http://google-styleguide.googlecode.com/…nk/cppguide.xml

Der Style Guide ist jedoch relativ strikt (keine Exceptions, keine nicht-const Referenzen, etc) was nicht in allen Projekten Sinn macht.


Da ich bisher kaum C++11 features verwende wuerde mich interessieren ob es mittlerweile ueblich ist durchweg shared/unique pointer zu verwenden statt das Speichermanagement manuell zu machen. Ich fange auf der Arbeit gerade nen neues Projekt an bei dem ich auf C++11 umstellen kann.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

20

19.12.2013, 06:40

Wenn es um Besitzverhältnisse geht, dann schon smart-Pointer. Geht es nur um eine lose "Referenz", dann auch raw-Pointer.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige