Прошу прощения, вопрос скорее всего совершенно ламерский, но с STL сталкиваюсь впервые.
Есть код:
char* packetType = "SLogin";
RegisteredEventFn fnForCall = registeredEvents[packetType];
// fnForCall == <указатель на функцию>
В таком случае всё работает как часы. А вот так нет:
char* packetType = (char*)txePacket->Attribute("type");
// packetType указывает на строку "SLogin", строка заканчивается '\0'
RegisteredEventFn fnForCall = registeredEvents[packetType];
// fnForCall == NULL
Почему во втором случае мне возвращается NULL? Ведь в оператор [] и в первом, и во втором случае передаётя указатель на строку. Притом, без разницы, является ли это указатель const char* или char* — эффект всё равно тот же.