C ++ 11将迭代器用于模板参数类型的向量

斯蒂特

我有一个模板类,其中包含作为模板参数给出的类型的指针向量。我希望能够使用基于范围的迭代来对向量有限部分进行迭代我的课程包含以下功能:

template< typename ObjectType >
class ObjectList
{

    ...

public:

    //! Begin iteration over a list of objects
    std::vector<ObjectType*>::iterator begin();

    //! Iterator to one past the end of the list of objects
    std::vector<ObjectType*>::iterator end();

private:

    std::vector<ObjectType*> object_ptrs;
};

这不能与描述一起编译Error C2061 syntax error: identifier 'iterator'我想不出为什么std::vector<ObjectType>::iterator永远都找不到的任何原因,除非无法找到ObjectType它本身,但是如果删除了reference所在的行,则该类的其余部分将成功实例化iterator

任何人都知道发生了什么事吗?我敢肯定,我可能会遗漏一些明显的东西。提前致谢!

songyuanyao

您应该typename在这里使用,因为std::vector<ObjectType*>它是依赖类型的名称,它取决于template参数ObjectType

typename std::vector<ObjectType*>::iterator begin();
typename std::vector<ObjectType*>::iterator end();

$ 14.6 / 2名称解析[temp.res]

假定模板声明或定义中使用的依赖于模板参数的名称不命名类型,除非适用的名称查找找到类型名称或该名称由关键字typename限定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++:用于将模板参数的模板类型成员作为朋友的正确语法?

来自分类Dev

C ++ 11:可变参数lambda模板,用于调用类型的默认构造函数

来自分类Dev

C ++ 11非类型模板参数包扩展

来自分类Dev

C ++ 11“使用”类型别名的默认模板参数

来自分类Dev

C ++ 11翻译可变参数模板以推断类类型

来自分类Dev

如何推断C ++ 11中的模板参数类型?

来自分类Dev

C ++ 11“使用”类型别名的默认模板参数

来自分类Dev

如何使用C ++ 11可变参数模板定义由向量元组支持的向量元组?

来自分类Dev

如何使用C ++ 11可变参数模板定义由向量元组支持的向量元组?

来自分类Dev

C ++从模板迭代器创建向量

来自分类Dev

C ++ 11模板别名作为模板模板参数导致不同的类型?

来自分类Dev

C ++可变参数模板参数迭代

来自分类Dev

未知类型的C ++模板参数

来自分类Dev

c ++模板参数类型推断

来自分类Dev

C ++ 11如何使用Lambda和高阶函数将向量转换为不同类型的向量

来自分类Dev

如何使用模板类型作为函数参数派生抽象模板类(C ++ 11)

来自分类Dev

C ++ 11中模板化地图的向量

来自分类Dev

将Visual Studio 2013的C编译器用于MATLAB

来自分类Dev

c ++向量模板参数1无效

来自分类Dev

具有模板参数的c ++函数向量

来自分类Dev

在C ++ 11或C ++ 1y中对非类型模板参数包进行排序?

来自分类Dev

C ++ 11:是否可以将固定模板参数化的模板赋予varidic-template-template-parameter?

来自分类Dev

C ++:将lambda作为带有模板参数的函数进行传递会使推导模板类型失败

来自分类Dev

模板非类型参数,C ++ 11,字符串文字的限制

来自分类Dev

如何在C ++ 11中约束参数包类型?以及如何在cpp中实现模板?

来自分类Dev

参数名模板的参数化模板c ++ 11

来自分类Dev

在C ++中使用可变参数模板迭代参数包

来自分类Dev

c ++ 11递归可变参数模板

来自分类Dev

C ++ 11模板中的默认位置参数

Related 相关文章

  1. 1

    C ++:用于将模板参数的模板类型成员作为朋友的正确语法?

  2. 2

    C ++ 11:可变参数lambda模板,用于调用类型的默认构造函数

  3. 3

    C ++ 11非类型模板参数包扩展

  4. 4

    C ++ 11“使用”类型别名的默认模板参数

  5. 5

    C ++ 11翻译可变参数模板以推断类类型

  6. 6

    如何推断C ++ 11中的模板参数类型?

  7. 7

    C ++ 11“使用”类型别名的默认模板参数

  8. 8

    如何使用C ++ 11可变参数模板定义由向量元组支持的向量元组?

  9. 9

    如何使用C ++ 11可变参数模板定义由向量元组支持的向量元组?

  10. 10

    C ++从模板迭代器创建向量

  11. 11

    C ++ 11模板别名作为模板模板参数导致不同的类型?

  12. 12

    C ++可变参数模板参数迭代

  13. 13

    未知类型的C ++模板参数

  14. 14

    c ++模板参数类型推断

  15. 15

    C ++ 11如何使用Lambda和高阶函数将向量转换为不同类型的向量

  16. 16

    如何使用模板类型作为函数参数派生抽象模板类(C ++ 11)

  17. 17

    C ++ 11中模板化地图的向量

  18. 18

    将Visual Studio 2013的C编译器用于MATLAB

  19. 19

    c ++向量模板参数1无效

  20. 20

    具有模板参数的c ++函数向量

  21. 21

    在C ++ 11或C ++ 1y中对非类型模板参数包进行排序?

  22. 22

    C ++ 11:是否可以将固定模板参数化的模板赋予varidic-template-template-parameter?

  23. 23

    C ++:将lambda作为带有模板参数的函数进行传递会使推导模板类型失败

  24. 24

    模板非类型参数,C ++ 11,字符串文字的限制

  25. 25

    如何在C ++ 11中约束参数包类型?以及如何在cpp中实现模板?

  26. 26

    参数名模板的参数化模板c ++ 11

  27. 27

    在C ++中使用可变参数模板迭代参数包

  28. 28

    c ++ 11递归可变参数模板

  29. 29

    C ++ 11模板中的默认位置参数

热门标签

归档