Извините за мою неправильную терминологию.
У меня есть кусок кода, который возвращает указатель NULL, если запись не существует:
ObjectType * MyClass::FindObjectType( const char * objectTypeName )
{
if ( objectTypeMap.find( objectTypeName ) == objectTypeMap.end() )
{
Msg( "\n[C++ ERROR] No object type: %s", objectTypeName );
return NULL;
}
else
return &objectTypeMap[ objectTypeName ];
}
Я хочу сделать то же самое, но на этот раз вернуть объект вместо простого указателя. Следующий код не дает мне никаких ошибок компилятора (что меня удивляет):
ObjectType MyClass::FindObjectType( const char * objectTypeName )
{
if ( objectTypeMap.find( objectTypeName ) == objectTypeMap.end() )
{
Msg( "\n[C++ ERROR] No object type: %s", objectTypeName );
}
else
return objectTypeMap[ objectTypeName ];
}
С помощью указателя я могу проверить, не была ли запись такой:
if ( FindObjectType( objectType ) == NULL )
//Do something
Как выполнить эквивалентную проверку с возвращаемым объектом?