O repositório contém o código da biblioteca Abseil C++. Abseil é uma coleção de código aberto de código C++ (compatível com C++ 14) projetada para aumentar a biblioteca padrão C++.
Sobre Abseil
Início rápido
Construindo Rapel
Apoiar
Mapa de código
Lançamentos
Licença
Ligações
Abseil é uma coleção de código aberto de código de biblioteca C++ projetada para aumentar a biblioteca padrão C++. O código da biblioteca Abseil é coletado da base de código C++ do próprio Google, foi extensivamente testado e usado na produção e é o mesmo código do qual dependemos em nossa vida diária de codificação.
Em alguns casos, o Abseil fornece peças que faltam no padrão C++; em outros, o Abseil fornece alternativas ao padrão para necessidades especiais que encontramos através do uso na base de código do Google. Indicamos esses casos claramente no código da biblioteca que fornecemos a você.
Abseil não pretende ser um concorrente da biblioteca padrão; acabamos de descobrir que muitos desses utilitários têm um propósito em nossa base de código e agora queremos fornecer esses recursos para a comunidade C++ como um todo.
Se você quiser apenas começar, certifique-se de pelo menos executar o Abseil Quickstart. O Quickstart contém informações sobre como configurar seu ambiente de desenvolvimento, baixar o código Abseil, executar testes e fazer um binário simples funcionar.
Bazel e CMake são os sistemas de construção oficiais do Abseil. Consulte o início rápido para obter mais informações sobre como criar o Abseil usando o sistema de compilação Bazel. Se você precisar de suporte do CMake, verifique as instruções de construção do CMake e o início rápido do CMake.
Abseil segue a Política de Suporte C++ Fundamental do Google. Consulte esta tabela para obter uma lista de versões de compiladores, plataformas e ferramentas de construção atualmente suportadas.
Abseil contém os seguintes componentes da biblioteca C++:
base
A biblioteca base contém código de inicialização e outros códigos dos quais todos os outros códigos do Abseil dependem. O código dentro base não pode depender de nenhum outro código (exceto a biblioteca padrão C++).
algorithm
A biblioteca algorithm contém acréscimos à biblioteca <algorithm> C++ e versões baseadas em contêiner de tais algoritmos.
cleanup
A biblioteca cleanup contém o tipo de construção de fluxo de controle absl::Cleanup que é usado para executar um retorno de chamada na saída do escopo.
container
A biblioteca container contém contêineres adicionais no estilo STL, incluindo os contêineres não ordenados de "mesa suíça" do Abseil.
crc A biblioteca crc contém código para computar verificações de redundância cíclica para detecção de erros em dados.
debugging
A biblioteca debugging contém código útil para permitir verificações de vazamentos e utilitários de stacktrace e simbolização.
flags
A biblioteca flags contém código para lidar com flags de linha de comando para bibliotecas e binários construídos com Abseil.
hash
A biblioteca hash contém a estrutura de hash e implementações de functor de hash padrão para tipos hasháveis no Abseil.
log
A biblioteca log contém macros LOG e CHECK e recursos para gravar mensagens registradas em disco, stderr ou destinos extensíveis pelo usuário.
memory
A biblioteca memory contém recursos de gerenciamento de memória que aumentam a biblioteca <memory> do C++.
meta
A meta contém versões compatíveis de verificações de tipo disponíveis nas versões C++14 e C++17 da biblioteca C++ <type_traits> .
numeric
A biblioteca numeric contém tipos inteiros de 128 bits, bem como implementações de funções matemáticas bit a bit do C++20.
profiling
A biblioteca profiling contém código utilitário para criação de perfil de entidades C++. Atualmente é uma dependência privada de outras bibliotecas Abseil.
random
A biblioteca random contém funções para gerar valores psuedorandom.
status
A biblioteca status contém abstrações para tratamento de erros, especificamente absl::Status e absl::StatusOr<T> .
strings
A biblioteca strings contém uma variedade de rotinas e utilitários de strings, incluindo uma versão compatível com C++14 do tipo std::string_view C++17.
synchronization
A biblioteca synchronization contém primitivas de simultaneidade (classe absl::Mutex do Abseil, uma alternativa a std::mutex ) e uma variedade de abstrações de sincronização.
time
A biblioteca time contém abstrações para computação com pontos absolutos no tempo, durações de tempo e formatação e análise de tempo dentro de fusos horários.
types
A biblioteca types contém tipos de utilitários que não são contêineres, como uma versão compatível com C++14 do tipo std::optional C++17.
utility
A biblioteca utility contém código utilitário e auxiliar.
Abseil recomenda usuários "live-at-head" (atualizem para o commit mais recente do branch master sempre que possível). No entanto, percebemos que essa filosofia não funciona para todos os projetos, por isso também fornecemos versões de suporte de longo prazo para as quais fazemos backport de correções para bugs graves. Consulte nosso documento de gerenciamento de liberação para obter mais detalhes.
A biblioteca Abseil C++ é licenciada sob os termos da licença Apache. Consulte LICENÇA para obter mais informações.
Para mais informações sobre Abseil:
Consulte nossa Introdução ao Abseil
Leia Por que adotar o Abseil para entender nossa filosofia de design.
Leia nossas Garantias de compatibilidade com rapel para entender o que prometemos a você e o que esperamos de você em troca.