我有一个像下面的功能
void functionA(unordered_map<string, classA*>* arg1);
我需要传递
unordered_map<string, shared_ptr<classA>>
我如何将带有shared_ptr的容器传递给接收原始指针容器的函数?我在这里使用C ++ 0x。
谢谢
最佳答案
如您所问,此功能的模板如下所示:
template <typename MAP_TYPE>
void functionA(const MAP_TYPE& arg1)
{
// Use arg1 here
}
您可以使用指针和/或根据需要将其设为非常量。只要传入的映射使用兼容的键类型和某种指向正确类型的指针作为值,它就应该编译并运行。指针是本机指针还是智能指针,可能不会有所不同,具体取决于您在函数实现中使用它的方式。