我刚刚升级了一个名为 RogueWave 的第三方库,用于数据库功能。
但是,我遇到了一个非常愚蠢的编译错误,我不太确定它在抱怨什么:
typedef std::set< EVBusCalOverride > OverrideSet;
OverrideSet overrides;
OverrideSet::iterator itor = this->overrides.begin( );
while( itor != this->overrides.end( ) )
我在迭代器初始化行上收到错误消息
An object or reference of type "std::set<EVBusCalOverride,std::less<EVBusCalOverride>,std::allocator<EVBusCalOverride> >::iterator"
cannot be initialized with an rvalue of type "std::_Tree<std::_Tset_traits<EVBusCalOverride,std::less<EVBusCalOverride>,std::allocator<EVBusCalOverride>,0> >::const_iterator".
而EVBusCalOverride 只是一个类
class EVBusCalOverride
{
private:
RWDate overrideDate;
bool businessDay;
};
RWDate 是属于 RogueWave 库的日期类型变量。
我不确定这如何影响迭代器初始化。谁能指出我可能导致这种情况的正确方向?