【发布时间】:2013-10-24 15:12:14
【问题描述】:
我有一个 Things 的迭代器。如果我想将当前项目转换为指向该项目的指针,为什么会这样:
thing_pointer = &(*it);
但这不是:
thing_pointer = reinterpret_cast<Thing*>(it);
这是我试图理解的编译器错误:http://msdn.microsoft.com/en-us/library/sy5tsf8z(v=vs.90).aspx
以防万一,迭代器的类型是std::_Vector_iterator<std::_Vector_val<Thing,std::allocator<Thing> > >
【问题讨论】:
-
为什么
reinterpret_cast会起作用?您可能对reinterpret_cast是什么有一个错误的概念,或者问题可能在于运算符重载和迭代器类型中的operator*?
标签: c++ iterator reinterpret-cast