虚拟转发迭代器?
|
我看了STL的前向迭代器。我在任何地方都看不到任何虚拟功能。如果我有一个想要字符串的正向迭代器的库,我如何允许该函数接受任何返回字符串的正向迭代器?我可以使用标准库中的任何内容吗?
没有找到相关结果
已邀请:
4 个回复
抚驰
在您的特定情况下:
它必须引用字符串的其他限制可以用traits和enable_if类型实现:
使用c ++ 0x中的typetrait,但如果在不支持它们的编译器中需要
和
,则可以使用boost。 如果您需要能够在运行时切换迭代器的类型,则可能需要研究“ 5”,它对提供运行时多态接口的特定迭代器执行类型擦除。有关文章在C ++中的面向对象和通用编程之间的关系中进行了描述,可以在Adobe STLab中找到该实现。
森含械
您可以从ѭ7继承,也可以查看Boost Iterator Facade,它将帮助您编写自己的迭代器。
董碘奴星
犁攀富