嵌套模板列表错误

时间:2012-09-03 02:33:47

标签: c++ templates

在标题中:

list< SKPair<VALUETYPE> > *values[256];

在实施中:

const list< SKPair<VALUETYPE> > *bucket = values[0];
typename list< SKPair<VALUETYPE> >::iterator it = bucket.begin();

gcc编译器抱怨第二行:

error: request for member ‘begin’ in ‘bucket’, which is of non-class type ‘const std::list<SKPair<int>, std::allocator<SKPair<int> > >*’

(在main中,我创建了一个我的班级的测试实例,其中VALUETYPEint。)知道我做错了什么吗?

2 个答案:

答案 0 :(得分:3)

写:

typename list< SKPair<VALUETYPE> >::iterator it = bucket->begin();

此处需要->

答案 1 :(得分:1)

bucket被声明为指针,因此您需要一个解除引用运算符来访问其成员:

auto it = bucket->begin();

如果您有C ++ 11 auto可用,那么应该可以解决这个问题。