Sorunun uğruna uydurma örnek:
void MyClass::MyFunction( int x ) const
{
std::cout << m_map[x] << std::endl
}
[] Operatörü sabit olmadığı için bu derlenmez.
[] Sözdizimi çok temiz göründüğü için bu talihsiz bir durumdur. Bunun yerine şöyle bir şey yapmalıyım:
void MyClass::MyFunction( int x ) const
{
MyMap iter = m_map.find(x);
std::cout << iter->second << std::endl
}
Bu her zaman beni rahatsız etti. [] Operatörü neden const değil?
operator[]
Verilen elemanın olmaması durumunda ne vermelidir ?