模板变量作为unordered_map键,迭代器问题



我尝试使用带有键的提升unordered_map作为模板变量。

 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;
}

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

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

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

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

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

您如何理解C++中的从属名称

最新更新