模板类中的嵌套(非模板)类未被识别为已定义

时间:2016-03-25 03:11:43

标签: c++ templates c++11

我正在创建一个模板Map(键和值)。它有一个访问者界面(不是问题),一个包装器(也不是问题),以及嵌套在它内部的迭代器(问题)。

这是hpp:http://pastebin.com/tVv3Xkgp

它给了我19个错误。

Error   2   error C2061: syntax error : identifier 'Iterator'   c:\users\zack\documents\visual studio 2013\projects\maptemplate\maptemplate\Map.hpp 58  1   MapTemplate  

Error   3   error C2805: binary 'operator <<' has too few parameters    c:\users\zack\documents\visual studio 2013\projects\maptemplate\maptemplate\Map.hpp 58  1   MapTemplate

似乎认为Iterator没有定义。显然operator<<()参数太少了。我认为它忽略了Iterator,因为它需要2个参数。关于什么是错的任何想法?

1 个答案:

答案 0 :(得分:0)

Iterator是一种依赖类型,因此您需要typename util::Map<KeyType, ValueType>::Iterator&