Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Reihenfolge Member-Variablen im Speicher

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.03.2005, 09:00 Uhr
stephanw
localhorst


Hi,

wie sicher ist folgende Implementierung eine []-Operators für einen Vector ?
C++:
class SbVector3f {
public:
   float x,y,z;
...
   inline const float &operator[](const int i) {
      return *(&x+i);
   };

bzw. mit einem struct statt class { public: ?

Wenn ich den Standard richtig verstehe (§ 9.2.12 und § 11.1.2) , dann sollte man sich das so verkneifen. Seht Ihr das auch so ?
--
Reden ist Schweigen und Silber ist Gold.

Dieser Post wurde am 16.03.2005 um 09:01 Uhr von stephanw editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.03.2005, 09:02 Uhr
stephanw
localhorst


sorry, falscher Knopf
--
Reden ist Schweigen und Silber ist Gold.

Dieser Post wurde am 16.03.2005 um 09:02 Uhr von stephanw editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.03.2005, 09:15 Uhr
0xdeadbeef
Gott
(Operator)


Das sollte man sich in der Tat verkneifen, je nach endian und indentation kann das die wildesten Effekte haben.

Für sowas gibts Arrays.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.03.2005, 19:13 Uhr
ao

(Operator)



Zitat von 0xdeadbeef:
Das sollte man sich in der Tat verkneifen, je nach endian und indentation kann das die wildesten Effekte haben.

Das mit der indentation verstehe ich. Aber was hat Endianness damit zu tun?

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
16.03.2005, 19:49 Uhr
(un)wissender
Niveauwart


Mit Endian hat das nichts zu tun. Dem C++-Compiler ist aber nicht vorgeschrieben, wie er die Variablen anzuordnen hat. Darum ist es Glück, ob obiger Code funzt (also nicht portabel). In der Regel funzt er aber.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.03.2005, 09:59 Uhr
ao

(Operator)



Zitat von (un)wissender:
Mit Endian hat das nichts zu tun. Dem C++-Compiler ist aber nicht vorgeschrieben, wie er die Variablen anzuordnen hat. Darum ist es Glück, ob obiger Code funzt (also nicht portabel). In der Regel funzt er aber.

Das kann aber auch von Optimizer-Einstellungen abhängen, und ist damit ein beliebter Kandidat für Hilfeschreie wie "Debug-Version funzt, Release-Build stürzt ab" oder "hab ne neue Compiler-Version, seitdem läuft mein alter Sourcecode nicht mehr".

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
17.03.2005, 10:05 Uhr
(un)wissender
Niveauwart


Jupp.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: