Почему не используется мой перегруженный оператор для ++?

Я создал перегруженный оператор для ++ в моем файле .hpp, а затем функцию, которая вызывает его также в .hpp файл. Затем файл .cpp вызывает функцию, но когда функция попадает в код ++, она не вводит перегруженный оператор, а вместо этого использует оператор операции по умолчанию для ++. Почему он не использует мой перегруженный оператор?

Вот операторы для ++:

iterator& operator ++ () {  // pre-increment
        std::list<value_type>::iterator i = listOfValues.begin();
        advance(i,1);
        return &*i;
    }

    Square_List operator ++ (int) { // post-increment
        std::list<value_type>::iterator i = listOfValues.begin();
        advance(i,1);
        return &*i;
    }

И вот функция, использующая его:

template <typename A_>
void testerIncrement(A_ toInc)
{

    toInc = listOfValues.begin();
    cout << "\n" << *toInc;
    ++toInc;
    cout << "\n" << *toInc;
    ++toInc;
}

И, наконец, вызов функции в файле .cpp

ca.testerIncrement(ca.listOfValues.begin());
5
задан Beef 18 February 2012 в 03:18
поделиться