To jest stara wersja strony!
Biblioteka standardowa 'algorithm' udostępnia wiele przydatnych szablonów umożliwiających wykonywanie często potrzebnych algorytmów na kontenerach. Konstrukcje te umożliwiają np. wyszukiwanie, sortowanie, przeglądanie z modyfikacją itp. Problem w tym, że dla każdej operacji trzeba było implementować drobną klasę tzw.obiekt funkcyjny. Obiekt ten miał za zadanie dostarczyć odpowiedniego operatora czy funkcji która miała za zadanie określić logikę operacji na elementach kontenera. Następnie obiekt był przekazywany do szablonu. Taka metoda powodowała powstanie wiele obiektów funkcyjnych które niekiedy w dużym projekcie były wykorzystywane tylko raz. Biblioteka boost wprowadza mechanizm (wraz z mechanizmami pomocniczymi) który umożliwia konstruowanie tak zwanych wyrażeń lambda. Można je rozumieć jako nienazwane funkcje które są wykonywane w miejscu definicji.
Biblioteka boost charakteryzuje się następującymi zaletami: * mniejsza ilość kodu. * skupienie kodu w miejscu faktycznego wykorzystania. * łatwość konserwacji kodu (nie trzeba badać szeregu obiektów funkcyjnych) * zmniejszenie zapotrzebowania pamięci przez program.
Biblioteka boost charakteryzuje się następującymi wadami: * trudna i z początku nie jak nie intuicyjna składnia. * drobna pomyłka programisty to szereg błędów i ostrzeżeń generowanych przez kompilator (efekt zaawansowanych mocno zagłębionych szablonów). * zbyt „fachowe” podejście do tworzenia wyrażeń może znacznie utrudnić zrozumienie kodu przez innych programistów.