boost :: range :: detail :: any_iterator不能与boost :: zip_iterator一起使用

时间:2015-05-11 13:01:30

标签: c++ boost boost-iterators

请考虑以下代码:

int main() {
vector<polygon*> polygonVec;

polygonVec.push_back(new triangle(2,3,1,2,-1,-4, "triangle 1"));
polygon *tempPolygon;
tempPolygon = new rectangle(1,2,3,4,5,6,7,8, "rectangle 1");
polygonVec.push_back(tempPolygon);


for(vector<polygon*>::iterator itr = polygonVec.begin();
    itr != polygonVec.end();
    itr++)
{
    cout<<*itr<<endl;
}

for(vector<polygon*>::iterator itr = polygonVec.begin();
    itr != polygonVec.end();
    itr++)
{
    delete *itr;
}

polygonVec.clear();

它按预期工作(即打印&#34; 1 a \ n2 b ...&#34;)在没有优化的情况下进行编译,但是在使用-O2编译时会出现段错误或产生垃圾(同时使用clang-3.6) .0和gcc-4.9.2,提升1.56.0)我不知道是什么错误。

此外,当删除IntCharIterator包装器时,代码按预期使用优化级别。

有谁知道这里发生了什么?

0 个答案:

没有答案