( rpsoft | 2020. 12. 29., k – 11:39 )

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).