我有一个DD类
template<typename T>
class DD
: public IEnumerable<T>
{
typedef IEnumerable<T> Super;
typedef std::set<T*> Container;
Run Code Online (Sandbox Code Playgroud)
和方法
template<typename T>
bool DD<T>::Enumerator::Move()
{
if(!mIt.get())
mIt.reset(
new Container::iterator( <-----
mContainer.GetContainer().begin()
)
);
...
}
Run Code Online (Sandbox Code Playgroud)
当我编写课程时,我得到了error: expected type-specifier.怎么了Container::iterator()?
Win*_*ert 12
尝试:
new typename Container::iterator
Run Code Online (Sandbox Code Playgroud)
当您使用C++模板时,编译器不知道Container :: iterator是一个类型还是其他东西.所以你需要明确地说它是一个类型.
另一方面,使用new创建迭代器几乎肯定是错误的.
| 归档时间: |
|
| 查看次数: |
18594 次 |
| 最近记录: |