gpt4 book ai didi

c++ - 类型转换指针

转载 作者:行者123 更新时间:2023-11-28 03:57:02 26 4
gpt4 key购买 nike

我使用 ptr_map 来存储不同类型的指针。

boost::ptr_map<string, any> someMap;

我在那里存储了一些模板类对象:

someMap.insert("1", new SomeClass<int>());
someMap.insert("2", new SomeClass<float>());

现在我想从 map 中获取值。这是一个带有引用的示例:

template<typename T>
T &get(const string &someKey)
{
try
{
return any_cast<EventType&>(mSignalAssociation.at(signalName));
} catch(bad_any_cast &e)
{
// Logging here
}
}

get< SomeClass<int> >("1"); // This works

但我不喜欢引用,因为我无法返回,例如,如果转换错误或对象不存在,则返回 NULL。

我如何从这张 map 中获取指针?

T *get(const string &someKey)
{
return any_cast<EventType*>(mSignalAssociation.at(signalName));
}

此构建但在转换时失败,为什么?

最佳答案

这个怎么样:

T *get(const string &someKey)
{
return &any_cast<EventType&>(mSignalAssociation.at(signalName));
}

(只是猜测)

关于c++ - 类型转换指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3132424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com