ok... ich seh schon... dann mach halt alles selber... nimm ein array und keinen vector und wirf die exception selber..
Ich weiß ja nicht für was genau du diesen Vektor verwenden willst aber wie gesagt wenn du z.B. was in Richtung 3D Grafik machen willst wo Performance eine Rolle spielt dann vergiss Exceptions hier. Wenn du mit falschen indices drauf zugreifst gibts einfach undefiniertes Verhalten und fertig. Überleg mal wieviele tausend Zugriffe auf irgendwelche Vektoren pro Sekunde deine fertige Anwendung haben wird und denkt dann nochmal drüber nach ob du da wirklich auch nur ein einzelnes unnötiges if drin haben willst...
vektor.x bzw. vektor.x() ist doch viel schöner und eindeutiger als vektor[0].
Das Problem damit ist aber dass du eben oft (z.B. in irgendwelchen Algorithmen) gerne über einen Index auf die Komponenten zugreifen möchtest. Natürlich kann man sich mit Hacks helfen wie z.B. sowas:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
struct vector3d
{
float x, y, z;
float operator[](int index) const { return (&x)[index]; }
float& operator[](int index) { return (&x)[index]; }
};
|
Das wird auf den meisten Compilern/Platformen funktionieren, ist im allgemeinen aber nicht definiert...
achja, was muss ich sehn, also ich mit der maus über deine liederliste fahre...
du bist doch offenbar wirkli CG tutor ...
Schon möglich