В C ++, каков наилучший способ вернуть коллекцию клиентскому коду без использования итераторов.
Допустим, итераторы исключены, потому что, например, коллекция является удаленной. Мне нужна подпись для функции, которая возвращает коллекцию в максимально удобной форме.
Под «лучшим» я подразумеваю лучший компромисс между ясностью и универсальностью.
Мой инстинкт был (где result.push_back (obj) действителен C ++):
template <typename T>
void getCollection(T& result);
Интересно, есть ли у кого-нибудь лучшие идеи, например, которые также поддерживают вставки в контейнеры, которые не поддерживают push_back, или требуют преобразования объектов в коллекции.
Следующее, возможно?
template <typename Func>
void getCollection(Func f); // applies f to all the objects