The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

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

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

В состав библиотеки включены функции общего назначения, используемые в продуктах Google и хорошо протестированные на реально работающих проектах. Одна часть предложенных в Abseil функций заполняет ниши, не определённые в стандарте C++, а другая предоставляет альтернативные реализации штатных возможностей стандартов C++14 и C++17, адаптированные для использования в коде на C++11 (например, типы optional, any и string_view). 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 - подборка функций для обработки строк, включая absl::StrCat(), absl::StrJoin() и absl::StrSplit(), а также совместимую с C++11 версию типа std::string_view, появившегося в стандарте C++17
  • synchronization - примитивы для организации параллельно выполняемых потоков, класс absl::Mutex (оптимизированная замена std::mutex) и набор абстракций для синхронизации потоков;
  • time - функции для операций с абсолютными моментами времени (absl::Time), отрезками времени (absl::Duration), форматирования и разбора значений времени. Также предложен absl::Now() , оптимизированный вариант std::chrono::system_clock::now();
  • types - подборка типов, например, совместимый с C++11 вариант absl::optional.

Дополнительно развивается вариант библиотеки для языка Python, включающий систему обработки флагов командной строки и модуль для организации ведения логов.

  1. Главная ссылка к новости (https://opensource.googleblog....)
Лицензия: CC-BY
Тип: Программы
Ключевые слова: cpp, abseil, google
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Crazy Alex, 00:06, 27/09/2017 [ответить] [смотреть все]
  • –11 +/
    Какая-то совершенно бессмысленная штука Зачем нужна почему не взять сразу норм... весь текст скрыт [показать]
     
     
  • 2.3, skybon, 00:24, 27/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Самое весёлое, что с std variant T, E и std expected на горизонте исключения ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.4, Аноним, 01:03, 27/09/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Только во влажных мечтах растодетей.
     
  • 3.7, Crazy Alex, 02:44, 27/09/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Какая милая наивность expected иногда хорошо подходит, но никоим образом не дел... весь текст скрыт [показать]
     
     
  • 4.8, angra, 03:12, 27/09/2017 [^] [ответить] [смотреть все]  
  • +15 +/
    > Ну, или вам в C/go, это там любят всё явно на каждый чих проверять.

    Вот лохи то, не то что реальные пацаны, программы которых просто падают с абсолютно одинаковым unhandled exception по совершенно разным причинам. Ведь пользователь ни в коем случае не должен узнать, что именно пошло не так. А то еще загуглит решение или сам решит проблему. Нет, пользователь программы должен страдать.

     
     
  • 5.18, Анинимим, 10:06, 27/09/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    То ли дело error codes --- пусть пользователь даже не знает, что программа игнор... весь текст скрыт [показать]
     
     
  • 6.27, Crazy Alex, 11:12, 27/09/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Это как раз с expected решается не проверишь, а там ошибка - получишь старый до... весь текст скрыт [показать]
     
  • 5.24, Crazy Alex, 11:05, 27/09/2017 [^] [ответить] [смотреть все]  
  • +/
    Во-первых, ты передёргиваешь, и сам это понимаешь Отложить обработку исключений... весь текст скрыт [показать]
     
  • 5.28, А, 11:16, 27/09/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Код ошибки Опаньки что-то пошло не так ГуглХроме стайл Когда же доктора научатс... весь текст скрыт [показать]
     
  • 4.10, Vkni, 04:58, 27/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Для такого сценария как раз почти подходит variant Но я сомневаюсь, что в нём с... весь текст скрыт [показать]
     
  • 3.9, Vkni, 04:52, 27/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    std variant - это довольно дeбильная штука, т к если T и E - это один тип, то ... весь текст скрыт [показать]
     
  • 2.12, Sabakwaka, 05:31, 27/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +8 +/
    >> Какая-то совершенно бессмысленная штука.

    Но у тебя против неё есть волшебная сила — идти мимо.

     
     
  • 3.25, Crazy Alex, 11:07, 27/09/2017 [^] [ответить] [смотреть все]  
  • +/
    А то У гугла вообще много странного, которое, вероятно, не с пустого места роди... весь текст скрыт [показать]
     
  • 1.2, deadfood, 00:19, 27/09/2017 [ответить] [смотреть все]  
  • +1 +/
    Зачем это нужно, когда есть буст?
     
     
  • 2.5, Аноним, 02:31, 27/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +9 +/
    от буста в последние годы разрабы бегут как от дуста ...
     
     
  • 3.17, RaizerHall, 09:56, 27/09/2017 [^] [ответить] [смотреть все]  
  • +4 +/
    Едрить коптить То его все задрачивали, а теперь оказывается все от него бегут ... весь текст скрыт [показать]
     
     
  • 4.20, Аноним, 10:19, 27/09/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    вышли стильно молодежные стандарты? с более понятными доками и прочим?
     
  • 4.23, Аноним, 10:33, 27/09/2017 [^] [ответить] [смотреть все]  
  • +/
    Джун сэкстраполировал свою неосиляторскую шаражку на весь мир ... весь текст скрыт [показать]
     
  • 3.33, Аноним, 14:11, 27/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    А мужики-то не знали...
     
  • 2.6, Аноним, 02:36, 27/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –6 +/
    Зачем это нужно, когда есть раст?
     
     
  • 3.15, Аноним, 09:36, 27/09/2017 [^] [ответить] [смотреть все]  
  • +17 +/
    Потому, что не каждый разработчик педе...ст.
     
     
  • 4.39, burjui, 12:24, 28/09/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    пупоразрывающий хохот, сопровождаемый руколомными аплодисментами, Петросян вскоч... весь текст скрыт [показать]
     
  • 3.29, Василий Теркин, 11:43, 27/09/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    А что, Rust как язык, уже стандартизировали?
     
  • 2.13, Аноним, 07:56, 27/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Когда-то было скучно и я писал многопоточный процесс-сервер на boost С тех пор ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.16, Аноним, 09:42, 27/09/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Ты просто не умеешь в многопоточность Ни в одном языке против неё не существует... весь текст скрыт [показать]
     
     
  • 4.19, анон, 10:09, 27/09/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    сообщения об ошибках компиляции в плюсах известная слабость Про это и деды писа... весь текст скрыт [показать]
     
  • 4.31, anonymous, 12:12, 27/09/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    erlang
     
     
  • 5.37, Crazy Alex, 17:42, 27/09/2017 [^] [ответить] [смотреть все]  
  • +/
    О да, там-то сообщения - вершина понятности. Причём, блин, в рантайме.
     
  • 1.14, Аноним, 08:07, 27/09/2017 [ответить] [смотреть все]  
  • –1 +/
    Зачем это нужно, когда есть dlib?
     
  • 1.21, Аноним, 10:26, 27/09/2017 [ответить] [смотреть все]  
  • +1 +/
    ой, а можно тоже самое, только с c 11 и c 03 ... весь текст скрыт [показать]
     
     
  • 2.34, Аноним, 14:13, 27/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Boost ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.38, SPYIIS, 22:34, 27/09/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    Hooyust
     
  • 1.22, yet another anonymous, 10:30, 27/09/2017 [ответить] [смотреть все]  
  • +/
    В google coding standard использование своего метапрограммирования (да и шаблонов) было запрещено. Как они дошли до создания subj?
     
     
  • 2.26, Crazy Alex, 11:10, 27/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    И исключений. Тем не менее дошли. А куда деваться - текущие плюсы без всего этого становятся совершенно бессмысленными - это стало слишком важной частью языка.
     
     
  • 3.35, Аноним, 14:45, 27/09/2017 [^] [ответить] [смотреть все]  
  • +/
    Скорее "выработалась методика правильного использования эксепшенов"
     
     
  • 4.36, Crazy Alex, 17:41, 27/09/2017 [^] [ответить] [смотреть все]  
  • +/
    Она сто лет как выработалась - с момента ухода от checked exceptions. Но гугл зависел (и зависит), от старого кода, где эксепшны не живут. Но сейчас ежу ясно, что плюсовая библиотека общего пользования без эксепшнов и прочих удобных и полезных плюшек просто не взлетит. Тем более, если они претендуют на использование современного тсиля плюсов и реализацию фишек новых стандартов.
     
     
  • 5.40, анон, 16:05, 28/09/2017 [^] [ответить] [смотреть все]  
  • +/
    никаких изменений по поводу исключений нет.
    https://google.github.io/styleguide/cppguide.html#Exceptions

    Сомнительная вкусность плюшек исключений всё так же недостаточно заманчива для гуглокодеров.

     
  • 1.30, Аноним, 12:08, 27/09/2017 [ответить] [смотреть все]  
  • +/
    Ничем не учатся ... весь текст скрыт [показать]
     
  • 1.32, dq0s4y71, 12:30, 27/09/2017 [ответить] [смотреть все]  
  • +1 +/
    Очередная реализация strings для С++? Пора уже, а то давненько что-то не было...
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor