我正在为Boost无序地图容器编写包装器方法。在boost Unordered Map中有一个方法begin(),它返回第一个元素的迭代器。实际上在我的包装器类中,我想从Begin方法返回一个std :: Unordered_map :: iterator而不是boost :: unordered_map :: iterator 。 示例代码: 模板
boost::unordered_map<key, value> m_myMap;
boost::unordered::unordered_map::iterator MyWrapper<>::Begin()
{
return m_myMap.begin();
}
在上面的代码中,我想返回std :: Unordered_map :: iterator 请帮忙
答案 0 :(得分:2)
你不能。 C ++是一种强类型语言。
你能做的最好的事情是
std::unordered_map
boost::any_iterator
或boost::any_range
)我的spidy意识告诉我你应该通过推导出的模板参数类型来获取迭代器,而不是将它们硬编码到你的算法中。
template <typename Iterator>
void foo_algo(Iterator begin, Iterator end, int some_data) {
...