Есть пачка объектов где-то-там уже лежащих, которые надо организовать в список, и дальше с этим списком работать. При этом объекты уже содержат поля для ссылок на соседей по списку, в зависимости от ситуевины это не обязательно указатели - могут быть например номера элементов в общем массиве типа uint16_t (в данной задаче критическим является размер памяти), или еще что то. Список тоже может быть как односвязный, так и двусвязный.
Можно конечно реализовать все руками, но уж больно много повторяющегося кода выходит в которым легко напортачить. Хочется сваять шаблонный класс (два - для двусвязного и для осноснвязного списков), но я не очень соображу как в него передать способ манипулирования со ссылками на соседей.
Пока что в голову приходит только совать соответствующую лямбда-функцию в аргумент конструктора (точнее несколько - ну там для доступа к ссылке вперед/назад и для получения самого элемента). Но как то не Ъ выглядит... Кто что посоветует?