Listing 3

class Record
{
public:
  const Field  operator [](unsigned char index) const
  {
    return operator [](static_cast<unsigned int>(index));
  }
  const Field  operator [](signed char index) const;
  const Field  operator [](unsigned short index) const;
  const Field  operator [](signed short index) const;
  const Field  operator [](unsigned int index) const;
  const Field  operator [](signed int index) const;
  const Field  operator [](unsigned long index) const;
  const Field  operator [](signed long index) const;
#if Visual C++ 6 or Intel compiler in VC6-compatibility
  const Field  operator [](unsigned __int32 index) const;
  const Field  operator [](signed __int32 index) const;
#endif
#if 64-bit integer supported?
  const Field  operator [](uint64_t const &index) const;
  const Field  operator [](sint64_t const &index) const;
#endif
  . . .