lib:boost
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
lib:boost [2019/11/13 11:29] – Déplacement des sources sur GitHub root | lib:boost [2020/07/05 00:37] (Version actuelle) – [boost::asio::execution_context] : code -> gh root | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ===Compilation sous Windows=== | + | ====Windows==== |
+ | ===Compilation=== | ||
<code bash> | <code bash> | ||
git clone https:// | git clone https:// | ||
Ligne 16: | Ligne 17: | ||
'' | '' | ||
- | ===Exécuteur=== | + | ====boost:: |
L' | L' | ||
* Fonctionnement entre thread, pas entre application via TCP, | * Fonctionnement entre thread, pas entre application via TCP, | ||
* Toujours en fonctionnement. En attente s'il n'a plus de travail à faire. | * Toujours en fonctionnement. En attente s'il n'a plus de travail à faire. | ||
- | [[https:// | + | {{gh>https:// |
+ | |||
+ | {{gh> | ||
+ | |||
+ | {{gh> | ||
+ | ====boost:: | ||
+ | ===boost:: | ||
+ | <code cpp> | ||
+ | #include < | ||
+ | |||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | #include < | ||
+ | |||
+ | struct Data | ||
+ | { | ||
+ | std::string name; | ||
+ | std::string version; | ||
+ | }; | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | std:: | ||
+ | |||
+ | std::cout << | ||
+ | boost:: | ||
+ | v | | ||
+ | boost:: | ||
+ | [](const Data& firmware) | ||
+ | { | ||
+ | return firmware.name + " / " + firmware.version; | ||
+ | } | ||
+ | ), | ||
+ | ", ") << | ||
+ | std:: | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ====Migrer de boost vers std==== | ||
+ | ===Pointeur intelligent=== | ||
+ | |||
+ | Aucune différence entre : | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | '' | ||
+ | </ | ||
+ | |||
+ | * boost::ref et std::ref. | ||
+ | |||
+ | ===assign=== | ||
+ | |||
+ | Utiliser list_initializer. | ||
+ | |||
+ | <code cpp> | ||
+ | //const std:: | ||
+ | const std:: | ||
+ | </ | ||
+ | |||
+ | ===foreach=== | ||
+ | |||
+ | <code cpp> | ||
+ | short array_short[] = { 1, 2, 3 }; | ||
+ | BOOST_FOREACH( short & i, array_short ) | ||
+ | ++i; | ||
+ | </ | ||
+ | |||
+ | <code cpp> | ||
+ | short array_short[] = { 1, 2, 3 }; | ||
+ | for (short & i : array_short) | ||
+ | ++i; | ||
+ | </ | ||
+ | |||
+ | Et avec des containers multi valeurs : | ||
+ | |||
+ | <code cpp> | ||
+ | std:: | ||
+ | int key, value; | ||
+ | BOOST_FOREACH(boost:: | ||
+ | { | ||
+ | // do something with key and value here | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | <code cpp> | ||
+ | std:: | ||
+ | int key, value; | ||
+ | // Ici, key sera en lecture seule (implicite à la structure de std::map) et value sera accessible en écriture. | ||
+ | // En cas de présente / absence explicite de const, cela s' | ||
+ | for(auto & [key, value] : m) | ||
+ | { | ||
+ | // do something with key and value here | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===optional=== | ||
+ | |||
+ | Il ne devrait pas y avoir de problèmes. Il faut noter que '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | ===regex=== | ||
+ | |||
+ | Cette fonctionnalité était très peu utilisée. | ||
+ | |||
+ | <code cpp> | ||
+ | boost:: | ||
+ | // std:: | ||
+ | std:: | ||
+ | </ | ||
+ | |||
+ | Sinon, '' | ||
+ | |||
+ | ===variant=== | ||
+ | |||
+ | <code cpp> | ||
+ | boost:: | ||
+ | double d = boost:: | ||
+ | double *d = boost:: | ||
+ | </ | ||
+ | |||
+ | devient | ||
+ | |||
+ | <code cpp> | ||
+ | std:: | ||
+ | double d = std:: | ||
+ | double *d = std:: | ||
+ | </ | ||
+ | |||
+ | '' | ||
+ | |||
+ | Attention, '' | ||
+ | |||
+ | ===tuple=== | ||
+ | |||
+ | Non testé la migration. | ||
+ | |||
+ | ===bind=== | ||
+ | |||
+ | Les deux sont compatibles. Mais il est préférable de les remplacer par des fonctions lambda. | ||
+ | |||
+ | ===filesystem=== | ||
+ | |||
+ | Dans les cas basiques que j'ai eu, je n'ai pas eu de différences. Mais il y a [[https:// | ||
+ | |||
+ | * '' | ||
+ | |||
+ | <code cpp> | ||
+ | #include < | ||
+ | |||
+ | boost:: | ||
+ | boost:: | ||
+ | </ | ||
+ | |||
+ | devient | ||
+ | |||
+ | <code cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | std:: | ||
+ | std:: | ||
+ | </ | ||
+ | |||
+ | * '' | ||
+ | |||
+ | Il devient '' | ||
+ | |||
+ | '' | ||
+ | '' | ||
+ | |||
+ | * Deprecated | ||
+ | |||
+ | '' | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ===thread=== | ||
+ | |||
+ | * '' | ||
+ | |||
+ | ===shared_mutex=== | ||
+ | |||
+ | Il n'y a pas d' | ||
+ | |||
+ | Il faut alors faire une boucle où on passe son temps à faire un '' | ||
+ | |||
+ | ===scoped_array=== | ||
+ | |||
+ | Peut se remplacer sans problème par un '' | ||
+ | |||
+ | ===algorithm=== | ||
+ | * string | ||
+ | |||
+ | <code cpp> | ||
+ | std::string str; | ||
+ | return boost:: | ||
+ | </ | ||
+ | |||
+ | devient | ||
+ | |||
+ | <code cpp> | ||
+ | std::string str; | ||
+ | std:: | ||
+ | return std:: | ||
+ | </ | ||
+ | |||
+ | ===boost:: | ||
+ | |||
+ | '' |
lib/boost.1573640962.txt.gz · Dernière modification : 2019/11/13 11:29 de root