La librairie boost a pour but d'améliorer la STL en fournissant un ensemble de classes et d'algorithmes annexes et sert de laboratoire expérimental avant l'intégration aux librairies C++ (plus de 100 librairies)
Certaines des fonctionnalités de boost ont été incorporées dans la version C++11, C++14
Parmi les fonctionnalités de boost, on peut citer :
Voir la documentation 1.60
Sous Ubuntu 14.04 - 64 bits compiler avec -L/usr/lib/x86_64-linux-gnu -lboost_date_time ...
On utilise les fonctionnalités de boost/lexical_cast.hpp
check expression : 123456
- is integer
- is float
check expression : -1234
- is integer
- is short
- is float
check expression : abc
check expression : -1.34
- is float
====== CONVERT ======
-129
v1 into signed char : bad numeric conversion: negative overflow
-3
v2 into int : bad numeric conversion: negative overflow
Les classes liées à la librairie Accumulators permettent de faire des calculs statistiques :
min = 0
max = 18
sum = 48
mean = 9.6
variance = 33.04
std deviation = 5.74804
Exemple : comment découper une chaîne de caractères en mots : la méthode n'est pas très intéressante car on trouve des chaînes vides. On découpe par rapport aux séparateurs de mots.
all
I
wanna
do
<-- chaine vide
when
I
wake
up
in
morning
is
see
your
eyes
<-- chaine vide
Rosanna
Autre exemple avec <regex> du C++11 : on découpe par rapport aux mots, on utilise le méta-charactère \w qui représente une lettre [a-z] [A-Z] ou une lettre accentuée ou un chiffre [0-9] ou '_'.
all
I
wanna
do
when
I
wake
up
in
morning
is
see
your
eyes
Rosanna
> date
dimanche 21 décembre 2014, 19:08:18 (UTC+0100)
> boost_date_time.exe
Enter birth day YYYY-MM-DD (eg: 2002-02-01): 1970-09-30
Days alive: 16153
./boost_date_localization.exe
2014-Dec-21
2014-Dec-21
Dec
Sun
12/21/2014
2014-Dec-21
Boost offre une librairie pour interfacer Python et C++. On peut aussi utiliser Cython (cf Interopérabilité avec Python).