使用 Visual Studio 2012 时,以下代码编译无误(T 是模板参数):
pair<map<T, int>::iterator, bool> ret;
但是,当我使用 g++ 时,它会抛出错误消息
error: type/value mismatch at argument 1 in template parameter list for template<class _T1, class _T2> struct std::pair
出于某种原因,它无法识别 map<T, int>::iterator
作为一种类型。我应该如何为 g++ 解决这个问题?
最佳答案
你需要告诉编译器合格的 id map<T, int>::iterator
确实是一个类型(它可以是一个静态成员)
pair<typename map<T, int>::iterator, bool> ret;
^^^^^^^^
似乎 for once 一如既往 VS 的推导更好 比 g++ 错误。
关于c++ - g 编译器错误与 map<T, int>::iterator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16103201/