Originaltext:
 
//-------------------------------------------------------------------
//       op []
//
template<typename T, int N>
T& FixedArray<T,N>::operator [] ( int aIndex )
{
  if ( aIndex < 0 ||
aIndex >= N )
  {
    FixedArrayIndexError e;
    e.mAktIndex =
aIndex;
    e.mMaxIndex = N;
    throw e;
  }
  return mWert[ aIndex ];
} // op []
 
 
Korrekt muss es heißen:
 
//-------------------------------------------------------------------
//       op []
//
template<typename T, int N>
T& FixedArray<T,N>::operator [] ( int aIndex )
{
  if ( aIndex < 0 ||
aIndex >= N )
  {
    FixedArrayIndexError e;
    e.mAktIndex =
aIndex;
    e.mMaxIndex = N-1;
    throw e;
  }
  return mWert[ aIndex ];
} // op []
 
 
Anmerkungen:
Ein kleines Problem, das im Buch nicht behandelt wird, ist die
Abfrage auf ungültige Instanziierungen. Schreibt man z.B.
 
FixedArray<int,0> fa;
 
 
führt dies zwar beim ersten Zugriff zum Werfen der Ausnahme FixedArrayIndexError, das Problem
liegt jedoch bereits in der Instanziierung mit der (ungültigen) Feldgröße 0.
Man könnte die Korrektheit für N zwar bei jedem Zugriff abfragen, dies beeinträchtigt
jedoch die Laufzeit und ist in der Praxis unnötig. 
Es gibt fortgeschrittene Techniken im Zusammenhang mit Schablonen,
die es erlauben, die Korrektheit von N (also im Wesentlichen einen Wert größer
0) zur Übersetzungszeit zu prüfen. Die Anweisung 
 
FixedArray<int,0> fa; 
// produziert Übersetzungsfehler!
 
führt dann zu einem Fehler bei der Übersetzung, wohingegen  
 
FixedArray<int,0> fa; 
// OK
 
korrekt übersetzt wird. 
Ich hoffe, diese Technik in der Fortgeschrittenen
Kunst der Programmierung mit C++ vorstellen zu können. Derzeit funktioniert
sie nicht mit den üblichen Compilern.