Я пытался написать функцию удобства, чтобы предоставить указатель на unordered_map, который был похоронен внутри объекта, содержащегося в другом объекте. По какой-то причине компилятор (Visual Studio 2010) заставляет меня объявлять указатель как указатель на объект const.
Код функции выглядит следующим образом: (я не хотел, чтобы у него был тип возвращаемого const
):
const ezx::iserver::strategy_map* strategy_map(const ezx::iserver::StrategyInfo* strategyInfo)
{
if (strategyInfo)
{
const ezx::iserver::strategy_map* map = &strategyInfo->strategyTVS.tagValues;
return map;
}
return NULL;
}
Объект определяется без какого-либо модификатора const:
class TagValueMsg : public EZXMsg
{
public:
strategy_map tagValues;
...
}
Этот TagValueMsg содержится как поле участника в другом классе.
class StrategyInfo : public EZXMsg
{
public:
TagValueMsg strategyTVS;
...
}
Поскольку ничто не объявлено нигде const
, я не понимаю, почему const ezx::iserver::strategy_map*
?
Поскольку ваш закрытый объект также является const
когда он передается в функцию:
strategy_map(const ezx::iserver::StrategyInfo* strategyInfo)