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

标签 c++ templates boost

我尝试使用带有键的 boost 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

How do you understand dependent names in C++

关于c++ - 模板变量作为 unordered_map 键,迭代器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19175428/

相关文章:

memory - boost::property_tree::ptree 的内存开销是多少

c++ - Boost async_accept 导致 'access violation' - 错误

c++ - x!=x 是实现 std::isnan() 的合法方式吗

c++ - 无法设置本地 C++ 开发环境

c++ - union 中的通用结构

php - 有什么好的方法可以将后台代码与 HTML 显示代码分开?

c++ - 为枚举参数化的模板

c++ - 将模板类型与不带尖括号的默认类型一起使用

c++ - c++中的编译错误是什么?

c++ - 使用 MTL/Boost 库 Mac 终端 C++