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

1

29.06.2007, 22:38

Vektor ohne static_cast<int> ?

Hi,
im Buch "C++ für Spieleprogrammierer" heißt es, das man, wenn man die Größe eines Vektors per .size ermitteln möchte das Ergebnis in einem int casten muss, da der Rückgabetyp es sich nicht einen einfachen Integer handelt. Experimentierfreudig wie ich nun mal bin habe, habe ich es mal versucht ohne das casting und siehe da, es funktioniert!
Nun weshalb wird es empfohlen die Größe per static_cast anzugeben wenn dies auch ohne möglich ist?

Ich hoffe ihr könnt mir behilflich sein.
"Wenn es keine Milch gäbe, würde ich auf Kaffee verzichten."

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

29.06.2007, 22:54

Du musst garnicht casten. Du bekommst nur kein int zurück sondern ein Wert vom Typ std::vector< int >::size_type, dies ist ein integraler Type ohne Vorzeichen und kann also wie ein int gehandhabt werden (mit evtl. Datenverlust bei gleicher oder kleinerer Größe von int).
@D13_Dreinig

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

3

29.06.2007, 23:00

Also wenn du MSVS richtig scharf auf alle Ecken und Kanten in deinem Prog suchen lässt dann wird es zumindest eine Warnung bringen, wenn du implizit castest... ob dich das stört kannste ja selbst entscheiden :)

4

29.06.2007, 23:05

Was würdet ihr mir raten bzw. wie handhabt ihr dies?
"Wenn es keine Milch gäbe, würde ich auf Kaffee verzichten."

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

5

29.06.2007, 23:06

Kommt auf die Situation an. Wenn dus richtig machst solltest du ganz ohne Cast auskommen.
@D13_Dreinig

6

29.06.2007, 23:22

Von welchen Situationen sprichst du?
"Wenn es keine Milch gäbe, würde ich auf Kaffee verzichten."

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

7

29.06.2007, 23:44

Zitat von »"Fruchteis"«

Von welchen Situationen sprichst du?


Die Frage ist, von welcher sprichst du? :roll:
@D13_Dreinig

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

8

30.06.2007, 00:13

Also ich kann nur für mich sprechen: Ich mach an solche Stellen immer explizite casts, weil mich Warnungen nerven und ich nix davon halte, die Warnungen einfach zu unterdrücken.
Natürlich sollte man immer erstmal versuchen, mit passenden Datentypen zu arbeiten, so dass casts garnicht mehr nötig sind, aber das ist leider nicht immer möglich (Vor allem an der Schnittstelle zwischen STL und WinAPI reibt sich ständig irgendwas - mindestens DWORD vs unsigned int :roll: )

Werbeanzeige