модульное тестирование — хороший способ вызвать перегруженный const против неконстантного метода в C ++ TDD?

Все

написал какой-то модный контейнер с итераторами. Так что я

iterator begin() {
}

iterator end() {
}

const_iterator begin() const {
}

const_iterator end() const {
}

В тесте я создаю экземпляр контейнера, заполняю его и тестирую. Что является приемлемым / хорошим способом назвать как константную, так и неконстантную версию? Скажем, простой тест вроде

TEST( c.end() - c.begin() == c.size() );

должен работать как для итераторов, так и для константных итераторов.
Const ссылка? Какой-то уродливый состав?

1

Решение

Я бы просто сделал const& к нему:

const container& constC= c;
TEST(constC.end() - constC.begin() == constC.size());
5

Другие решения

Я думаю, что не перегружать их является лучшим решением в соответствии с std условность.

декларировать cbegin() а также cend() вместо.

1

По вопросам рекламы [email protected]