下面的代码抛出2个的编译器错误在VS 2013:语法错误识别符 '游标'
- 模板函数定义抛出
错误C2061:语法错误:识别符 '
iterator
' - 该模板功能的专业化抛出
错误[R C2912:明确的专业化“
double getFillIn<double,double>(fillInOptions,double,std::_Tree_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<const _Kty,_Ty>>>>,inputLoader *,va_list)
”不是一个函数模板
任何人都可以请解释原因的特?我很确定第二个错误只是第一个错误的结果,但我不明白为什么它不能找出iterator
标识符。
#include <map>
template <typename T> class table {
};
template <typename S, typename T>
void f(S s, std::map<S, table<T>*>::iterator it);
尝试'typename map *> :: iterator'。 –
songyuanyao
我错了,但'template class lookupTable;'在完全定义'lookupTable'之前'会咬你。关闭主题:交换机中的默认情况不会返回任何内容。对于编译器警告以及如果一个无效或新的'opt'偷偷进入有点困难的调试很好。 –
user4581301