错误:模板化复制构造函数调用自身

时间:2012-03-27 10:13:11

标签: c++ qt copy-constructor

当在我的应用程序中调用此复制构造函数时,此复制构造函数进入无限循环,即它不断调用自身。 当我调试在第一行终止的pogram时。 使用的foreach循环是Qt foreach。

template<class TValue>
Locus<TValue>::Locus (const Locus<TValue>& source ) : QVector<TValue>(source) // program terminates here
{
    std::cout << "calling self from here " << std::endl;
    foreach (typename Locus<TValue>::value_type l, source)
    {
        this->push_back(l);
    }
}

1 个答案:

答案 0 :(得分:5)

来自Qt docs

  

Qt在进入foreach循环时会自动获取容器的副本。