模板变量为unordered_map键,与迭代器有关

时间:2013-10-04 07:15:36

标签: c++ templates boost

我尝试将boost unordered_map与key一起用作模板变量。

 template<typename T>
std::string CPerformanceWatcher<T>::CheckPerformance(T &sOrderID, bool bDeleteRecord)
{
        boost::unordered_map<T, int>::iterator iter;
        iter = m_OrderIDTimeValMap->find(sOrderID);
        if(iter == m_OrderIDTimeValMap->end())
        {
            return false;
        }
        return false;
}

但编译抱怨语法错误。 所以我的问题是如果我不能使用这样的迭代器?

1 个答案:

答案 0 :(得分:2)

您需要使用typename关键字解析从属名称:

typename boost::unordered_map<T, int>::iterator iter;

有关从属名称的详细信息,请参阅:

http://en.cppreference.com/w/cpp/language/dependent_name

How do you understand dependent names in C++