In der funktionalen Programmierung sind Funktionen Objekte, die so wie andere Objekte zum Beispiel als Parameter an Funktionen übergeben oder in Containern gespeichert werden können. Es existieren zahlreiche Boost-Bibliotheken, die die funktionale Programmierung in C++ unterstützen.
Boost.Phoenix ist die umfangreichste und heute wichtigste Boost-Bibliothek. Sie ersetzt die Bibliothek Boost.Lambda, die nur der Vollständigkeit halber und in aller Kürze vorgestellt wird.
Boost.Function stellt eine Klasse zur Verfügung, die es einfacher macht, Funktionszeiger zu definieren, ohne die aus der Programmiersprache C stammende Syntax verwenden zu müssen.
Boost.Bind ist ein Adapter, der es möglich macht, Funktionen als Parameter an andere Funktionen zu übergeben, wenn sich die tatsächliche und die erwartete Funktionssignatur unterscheiden.
Boost.Ref kann im Zusammenhang mit Funktionen verwendet werden, um eine Referenz auf ein Objekt zu übergeben, auch wenn ein Funktion eine Kopie erwartet.
Boost.Lambda kann als Vorgänger von Boost.Phoenix bezeichnet werden. So handelt es sich um eine alte Bibliothek, die es möglich machte, Lambda-Funktionen zu verwenden, bevor diese Jahre später mit C++11 Teil der Programmiersprache wurden.