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 : de root
