LINUX.ORG.RU

История изменений

Исправление DarkEld3r, (текущая версия) :

Трейта для коллекций (чтобы были определены всякие push, pop и т.д.) не существует?

Общего нет, насколько я вижу. Есть только Index для контейнеров поддерживающих обращения по индексу (через скобки []), FromIterator/IntoIterator и Extend.

Потом чуть подумал и понял, что надо, наверное, просто T, но что делать, если мне нужно будет уточнить, например, что должен уметь именно U?

T<U> нельзя, да. Обсуждается и HKT хотят сделать.

UPD: Первый вопрос (если предположить, что нужного трейта нет), наверное, решается макросом.

Оно ещё и решается трейтами FromIterator/IntoIterator - сначала преобразуешь в итератор (IntoIterator), потом делаешь ему rev, потом обратно (FromIterator).

Исходная версия DarkEld3r, :

Трейта для коллекций (чтобы были определены всякие push, pop и т.д.) не существует?

Общего нет, насколько я вижу. Есть только Index для контейнеров поддерживающих обращения по индексу (через скобки []), FromIterator/IntoIterator и Extend. Подозреваю, что тебе нужно как раз последнее - он как раз говорит о том, что туда можно «запихнуть итератор».

Потом чуть подумал и понял, что надо, наверное, просто T, но что делать, если мне нужно будет уточнить, например, что должен уметь именно U?

T<U> нельзя, да. Обсуждается и HKT хотят сделать.

UPD: Первый вопрос (если предположить, что нужного трейта нет), наверное, решается макросом.

Оно ещё и решается трейтами FromIterator/IntoIterator - сначала преобразуешь в итератор (IntoIterator), потом делаешь ему rev, потом обратно (FromIterator).