From 0c281348507144e8e7e289f37586ca14a17fca48 Mon Sep 17 00:00:00 2001 From: Yan Romao Date: Wed, 9 Apr 2025 23:15:55 +0100 Subject: [PATCH] Update boost@1d7h5P1Q0RVHryKPVogQy.md Added information about Boost, its advantages, available libraries and how to get started. --- .../content/boost@1d7h5P1Q0RVHryKPVogQy.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/data/roadmaps/cpp/content/boost@1d7h5P1Q0RVHryKPVogQy.md b/src/data/roadmaps/cpp/content/boost@1d7h5P1Q0RVHryKPVogQy.md index e69de29bb..8bc94bed1 100644 --- a/src/data/roadmaps/cpp/content/boost@1d7h5P1Q0RVHryKPVogQy.md +++ b/src/data/roadmaps/cpp/content/boost@1d7h5P1Q0RVHryKPVogQy.md @@ -0,0 +1,35 @@ +# Boost + +Boost is a widely acknowledged collection of high-quality C++ libraries aimed at making C++ development more productive. As of version 1.88, it contains 165 libraries for various purposes. + +## Advantages of using Boost + +There are various advantages of using Boost. The main one is ability to avoid reinventing the wheel if a Boost library already implements the functionality you need. Other important advantages are: +- Boost libraries are frequently reviewed, well-designed and extensively tested prior release. +- Boost is open-source and available under a free licence, including for commercial use – The Boost Software Licence. +- Boost allows for cross-platform development, with single source code. Boost libraries support Windows, various Linux variants, Apple OS X, IOS, Android, and Xbox. +- Libraries have comprehensive documentation, with detailed introduction on how to get started, supported by many examples. Since Boost libraries are widely acknowledged – there are a lot of information available online from various sources and on various languages. + +## Most popular libraries and Library categories + +The most notable and recognised Boost libraries are: + +- Boost.Asio: provides a cross-platform low-level asynchronous I/O library for network programming. Boost.Beast is built on top of Boost.Asio and provides HTTP and Websocket interfaces. +- Boost.Log: provides tools for adding logging to libraries and applications. +- Boost.Program_options: provides interfaces for the application command line and config file parsing. + +To ease navigation through a significant range of libraries – Boost libraries are organised into different categories. + +There are 23 libraries available for Containers and 22 for Data Structures. 19 libraries that covered Maths, they provide support for statistics, geometry, and linear algebra. + +For Concurrent Programming, Function objects and higher-order programming, String processing, Template Metaprogramming, Generic Programming, and Miscellaneous utilities, there are on average 15 libraries for each category. + +For the remainder, there are libraries for: Correctness and testing, Iterators, Patterns and Idioms, and Programming Interfaces with around 6-7 libraries for each category; Domain Specific, Error handling, Parsing, Memory, and Preprocessor Metaprogramming with 3-5 libraries for each category; And State Machines with two libraries. + +Finally, there are single libraries for Image Processing and Inter-language (Python-C++ integration). + +Many Boost libraries have been accepted into the C++ standards - smart pointers, threads, regex, random, ratio, tuple - to C++11; filesystem, any, optional, variant, string_view to C++17. + +## How to learn Boost? + +Head to Boost official website ([@official@Boost](https://www.boost.io)) or directly to documentation’s “Getting Started” guide ([@official@Boost](https://www.boost.io/doc/user-guide/getting-started.html)).