#boost

wszystkie notatki oznaczone etykietą "boost"

Bind zastępuje predykaty!

Boost.bind to potężne narzędzie. Dzięki niemu możemy pozbyć się wielu prostych i trywialnych, a także tych trochę bardziej skomplikowanych funktorów, jakie musieliśmy definiować, bo standardowe adaptery funkcyjne z STL są ograniczone. Za niedługo zobaczymy je w standardzie, a obecnie dostępny jest w TR1. To za jego sprawką z kodu źródłowego xime zniknie kilka predykatów. Zostaną zastąpione jedno-dwu linijkowymi złożeniami bindowych adapterów i obiektów funkcyjnych. Kod stanie się bardziej czytelny i spójny, bo nawet prosty predykat wykorzystujący jakiś element lub metodę obiektu definiowany jest jako klasa funktora, co przy kilku dodatkowych definicjach klas powoduje rozrastanie się kodu.

Czytaj dalej

find_if predicate

Nieraz zdarza się, ze przechowujemy w kontenerach STL-owych niebanalne obiekty, czy typy nieco bardziej rozbudowane od typów wbudowanych. Załóżmy, że mamy prosty vector wypełniony prostymi obiektami o budowie zbliżonej do następującej struktury: struct MyObj{ int foo; int bar; std::string name; }; I chcielibyśmy wyszukać w nim element o nazwie “foo”. Oczywiście najprostszym i najszybszym rozwiązaniem (przynajmniej na początku) byłoby napisanie kilku prostych linii kodu, wraz z pętelką, spełniających te funkcje. Coś na wzór tego:

Czytaj dalej