Ответ
Помимо стандартной библиотеки (STL), я активно использовал следующие библиотеки и фреймворки:
1. Boost: Это практически "расширенная стандартная библиотека". Я применял различные компоненты:
Boost.Asioдля асинхронного сетевого и низкоуровневого I/O программирования.Boost.Filesystem(теперь в std::filesystem) для кроссплатформенной работы с путями и файловой системой.Boost.Spiritдля написания парсеров прямо в C++ коде.-
Boost.Optional,Boost.Variant(прототипыstd::optional,std::variant).// Пример: асинхронный TCP-клиент с Boost.Asio #include <boost/asio.hpp> using boost::asio::ip::tcp; void async_connect(tcp::socket& socket, const std::string& host) { tcp::resolver resolver(socket.get_executor()); auto endpoints = resolver.resolve(host, "http"); boost::asio::async_connect(socket, endpoints, [](boost::system::error_code ec, tcp::endpoint) { if (!ec) std::cout << "Connected!n"; }); }
2. Фреймворки для GUI: Для разработки десктопных приложений работал с Qt. Использовал его сигналы-слоты, виджеты, модель представления для QTableView, а также QML для декларативного UI.
3. Специализированные библиотеки:
- OpenSSL/libcrypto для реализации криптографических протоколов (TLS, хэши, шифрование).
- Protocol Buffers (protobuf) для сериализации структурированных данных и межпроцессного взаимодействия (RPC).
- gRPC как высокопроизводительный RPC-фреймворк поверх HTTP/2.
- SQLite как встраиваемую СУБД для локального хранения данных.
4. Инструменты для сборки и тестирования: CMake для управления сборкой, Google Test для модульного тестирования, Conan как менеджер пакетов C++.