Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
lib:boost [2020/03/03 13:12] – Ajout de "scoped_array" root | lib:boost [2020/07/05 00:37] (Version actuelle) – [boost::asio::execution_context] : code -> gh root |
---|
* 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://github.com/bansan85/wiki_le_garrec_fr/tree/master/cpp/boost/executor|Executor sur GitHub]] | {{gh>https://github.com/bansan85/wiki_le_garrec_fr/blob/master/cpp/boost/executor/executor.h}} |
| |
| {{gh>https://github.com/bansan85/wiki_le_garrec_fr/blob/master/cpp/boost/executor/executor.cpp}} |
| |
| {{gh>https://github.com/bansan85/wiki_le_garrec_fr/blob/master/cpp/boost/executor/main.cpp}} |
====boost::algorithm==== | ====boost::algorithm==== |
===boost::algorithm::join et boost::adaptors::transformed=== | ===boost::algorithm::join et boost::adaptors::transformed=== |
* ''std::enable_shared_from_this'' et ''boost::enable_shared_from_this''. | * ''std::enable_shared_from_this'' et ''boost::enable_shared_from_this''. |
| |
<note important>''shared_ptr'', ''make_shared'' et ''enable_shared_from_this'' doivent tous venir de la même libraire. L'un en version ''std'' et l'autre en version ''boost'' sont incompatibles.</note> | <WRAP center round important 60%> |
| ''shared_ptr'', ''make_shared'' et ''enable_shared_from_this'' doivent tous venir de la même libraire. L'un en version ''std'' et l'autre en version ''boost'' sont incompatibles. |
| </WRAP> |
| |
* boost::ref et std::ref. | * boost::ref et std::ref. |
</code> | </code> |
| |
===variant=== | ===optional=== |
| |
===optional=== | Il ne devrait pas y avoir de problèmes. Il faut noter que ''std'' ne supporte pas les références : ''std::optional<int&>''. |
| |
Il ne devrait pas y avoir de problèmes. Il faut noter que ''std'' ne supporte pas les références ''std::optional<int&>''. | ''boost::none'' devient ''std::nullopt''. |
| |
===regex=== | ===regex=== |
std::regex_search(name, whatpath, expmatchIndexPath); | std::regex_search(name, whatpath, expmatchIndexPath); |
</code> | </code> |
| |
| Sinon, ''boost::cmatch'' et ''boost::regex'' sont identiques à ''std::cmatch'' et ''std::regex''. |
| |
===variant=== | ===variant=== |
| |
Non testé la migration. | <code cpp> |
| boost::variant<int, double> v = 5; |
| double d = boost::get<double>(v); // Génère une exception |
| double *d = boost::get<double>(&v); // Renvoi nullptr |
| </code> |
| |
| devient |
| |
| <code cpp> |
| std::variant<int, double> v = 5; |
| double d = std::get<double>(v); // Génère une exception |
| double *d = std::get_if<double>(&v); // Renvoi nullptr |
| </code> |
| |
| ''boost::apply_visitor'' devient ''std::visit''. |
| |
| Attention, ''boost::variant<int, int>'' est accepté mais pas ''std::variant<int, int>''. Dans tous les cas, il ne faut pas y avoir deux fois le même type. |
| |
===tuple=== | ===tuple=== |
| |
Dans les cas basiques que j'ai eu, je n'ai pas eu de différences. Mais il y a [[https://www.bfilipek.com/2019/05/boost-to-stdfs.html|quelques différences]] apparemment. {{ :lib:boost:bartek_s_coding_blog_converting_from_boost_to_std_filesystem_2020-03-03_10_10_25_am_.html |Archive du 06/05/2019 le 03/03/2020}} | Dans les cas basiques que j'ai eu, je n'ai pas eu de différences. Mais il y a [[https://www.bfilipek.com/2019/05/boost-to-stdfs.html|quelques différences]] apparemment. {{ :lib:boost:bartek_s_coding_blog_converting_from_boost_to_std_filesystem_2020-03-03_10_10_25_am_.html |Archive du 06/05/2019 le 03/03/2020}} |
| |
| * ''boost::filesystem::ifstream'' |
| |
| <code cpp> |
| #include <boost/filesystem/fstream.hpp> |
| |
| boost::filesystem::path currentPath; |
| boost::filesystem::ifstream ifs(nextPath); |
| </code> |
| |
| devient |
| |
| <code cpp> |
| #include <filesystem> |
| #include <fstream> |
| |
| std::filesystem::path currentPath; |
| std::ifstream ifs(nextPath.c_str()); |
| </code> |
| |
| * ''boost::filesystem::copy_option'' |
| |
| Il devient ''std::filesystem::copy_options''. Le nom des enum est différent : |
| |
| ''overwrite_if_exists'' devient ''overwrite_existing''. |
| ''fail_if_exists'' devient ''skip_existing''. |
| |
| * Deprecated |
| |
| ''leaf()'' devient ''filename()''. |
| |
| [[https://www.boost.org/doc/libs/1_72_0/libs/filesystem/doc/deprecated.html|Deprecated names and features]] {{ :lib:boost:filesystem_deprecated_features_2020-04-21_2_58_20_pm_.html |Archive du 29/12/2014 le 21/04/2020}} |
| |
===thread=== | ===thread=== |
| |
Peut se remplacer sans problème par un ''std::vector''. | Peut se remplacer sans problème par un ''std::vector''. |
| |
| ===algorithm=== |
| * string |
| |
| <code cpp> |
| std::string str; |
| return boost::to_upper_copy(str); |
| </code> |
| |
| devient |
| |
| <code cpp> |
| std::string str; |
| std::transform(str.begin(), str.end(), str.begin(), ::toupper); |
| return std::move(str); |
| </code> |
| |
| ===boost::lexical_cast=== |
| |
| ''boost::lexical_cast<std::string>(number)'' devient ''std::to_string(number)''. |