0

g++ 4.1.2 でコンパイルすると、このエラーが発生します。

「エラー: operator= に一致しません」((PoolElementList*)this)->PoolElementList::i_currentElement = ((PoolElementList*)this)->PoolElementList::i_elementList.std::vector<_Tp, _Alloc>::end _Tp = ModifyTerminationPointReqInfo*、_Alloc = std::allocator を使用

PoolElements の定義は次のとおりです。

template <class Element, Element *intialElementPtr>
class PoolElementList
{
        GenericMemoryPool <Element, intialElementPtr> *i_elementPoolPtr;

        vector <Element *> i_elementList;
        vector <Element *> i_currentElement;
public:

  //Define a constructor that takes in a pointer of the pool.
        PoolElementList(GenericMemoryPool <Element, intialElementPtr> *elementPool):
        i_elementPoolPtr (elementPool)
        { 
                i_currentElement = i_elementList.end();   //error is here**
        };

誰かがこれで何が間違っているのか説明してください。(これは g++ 2.9.x でのコンパイルでした)

4

1 に答える 1

0

(コメントで言ったように) になるつもりi_currentElementなら std::vector<Element *>::iterator、それを1つとして宣言する必要があります。交換するだけ

vector <Element *> i_elementList;

vector <Element *>::iterator i_elementList;
于 2012-11-29T06:07:01.053 に答える