Mintha ez a cucc két dolgot csinálna kombinálva: egyrészt, a [ ] operátorban bekapcsolja a túlindexelés-ellenőrzést (amúgy nem emlékszem, hogy indexelsz, fixen 1-től (Fortran), 0-tól (C), vagy megadható (Algol)), és elvégez egy kivételkezelést, mintha C++-ban csinálnál egy array class-t
template<typename T> struct array{
T* data;
size_t n;
...
T& operator[](size_t k, bool safe=false){
if(safe && k > n-1 ) throw(...);
return data[n];
}
..
}
és ezen kívül kezelnéd a főprogramban a kivételt,
array<char> anArray(127);
try{
... anArray[m] ...;
} catch(...) goto safelabel;
...
A kérdésem csak az, hogy nem érdemes-e a két funkciót különválasztani? Kivételkezelésre máskor is szükség lehet (pl. file-műveleteknél, memóriafoglalásnál).