Новости и события » Hi-Tech » Google представил открытую библиотеку Abseil для разработчиков на C++

Google представил открытую библиотеку Abseil для разработчиков на C++

Компания Google представила проект Abseil, в рамках которого открыта коллекция полезного кода для разработчиков на языке C++, расширяющего стандартную библиотеку функций. Исходные тексты распространяются под лицензией Apache 2.0.

В состав библиотеки включены функции общего назначения, используемые в продуктах Google и хорошо протестированные на реально работающих проектах. Одна часть предложенных в Abseil функций заполняет ниши, не определенные в стандарте C++, а другая предоставляет альтернативные реализации штатных функций, оптимизированные для определенных ситуаций или адаптированные для использования в проектах на C++11 из стандартных библиотек C++14 и C++17. Google не пытается продвигать Abseil как альтернативу стандартной библиотеке, а лишь желает поделиться с сообществом кодом, который оказался полезен в собственных проектах.

Компоненты библиотеки:

  • base - базовая часть, включающая код для инициализации и первичные примитивы, которые используют только стандартную библиотеку C++, но при этом выступают в качестве зависимостей для других компонентов Abseil;
  • algorithm - библиотека с коллекцией алгоритмов, дополняющая одноименную стандартную библиотеку C++ и включающая варианты предложенных в ней алгоритмов, оформленных с использованием контейнеров;
  • container - библиотека с дополнительными контейнерами в стиле STL;
  • debugging - отладочная библиотека, добавляющая проверки для выявления утечек;
  • memory - включает совместимую с C++11 реализацию std::make_unique() и других функций, связанных с управлением памятью;
  • meta - включает совместимые с C++11 версии механизмов проверок типов, появившихся в библиотеке type_traits в C++14 и C++17;
  • numeric - предоставляет совместимые с C++11 реализации 128-разрядных целых типов;
  • strings - подборка функций для обработки строк, включая совместимую с C++11 версию типа std::string_view, появившегося в стандарте C++17;
  • synchronization - примитивы для организации параллельно выполняемых потоков, класс absl::Mutex (альтернатива std::mutex) и набор абстракций для синхронизации потоков;
  • time - функции для операций с абсолютными моментами времени, отрезками времени, форматирования и разбора значений времени;
  • types - подборка типов, например, совместимый с C++11 вариант absl::optional.

Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх