Есть функция:
result_code GetSomething(vector<Something>& output);
При одном из вызовов функции передается непустой вектор. Как, на ваш взгляд, функция должна отреагировать на это?
1. Всегда очищать (лишнее действие, что не в духе плюсов).
2. Игнорировать, т.е. новые значения добавятся к старым ("не очистил сам дурак" — вполне в духе, но добавляет нестабильности).
3. Должен сработать assert (типа assert(output.empty)).
4. Вернуть ошибку/бросить исключение.
5. Оставлю комментарий со своим вариантом.
(Хотел сделать настоящее голосование, но получаю "500 — Internal server error". Зато здесь можно обсудить более развернуто).
Что скажете?