我试图编写一个方便的函数来提供一个指向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)