Potrzebuję pomocy, a mianowicie, muszę napisać program który realizuje kilka z podanych punktów. Będę wdzięczny za każdą pomoc.

Zadanie polega na stworzeniu szablonu listy dwukierunkowej. Szablon powinien pozwalać na:

+Bezpieczne kopiowanie listy.
+Dodawanie i usuwanie elementów (zarówno na początku, jak na końcu listy jak i przed lub po wskazanym elemencie)
+Wygodne łączenie dwóch list za pomocą operatora dodawania.
+Wygodny dostęp do elementów za pomocą operatora [].
+Łatwe wypisywanie listy za pomocą operatora <<.
+Łatwe wczytywanie listy za pomocą operatora >>
+Wyszukiwanie elementów na liście (w tym wypadku metoda wyszukująca powinna przyjmować obiekt klasy posiadającej metodę akceptującą bądź nie element lsity (najlepiej jakby to był operator()) oraz zwracającą listę (naszą) tych które zostały zaakceptowane).
+Obsługę sytuacji krytycznych przy użyciu mechanizmu wyjątków.

Po stworzeniu szablonu należy przygotować dwa bardzo proste (naprawdę proste!) programiki pokazujące jego działanie raz dla typu podstawowego języka C++ (np. double), raz dla jakiegoś typu złożonego (np. jakiejś klasy).
</cpp>