Walka z STL-owymi strumieniami

tech • 246 słów • 2 minuty czytania

Wielkim walorem języka C++ i STL-a są strumienie. Ale chyba nie przez wszystkich są tak bardzo lubiane.

Strumienie są bezpieczne i wygodne, szczególnie, gdy się je wykorzystuje w podstawowych “konfiguracjach”.

Niestety, gdy chce się zrobić z nimi coś więcej to pojawiają się schody. Na pewno są upierdliwe przy jakiejś “większej” potrzebie formatowania danych we/wy. A co gorsza, gdy potrzeba napisać własny strumień lub jakąś cześć własnej implementacji do tych standardowych strumieni to trzeba się nieźle nagimnastykować, i nie jest powiedziane, że się to uda.

Chciałem sobie napisać fajną klasę do logowania z możliwością dodawania wpisów operatorem <<. Akurat tę część funkcjonalności bez zarzutu da się łatwo zaimplementować. Chciałem też mieć standardowe endl do kończenia linii (flush-owania) loga i kilka innych “helperów”. I tutaj już pojawiały się schody, schody bez końca.

Tyle tych template’ów napakowane w STL-u, że nawet nie mogłem łatwo i prosto przeciążyć manipulatora endl, czy choćby metody flush wykonywanej przez endl. Wkurzyłem się i na razie pozostałem przy prostszym wykonaniu.

To mnie utwierdza w moim braku “sympatii” do C++‘owych strumieni. Często łatwiej mi przychodzi użycie “starych” funkcji dostępnych w bibliotece C i to nie tylko do formatowania, ale często i do operowania na plikach. A gdy się je fajnie opakuje w jakieś proste interfejsy obiektowe to jest bajka ;)

A teraz była dobra okazja by to zmienić, by choć trochę polubić te strumienie. Niestety ta sytuacja tego nie zmieniła, a może nawet nieco pogorszyła, bo jeszcze bardziej się zniechęciłem do wykorzystywania strumieni w C++.

Komentarze (0)

Dodaj komentarz

/dozwolony markdown/

/nie zostanie opublikowany/