A história da linguagem de programação C++ remonta a 1979 , quando Bjarne Stroustrup realizou alguns desenvolvimentos para sua tese de doutorado. De todas as linguagens que o Stroustrup pode usar, existe uma chamada Simula, que, como o nome sugere, pode ser uma linguagem projetada principalmente para simulação. A linguagem Simula 67 é uma variante usada por Stroustrup e é considerada a principal linguagem de suporte ao paradigma de programação orientada a objetos. Stroustrup considera esse paradigma útil no desenvolvimento de embalagens. No entanto, a linguagem Simula é muito lenta para uso prático e prático. Pouco tempo depois, Bjarne Stroustrup quis aprimorar C apoiando o paradigma orientado a objetos. Ele se aprofundou na implementação de OO do Smalltalk para obter ideias de implementação. Mas ele não estava disposto a abrir mão do desempenho por causa disso, então começou a trabalhar em "C com classes (C com classes)", esperando que o código C++ tivesse desempenho semelhante (ou melhor) ao código C durante a execução.
Em 1983 , o nome da linguagem foi alterado de “C with Classes” para C++. O operador ++ em C é o operador para incrementar variáveis, o que lhe dá algumas dicas sobre como Stroustrup vê a linguagem. Muitos novos recursos foram adicionados durante este período, os mais notáveis são funções virtuais, sobrecarga de funções, referências com um e comercial, a palavra-chave const e comentários de linha única usando duas barras.
Em 1985 , Stroustrup publicou um livro chamado "The C++ Programming Language". No mesmo ano, o C++ foi implementado como um produto comercial. A linguagem não foi formalmente padronizada, tornando este livro uma referência muito importante. A linguagem foi atualizada novamente em 1989 para incluir membros protegidos e estáticos, bem como herança de múltiplas classes.
Em 1990 , o Manual de Referência Anotado do C++ foi lançado. Nesse mesmo ano, o compilador Turbo C++ da Borland seria lançado como um produto comercial. Turbo C++ adiciona muitas outras bibliotecas que podem ter um impacto considerável no desenvolvimento de C++. Embora a última versão estável do Turbo C++ tenha sido em 2006, o compilador ainda é amplamente utilizado.
Em 1998 , o Comitê de Padrões C++ publicou o primeiro Padrão Internacional C++ ISO/IEC 14882:1998, informalmente conhecido como C++98. Diz-se que o "Manual de Referência Anotado C++" teve grande influência na formulação do padrão. Também está incluída a Biblioteca de Modelos Padrão, cujo desenvolvimento de conceito começou em 1979. Em 2003, o comité respondeu a diversas questões relatadas nas normas de 1998 e revisou-as em conformidade. A linguagem alterada é chamada C++03.
Em 2005 , o Comitê de Padrões C++ publicou um relatório técnico (chamado TR1) detalhando vários recursos que planejavam adicionar ao padrão C++ mais recente. O novo padrão é informalmente conhecido como C++0x porque espera-se que seja lançado antes do final da primeira década. Ironicamente, o novo padrão não será lançado até meados de 2011. Até então, vários relatórios técnicos foram publicados e alguns compiladores começaram a adicionar suporte experimental para novos recursos.
Em meados de 2011 , o novo padrão C++ (chamado C++11) foi concluído. O projeto da biblioteca Boost teve um impacto significativo no novo padrão, com alguns dos novos módulos vindos diretamente das bibliotecas Boost correspondentes. Alguns dos novos recursos incluem suporte a expressões regulares, uma biblioteca abrangente de randomização, uma nova biblioteca de temporização C++, suporte atômico, uma biblioteca de threading padrão, uma nova sintaxe de loop for que fornece funcionalidade semelhante aos loops foreach em algumas outras linguagens, palavra-chave automática, novo classes de contêiner, melhor suporte para listas de inicializadores de união e array e modelos variados.
Em 2014 , o C++ 14 (também conhecido como C++ 1y) foi lançado como uma pequena extensão do C++ 11. Suas principais funções são correções de bugs e pequenas melhorias. O projeto de procedimento de votação de padrão internacional foi concluído em meados de agosto de 2014 para fortalecer o. função lambda constexpr e recursos de inferência de tipo.
Em 2017 , o padrão C17 foi lançado. Aprimoramentos na linguagem principal e nas bibliotecas.
Em 2020 , o padrão C++20 foi lançado, lançando muitos recursos pesados, sendo os mais importantes:
Conceitos: Os conceitos mudam a maneira como pensamos e os modelos de programas. São categorias semânticas de parâmetros de modelo. Eles permitem que você expresse suas intenções diretamente no sistema de tipos. Se algo der errado, você receberá mensagens de erro claras.
Biblioteca de intervalos: A nova biblioteca de intervalos torna possível executar algoritmos diretamente em contêineres, compô-los com notação pipe e aplicá-los a fluxos de dados infinitos.
Corrotinas: a programação assíncrona em C++ se torna popular graças às corrotinas. As corrotinas são a base para tarefas colaborativas, loops de eventos, fluxos de dados infinitos ou pipelines.
Módulos: Os módulos superam as limitações dos arquivos de cabeçalho. A separação entre arquivos de cabeçalho e arquivos de origem tornou-se tão obsoleta quanto os pré-processadores. Finalmente, temos tempos de construção mais rápidos e uma maneira mais fácil de construir pacotes.
Simultaneidade: Atomic Smart Pointers, Joining & Cancellable Threads, The C20 Synchronization Library, que aprimora os recursos de programação simultânea em C++;
Tutorial de C++
Introdução ao C++
Configurações do ambiente C++
Sintaxe básica C++
Comentários C++
Tipos de dados C++
Tipos de variáveis C++
Escopo de variável C++
Constantes C++
Tipos de modificadores C++
Classe de armazenamento C++
Operadores C++
Ciclo C++
Julgamento C++
Função C++
Números C++
Matriz C++
Cadeia de caracteres C++
Ponteiros C++
Referências C++
Data e hora C++
Entrada e saída básicas em C++
Estruturas de dados C++
Classes e objetos C++
Herança C++
Operadores sobrecarregados em C++ e funções sobrecarregadas
Polimorfismo C++
Abstração de dados C++
Encapsulamento de dados C++
Interface C++ (classe abstrata)
Arquivos e fluxos C++
Tratamento de exceções C++
Memória dinâmica C++
Espaço para nome C++
Modelo C++
Pré-processador C++
Processamento de sinal C++
Multithreading C++
Programação Web C++
Tutorial C++ STL
Biblioteca padrão C++
1. Conhecimento básico
8.1 Conceitos básicos de estruturas
8.2 Definição e utilização da estrutura
8.3 Matriz de estrutura
8.4 Ponteiro de estrutura
8.5 Estrutura Estrutura aninhada
8.6 Estrutura como parâmetro de função
8.7 Cenários de uso Const em estruturas
7.1 Conceitos básicos de ponteiros
7.2 Definição e uso de variáveis ponteiro
7.3 Espaço de memória ocupado por ponteiros
7.4 Ponteiros nulos e ponteiros selvagens
7.5 ponteiro modificado const
7.6 Ponteiros e matrizes
7.7 Ponteiros e funções
7.8 Ponteiros, arrays, funções
1. declaração goto (não recomendado)
2. Matriz unidimensional
3. Matriz bidimensional
4. Transferência de valor em funções
5. Declaração de função
6. Escrevendo funções em arquivos separados
7. Ponteiro
8. Estrutura
2. Programação Básica
3.1 Parâmetros padrão da função
3.2 Parâmetros de função
3.3 Sobrecarga de funções
2.1 Uso básico de referências
2.2 Notas sobre citação
2.3 Referência como parâmetro de função
2.4 Referência como valor de retorno da função
2.5 A natureza das citações
2.6 Referências constantes
1.1 Antes de executar o programa
1.2 Depois de executar o programa
1.3 novo operador
1. Modelo de partição de memória
2. Citação
3. Função
"Compreensão aprofundada do C++ 11: Análise e aplicação de novos recursos do C++ 11"
"Clássico introdutório ao C++ (10ª edição)"
"C++ Primer Plus 6ª Edição Versão Chinesa (produzida pela Asynchronous Books)"
"Série de tradução de livros de computador Tsinghua: Dominando C++ (9ª edição)"
"Programação Avançada em C++ (4ª Edição)"
"Introdução à programação de jogos C++ (4ª edição) (produzido por Asynchronous Books)"
"Análise de código-fonte STL"
"Programação C++: Princípios e Prática (Básico) (Livro Original 2ª Edição)"
"Versão chinesa acelerada em C++"
"Reflexões sobre programação C++ (dois volumes)"
"Versão chinesa do STL eficaz: 50 experiências no uso eficaz do STL"
"Anatomia da Programação C++: Problemas, Soluções e Diretrizes de Design"
"Modelos C++ versão chinesa"
"Novo pensamento em design C++"
"Metaprogramação de modelo C++"
"Prática de programação simultânea em C++"
"Linguagem de programação C++ (Parte 1-3) (livro original 4ª edição)"
"Biblioteca padrão C++ (2ª edição)"
"C++ Essencial"
"O Design e a Evolução da Linguagem C++"
"Exploração aprofundada do modelo de objeto C++"
"Programação Genérica e STL"
10 recursos do C++ 11 que todo desenvolvedor C++ deve usar
15 recursos do C++ 11 que você realmente deve usar em seus projetos C++
Como usar expressões Lambda em C++11
Compreensão profunda de C++ 11
Classificação de vômito com sangue: novos recursos do C++ 11
Novos recursos do C++ 11, pontos de conhecimento automático e decltype
Novos recursos do C++ 11: referência lvalue, referência rvalue, semântica de movimentação, encaminhamento perfeito
Inicialização da lista de novos recursos do C++ 11
Novos recursos do C++ 11 expressões std::function e lambda
Novos recursos do C++ 11: melhorias de modelo
Novos recursos do C++ 11 e pontos de conhecimento relacionados a threads
Novos recursos do C++ 11 operações assíncronas-assíncronas
Novos recursos do C++ 11, ponteiros inteligentes
Novos recursos comuns do C++ 11 (1)
Novos recursos comuns do C++ 11 (2)
Uma breve discussão sobre os novos recursos do C++14
Todos os pontos de conhecimento sobre os novos recursos do C++ 14 estão aqui
Resumo: Novos recursos do C++17
Recursos da linguagem C++20
P1 Introdução à Programação C++
Arquivo de cabeçalho P2 e declaração de classe
Construtor P3
Transferência de parâmetro P4 e valor de retorno
Sobrecarga do operador P5 e objetos temporários
P6 Revisar o processo de implementação da classe Complex
P7 três funções principais: construção de cópia, replicação de cópia e destruição
P8 Heap, pilha e gerenciamento de memória
P9 Revise o processo de implementação da classe String
Extensões P10: modelos de classe, modelos de função e outros
P11 Composição e herança
P13 Projetos relacionados à Comissão
P14 1 Introdução
Função de conversão P15 2
P16 3 construtor não explícito de um argumento
P17 4 ponteiros como classes
P18 5 funcionam como aulas
Discussão sobre experiência de namespace P19 6
Modelo de aula P20 7
P21 8 Modelo de Função
Modelo de membro P22 9
Especialização P23 10
Especialização parcial do modelo P24 11
Parâmetros do modelo P25 12
P26 13 Sobre a biblioteca padrão C++
P27 14 Três temas
P28 15 Referência
P29 16 Construção e destruição sob relacionamento composto e de herança
P30 17 Sobre vptr e vtbl
P31 18 Sobre isso
P32 19 0 Sobre vinculação dinâmica
P33 19 1 Sobre vinculação dinâmica
P34 20 Sobre Novo, Excluir
P35 21 Operador novo, operador excluído
P36 22 Exemplo
P37 23 Sobrecarga novo,excluir$ exemplo
P38 24 Basic String usa newextra para expandir o volume do aplicativo
Biblioteca Padrão C++ - uma coleção de classes e funções escritas na linguagem principal e parte do próprio padrão ISO C++
Biblioteca de modelos padrão - Biblioteca de modelos padrão
Biblioteca C POSIX - especificação da biblioteca padrão C para sistemas POSIX
Comitê de Padrões ISO C++ - Comitê de Padrões C++
Perguntas frequentes sobre C++ - Perguntas frequentes sobre C++
Free Country - Free Country fornece código-fonte C++ gratuito e bibliotecas C++ que cobrem campos de programação C++, como compactação, arquivamento, programação de jogos, bibliotecas de modelos padrão e programação GUI.
C and C++ Users Group - O grupo de usuários C e C++ fornece código-fonte gratuito para projetos C++ cobrindo vários campos de programação, incluindo IA, animação, compiladores, bancos de dados, depuração, criptografia, jogos, gráficos, GUI, ferramentas de linguagem, programação de sistema, etc. .
LearnCpp - Aprenda programação c++ gratuitamente
CodeCogs - CodeCogs é uma biblioteca colaborativa de código aberto de componentes numéricos para C/C++
codeproject - projeto de código de recurso C/C++ fornecido por codeproject
thinkingco - código-fonte C++ relacionado ao jogo
Bibliotecas C/C++ gratuitas - Código-fonte C++ gratuito e outras ferramentas úteis
A Biblioteca Padrão C++ - Esta é uma página da web que coleta uma lista de links para vários sites C/C++
cplusplus - site de aprendizagem C++
Códigos-fonte C++ - Esta é uma lista abrangente de 345 códigos-fonte para C++
Biblioteca Padrão Apache C++: é uma coleção de algoritmos, contêineres, iteradores e outros componentes básicos
ASL: Adobe Source Code Library fornece uma biblioteca de código-fonte C++ portátil e revisada por pares.
Boost: Uma grande coleção de bibliotecas C++ de uso geral.
BDE: Ambiente de desenvolvimento do Bloomberg Intelligence Labs.
Cinder: uma comunidade de desenvolvimento de código aberto que fornece codificação criativa de qualidade profissional.
Bxxomfort: uma biblioteca leve somente de cabeçalho que transporta alguns dos novos recursos do C++ 11 para o C++ 03.
Dlib: Uma biblioteca C++ universal de plataforma cruzada projetada usando programação de contrato e tecnologia C++ moderna.
EASTL: parte pública EA-STL
ffead-cpp: Estrutura de desenvolvimento de aplicativos corporativos
Folly: Uma biblioteca C++ de código aberto desenvolvida e usada pelo Facebook.
JUCE: Uma biblioteca C++ abrangente para desenvolvimento de software multiplataforma
libphenom: Uma estrutura de eventos para construir sistemas de alto desempenho e altamente escaláveis.
LibSourcey: IO com eventos C++11 para streaming de vídeo em tempo real e aplicativos de rede de alto desempenho
Loki: O design de uma biblioteca C++, incluindo a implementação de padrões e expressões de design comuns.
MiLi: uma pequena biblioteca C++ somente de cabeçalho
openFrameworks: Desenvolva um kit de ferramentas C++ para codificação criativa.
Qt: aplicativo multiplataforma e estrutura de interface de usuário
Motivo: uma estrutura multiplataforma que facilita aos desenvolvedores o uso de Java, .Net e Python, ao mesmo tempo que atende às suas necessidades de desempenho e vantagens do C++.
ROOT: Um conjunto de frameworks orientados a objetos com todas as funcionalidades para processar e analisar grandes quantidades de dados de forma muito eficiente, utilizado pelo CERN.
STLport: é uma versão representativa do STL
STXXL: Biblioteca de modelos padrão para grandes conjuntos de dados adicionais.
Ultimate++: estrutura de desenvolvimento rápido de aplicativos multiplataforma C++
Biblioteca de modelos do Windows: biblioteca C++ para desenvolvimento de aplicativos do Windows e componentes de UI
Yomm11: Abra vários métodos para C++ 11.
Boost.Asio: Biblioteca C++ multiplataforma para rede e programação de E/S de baixo nível.
libev: Loop de tempo completo e de alto desempenho, ligeiramente modelado após libevent, mas não tem mais as mesmas limitações do libevent, e alguns de seus bugs foram corrigidos.
libevent: biblioteca de notificação de eventos
libuv: E/S assíncrona multiplataforma.
libco: coroutine, biblioteca IO subjacente do WeChat que suporta 800 milhões de usuários online ao mesmo tempo. Poderoso
libgo: estrutura de simultaneidade estilo Golang, biblioteca de corrotinas de implementação C++ 11
ACE: Kit de ferramentas de rede orientada a objetos C++
Casablanca: SDK REST C++
cpp-netlib: Uma coleção de bibliotecas de código aberto para programação de rede avançada
libCurl: biblioteca de transferência de arquivos multiprotocolo
Mongoose: servidor web muito leve
Muduo: biblioteca de rede sem bloqueio C++ para servidores multithread Linux
net_skeleton: biblioteca cliente/servidor TCP para C/C++
POCO: Biblioteca de classes C++ para construção de aplicativos baseados em rede e Internet que podem ser executados em desktops, servidores, dispositivos móveis e sistemas embarcados.
RakNet: Um mecanismo de rede C++ de código aberto e plataforma cruzada para desenvolvedores de jogos.
Tufao: Um framework web assíncrono construído em C++ sobre Qt.
WebSocket++: biblioteca cliente/servidor websocket baseada em C++/Boost Aiso
ZeroMQ: biblioteca de comunicação assíncrona modular e de alta velocidade
pilha f: pilha de protocolos de código aberto da Tencent, uma pilha de protocolos de modo de usuário de alto desempenho baseada em DPDK.
NtyTcp: Pilha de protocolo de thread único, baseada em netmap, DPDK, implementação rawSocket.
LWIP: Uma versão simplificada da implementação da pilha de protocolos TCP/IP para a plataforma RAM.
mTCP: Uma pilha de protocolos TCP/IP de espaço de usuário altamente escalável para sistemas multi-core.
4.4BSD: * A pilha de protocolos nix é derivada do 4.4BSD.
Nginx: um servidor web HTTP e proxy reverso de alto desempenho que também fornece serviços IMAP/POP3/SMTP.
Lighttpd: Um software de servidor web de código aberto que é seguro, rápido, compatível com os padrões da indústria, altamente adaptável e otimizado para ambientes de alta configuração.
Libmicrohttpd: Um servidor web de biblioteca C simples em software GNU. A API é simples e rápida.
shttpd: Estrutura de servidor web baseada em Mongoose.
CivetWeb: Fornece um servidor web C/C++ integrado, fácil de usar e poderoso, com suporte opcional para CGI, SSL e Lua.
CppCMS: Estrutura gratuita de desenvolvimento web de alto desempenho (não um CMS).
Crow: uma micro estrutura web C++ (inspirada em Python Flask)
Kore: Servidor/framework web ultrarrápido e flexível para aplicações web desenvolvidas em C.
libOnion: uma biblioteca leve que ajuda a criar servidores web usando a linguagem de programação C.
QDjango: Um framework web escrito em C++ e baseado na biblioteca Qt, tentando emular a API Django, daí o nome.
Wt: Biblioteca C++ para desenvolvimento de aplicações web.
Biblioteca Padrão C++: É uma coleção de classes e funções escritas na linguagem principal e faz parte do próprio padrão ISO C++.
Biblioteca de modelos padrão: Biblioteca de modelos padrão, STL
Comitê de Padrões ISO C++: Comitê de Padrões C++
FMOD: mecanismo de áudio multiplataforma fácil de usar e ferramenta de criação de jogos de conteúdo de áudio.
Maximilian: biblioteca de processamento de sinal digital de áudio e música C++
OpenAL: biblioteca de áudio de código aberto – API de áudio multiplataforma
Opus: um codec de áudio totalmente aberto, isento de royalties e altamente versátil
Speex: codec gratuito, obsoleto pela Opus
Tonic: síntese de áudio eficiente e fácil de usar em C++
Vorbis: Ogg Vorbis é um formato de áudio compactado universal totalmente aberto, não proprietário e isento de royalties.
lisequence: Uma biblioteca C++ para representar e analisar dados de genética populacional.
SeqAn: Concentra-se em algoritmos e estruturas de dados para análise sequencial de dados biológicos.
Vcflib: biblioteca C++ para análise e processamento de arquivos VCF
Wham: Aplique testes de associação diretamente a variantes estruturais genéticas em arquivos BAM.
bzip2: Uma compactação de dados totalmente gratuita, sem patentes e de alta qualidade
doboz: biblioteca de compactação para descompactação rápida
PhysicsFS: Uma biblioteca que fornece acesso abstrato a vários arquivos, usados principalmente em videogames. O design foi parcialmente inspirado no subsistema de arquivos do Quake3.
KArchive: Uma biblioteca para criar, ler, gravar e manipular arquivos compactados (como zip e tar), que fornece compactação e descompactação transparente de dados usando o formato gzip por meio de uma série de subclasses de QIODevice.
LZ4: Algoritmo de compressão muito rápido
LZHAM: Banco de dados de compactação sem perdas, a taxa de compactação é próxima do LZMA, mas a velocidade de descompactação é muito mais rápida.
LZMA: O método de compactação padrão e comum para o formato 7z.
LZMAT: e sua biblioteca de compactação de dados rápida e sem perdas em tempo real
Minizip: a última correção de bug do Zlib, suporta abrangência de disco PKWARE, criptografia AES e buffer IO.
Snappy: compactação e descompressão rápida
ZLib: biblioteca de compactação de fluxo de dados muito compacta
ZZIPlib: Fornece acesso de leitura a arquivos ZIP.
Boost.Compute: biblioteca de computação GPU C++ para OpenCL
Bolt: uma biblioteca de modelos C++ otimizada para GPUs
C++ React: biblioteca de programação reativa para C++ 11
Intel TBB: blocos de construção de threading Intel
Libclsph: biblioteca de simulação de fluidos SPH acelerada por GPU baseada em OpenCL
OpenCL: Um padrão aberto para programação paralela de sistemas heterogêneos
OpenMP: API OpenMP
Impulso: uma biblioteca de algoritmos paralelos semelhante à biblioteca de modelos padrão C++
HPX: Um sistema de tempo de execução C++ universal para aplicações paralelas e distribuídas de qualquer tamanho
VexCL: biblioteca de modelos de expressão vetorial C++ para OpenCL/CUDA.
Bcrypt: uma ferramenta de criptografia de arquivos multiplataforma, os arquivos criptografados são portáveis para todos os sistemas operacionais e processadores suportados.
BeeCrypt: Uma biblioteca gráfica de criptografia rápida com funções poderosas e interface conveniente.
Botan: biblioteca de criptografia C++
Crypto++: uma biblioteca C++ gratuita para esquemas de criptografia
GnuPG: uma implementação completa do padrão OpenPGP
GnuTLS: Uma biblioteca de comunicação segura que implementa protocolos SSL, TLS e DTLS
Libgcrypt: biblioteca gráfica de criptografia baseada em GnuPG.
Libmcrypt: Thread-safe, fornecendo uma API unificada.
LibreSSL: Protocolo SSL/TLS gratuito, um fork do OpenSSL 2014
LibTomCrypt: Uma ferramenta de criptografia muito abrangente, modular e portátil
libsodium: biblioteca de criptografia baseada em NaCI que é opinativa e fácil de usar
Nettle: a biblioteca de criptografia subjacente
OpenSSL: uma biblioteca de criptografia de código aberto poderosa, comercial e completa.
hiberlite: mapeamento objeto-relacional C++ para Sqlite3
LevelDB: armazenamento rápido de chave-valor
LMDB: um armazenamento de valor-chave incorporado que está em conformidade com os quatro elementos básicos de um banco de dados
MySQL++: um wrapper C++ que encapsula a API C do MySql
RocksDB: armazenamento rápido de valores-chave incorporados do Facebook
SQLite: um banco de dados relacional totalmente incorporado e completo que tem apenas algumas centenas de KB e pode ser incluído corretamente em seu projeto.
MongoDB: um banco de dados baseado em armazenamento distribuído de arquivos
Boost.Test: biblioteca de testes de reforço
Catch: Uma estrutura nativa C++ muito elegante que contém apenas arquivos de cabeçalho para testes de unidade, desenvolvimento orientado a testes e desenvolvimento orientado a comportamento.
CppUnit: estrutura de teste C++ portada do JUnit
GoogleTest: estrutura de teste do Google C++
ig-debugheap: Heap de depuração multiplataforma para rastrear erros de memória
MemTrack: para rastrear alocações de memória em C++
MicroProfile: criador de perfil de tentativa de rede multiplataforma
UnitTest++: estrutura leve de teste de unidade C++
C++ B-Tree: uma biblioteca de modelos que implementa contêineres de memória de comando com base na estrutura de dados da árvore B
Hashmaps: Implementação de algoritmo de tabela hash de endereçamento aberto em C++
Cocos2d-x: Uma estrutura multiplataforma para construção de jogos 2D, livros interativos, apresentações e outras aplicações gráficas.
Grit: Um projeto comunitário para construir um motor de jogo gratuito para jogos 3D de mundo aberto.
lrrlicht: um mecanismo #D em tempo real de alto desempenho e código aberto escrito em linguagem C++
PolyCode: Uma estrutura de código aberto para criação de jogos implementada em C++ (empacotado com Lua).
bgfx: biblioteca de renderização multiplataforma
Cairo: biblioteca gráfica 2D com suporte para vários dispositivos de saída
Horde3D: Um pequeno mecanismo de renderização e animação 3D
magnum: mecanismo gráfico C++ 11 e OpenGL 2D/3D
Ogre 3D: um mecanismo de renderização 3D flexível, em tempo real e orientado a cenas, escrito em C++ (não um mecanismo de jogo)
OpenSceneGraph: kit de ferramentas gráficas 3D de código aberto de alto desempenho
Panda3D: Framework para renderização 3D e desenvolvimento de jogos, escrito em Python e C++.
Skia: uma biblioteca gráfica 2D completa para desenhar texto, gráficos e imagens
urho3d: renderização multiplataforma e mecanismo de jogo.
Boost.GIL: Biblioteca geral de imagens
CImg: Um pequeno kit de ferramentas C++ de código aberto para processamento de imagens
FreeImage: Uma biblioteca de código aberto que suporta formatos de imagem comuns e outros formatos exigidos pelos aplicativos multimídia atuais.
GDCM: biblioteca DICOM de base
ITK: sistema de análise de imagem de código aberto multiplataforma
Magick++: interface C++ para o programa ImageMagick
OpenCV: biblioteca de visão computacional de código aberto
tesseract-ocr: mecanismo de OCR
VIGRA: Biblioteca de visão computacional C++ de uso geral para análise de imagens
VTK: Sistema de software livre de código aberto para computação gráfica 3D, processamento e visualização de imagens.
gettexto: GNU gettexto
IBM ICU: bibliotecas C, C++ e Java que fornecem suporte Unicode e globalização
libiconv: biblioteca de conversão de codificação entre diferentes codificações de caracteres
congelado: gerador de análise Jason para C/C++
Jansson: biblioteca em linguagem C para codificação, decodificação e processamento de dados Jason
jbson: uma biblioteca para construir e iterar dados BSON e documentos Json em C++ 14
JeayeSON: uma biblioteca C++ JSON muito robusta que contém apenas arquivos de cabeçalho
JSON++: analisador JSON C++
json-parser: analisador JSON escrito em ANSI C portátil com consumo de memória muito baixo
json11: uma mini biblioteca JSON C++11
juta: analisador C++ JSON muito simples
ibjson: biblioteca de análise e impressão JSON em C, facilmente integrada com qualquer modelo
libjson: biblioteca JSON leve
PicoJSON: análise e serialização JSON em C++, incluindo apenas arquivos de cabeçalho
Qt-Json: uma classe simples para análise entre dados JSON e hierarquias QVariant
QJson: biblioteca baseada em Qt para mapear dados JSON para objetos QVariant
RepidJSON: um gerador rápido de análise JSON para C++, incluindo APIs estilo SAX e DOM
Boost.Log: Projetado para ser muito modular e extensível
easyloggingpp: biblioteca de registro em C++, contendo apenas um único arquivo de cabeçalho.
Log4cpp: Uma série de bibliotecas C++ que adicionam logs de maneira flexível a arquivos, logs do sistema, IDSA e outros locais.
templog: uma biblioteca C++ leve que pode adicionar log às suas aplicações C++
btsk: ferramenta de inicialização da árvore de comportamento do jogo
Objetos em evolução: biblioteca de computação evolucionária ANSI C++ baseada em modelo que pode ajudá-lo a escrever seus próprios algoritmos de otimização estocástica muito rapidamente.
Caffe: uma estrutura de rede neural rápida
CCV: Uma moderna biblioteca de visão computacional com a linguagem C como núcleo
mlpack: biblioteca extensível de aprendizado de máquina C++
OpenCV: biblioteca de visão computacional de código aberto
Recomendador: biblioteca AC para recomendações/sugestões de produtos usando filtragem colaborativa.
SHOGUN: ferramenta de aprendizado de máquina Shogun
sofia-ml: Um conjunto de algoritmos incrementais rápidos para aprendizado de máquina
Armadillo: Uma biblioteca de álgebra linear C++ de alta qualidade que atinge um bom equilíbrio entre velocidade e facilidade de uso. A sintaxe é muito semelhante ao MatlAB
blaze: Biblioteca matemática C++ de alto desempenho para algoritmos densos e esparsos.
ceres-solver: Uma biblioteca C++ do Google para modelar e resolver problemas grandes e complexos de mínimos quadrados não lineares.
CGal: Uma coleção de algoritmos de conjunto eficientes e confiáveis
CML: biblioteca matemática C++ gratuita para jogos e gráficos
Eigen: Uma biblioteca de cabeçalho de modelo C++ de alto nível que cobre álgebra linear, matrizes, operações vetoriais, resolução numérica e outros algoritmos relacionados.
GMTL: Mathematical Graphics Template Library é um conjunto de ferramentas para implementar extensivamente gráficos básicos.
GMP: Uma biblioteca C/C++ para cálculos de alta precisão, lidando com inteiros assinados, números racionais e números de ponto flutuante.
GStreamer: Uma biblioteca para construção de gráficos de componentes de processamento de mídia
LIVE555 Streaming Media: Biblioteca de streaming multimídia usando protocolos de padrão aberto (RTP/RTCP, RTSP, SIP)
libVLC: estrutura de mídia libVLC (VLC SDK)
QtAV: uma estrutura de reprodução multimídia baseada em Qt e FFmpeg que pode ajudá-lo a escrever um player facilmente
SDL: Controle direto simples da camada de mídia
SFML: biblioteca multimídia rápida e simples
Box2D: mecanismo de física de jogo 2D.
Bullet: mecanismo de física de jogo 3D.
Chipmunk: biblioteca de física de jogos 2D rápida e leve
LiquidFun: mecanismo de física de jogo 2D
ODE: Open Dynamics Engine - uma biblioteca de código aberto e de alto desempenho para simular a dinâmica de corpos rígidos.
ofxBox2D: wrapper de estrutura de código aberto Box2D.
Simbody: Uma biblioteca C++ de dinâmica/física multicorpo de alto desempenho para simular biomecânica articular e sistemas mecânicos como veículos, robôs e esqueletos humanos.
MOOS-Ivp: Um conjunto de módulos C++ de código aberto que fornecem autonomia para plataformas robóticas, especificamente veículos marítimos autônomos.
MRPT: Kit de ferramentas de programação de robôs móveis
PCL: Point Cloud Library é um projeto aberto independente e em grande escala para processamento de imagens 2D/3D e nuvem de pontos.
Biblioteca de Robótica: Uma biblioteca C++ independente que inclui dinâmica de robôs, planejamento e controle de movimento.
RobWork: Uma coleção de bibliotecas C++ para simulação e controle de sistemas robóticos.
ROS: Robot Operating System, que fornece bibliotecas e ferramentas para ajudar desenvolvedores de software a criar aplicativos para robôs.
ChaiScript: Uma linguagem de script incorporada fácil de usar para C++.
Lua: Um mecanismo de script pequeno e rápido para arquivos de configuração e scripts básicos de aplicativos.
luacxx: API C++ 11 para criar ligações Lua
SWIG: Um gerador de wrapper/interface que permite que seu código C++ seja vinculado a JavaScript, Perl, PHP, Python, Tcl e Ruby
V7: mecanismo JavaScript incorporado.
V8: mecanismo JavaScript rápido do Google que pode ser incorporado em qualquer aplicativo C++.
Cap'n Proto: Formato rápido de troca de dados e sistema RPC.
cereal: biblioteca de serialização C++ 11
FlatBuffers: biblioteca de serialização com uso eficiente de memória
MessagePack: biblioteca de serialização binária eficiente para C/C++, como JSON
ProtoBuf: Buffer de protocolo, formato de troca de dados do Google.
SimpleBinaryEncoding: Codificação e decodificação de informações de aplicativos em formato binário para aplicativos de baixa latência.
Thrift: IPC/RPC multilíngue eficiente, usado em C++, Java, Python, PHP, C# e muitas outras linguagens, originalmente desenvolvidas pelo Facebook.
libvpx: SDK de codificação e decodificação VP8/VP9
FFMpeg: Uma solução completa e multiplataforma para gravação e conversão de fluxos de vídeo e áudio.
libde265: Implementação aberta do codec de vídeo h.265.
OpenH264: Codec H.364 de código aberto.
Theora: Formato de compressão de vídeo gratuito e de código aberto.
LibXml++: analisador xml para C++
PugiXML: Um analisador XML leve, simples e rápido para C++ que suporta XPath.
RapidXML: Tenta criar o analisador XML mais rápido, mantendo a facilidade de uso, portabilidade e compatibilidade W3C razoável.
TinyXML: Um analisador XML C++ simples e pequeno que pode ser facilmente integrado a outros projetos.
TinyXML2: Um analisador CML C++ simples e rápido que pode ser facilmente integrado a outros projetos.
TinyXML++: Uma interface completamente nova para TinyXML que aproveita muitas das vantagens do C++, modelos, exceções e melhor tratamento de exceções.
Xerces-C++: analisador de validação XML escrito em um subconjunto de C++ portátil.
thread_local
static_assert
nullptr
não, exceto
decltype
constexpr
char16_t
char32_t
alinhar
alinhar
auto
aula
padrão
excluir
exportar
externo
em linha
mutável
tamanho de
estrutura
usando
is_void
é_integral
é_ponto_flutuante
is_array
is_enum
é_união
é_class
é_função
is_pointer
is_lvalue_reference
is_rvalue_reference
is_member_object_pointer
is_member_function_pointer
é_fundamental
é_aritmética
é_escalar
é_objeto
é_composto
é_referência
is_member_pointer
is_const
é_volátil
é_trivial
é_trivialmente_copiável
is_standard_layout
é_literal_type
está_vazio
é_polimórfico
é_abstrato
está_assinado
is_unsigned
é_construtível
é_trivialmente_constructível
is_nothrow_constructible
is_default_constructible
is_trivially_default_constructible
is_nothrow_default_constructible
is_copy_constructible
é_trivially_copy_constructible
is_nothrow_copy_constructible
is_move_constructible
is_trivially_move_constructible
is_nothrow_move_constructible
é_atribuível
é_trivialmente_assignável
is_nothrow_assignable
is_copy_assignable
is_trivially_copy_assignable
is_nothrow_copy_assignable
is_move_assignable
is_trivially_move_assignable
is_nothrow_move_assignable
é_destrutível
é_trivialmente_destrutível
is_nothrow_destructible
has_virtual_destructor
std::matriz
std::forward_list
std::começo
std::fim
std::mover
Inicialização do contêiner
colocar
std::unordered_map
std::unordered_multimap
std::unordered_set
std::unordered_multiset
std::make_tuple
std::obter
std::gravata
std::hash<std::string>
std :: hash <std :: u16string>
std :: hash <std :: u32string>
std :: hash <std :: wstring>
std :: hash <std :: error_code>
std :: hash <std :: bitset>
std :: hash <std :: type_index>
std :: hash <std :: vector <osl >>
std :: shared_ptr
std :: frAcha_ptr
std :: Único_ptr
auto_ptr (depreciado)
Basic_Regex
sub_match
Match_Results
função qualificada do CV
Qualificação da cotação
std :: function
std :: bind
std :: bad_function_call
mem_fn
Tipo Alias
Inicialização do membro da classe
FUNCOR
delegado construtor
Construtor herdado
mover construtor
mover operador de atribuição
Suportes de ângulo ">"
Modelo de Alias
modelo externo
Modelo Variádico
Parâmetros de modelo padrão
std :: Atomic <Ool>
std :: Atomic <Char>
std :: atomic <char assinado>
std :: Atomic <char não assinado>
std :: Atomic <THUTH>
std :: Atomic <curto não assinado>
std :: atomic <int>
std :: Atomic <não assinado int>
std :: Atomic <long>
std :: Atomic <Long não assinado>
std :: Atomic <long>
std :: Atomic <Long Long> não assinado>
std :: atomic <char8_t>
std :: atomic <char16_t>
std :: atomic <char32_t>
std :: atomic <wchar_t>
std :: atomic <std :: int8_t>
std :: atomic <std :: uint8_t>
std :: atomic <std :: int16_t>
std :: atomic <std :: uint16_t>
std :: atomic <std :: int32_t>
std :: atomic <std :: uint32_t>
std :: atomic <std :: int64_t>
std :: atomic <std :: uint64_t>
std :: atomic <std :: int_least8_t>
std :: atomic <std :: uint_least8_t>
std :: atomic <std :: int_least16_t>
std :: atomic <std :: uint_least16_t>
std :: atomic <std :: int_least32_t>
std :: atomic <std :: uint_least32_t>
std :: atomic <std :: int_least64_t>
std :: atomic <std :: uint_least64_t>
std :: atomic <std :: int_fast8_t>
std :: atomic <std :: uint_fast8_t>
std :: atomic <std :: int_fast16_t>
std :: atomic <std :: uint_fast16_t>
std :: atomic <std :: int_fast32_t>
std :: atomic <std :: uint_fast32_t>
std :: atomic <std :: int_fast64_t>
std :: atomic <std :: uint_fast64_t>
std :: thread
std :: mutex
std :: bloqueio
std :: call_once
std :: Atomic
std :: cond_ition_variable
std :: assíncrono
volátil
std :: futuro
std :: thread_local
std :: excepcion_ptr
std :: make_exception_ptr
std :: current_exception
std :: Rethrow_Exception
std :: nested_exception
std :: throw_with_nested
std :: Rethrow_if_nested
std :: error_category
std :: generic_category
std :: error_condition
std :: errc
std :: error_code
std :: system_error
Sintaxe: __pragma (string literal)
_ Operadorpragma
_cplusplus macro
para loop para (X: Range)
alinhado
alignas
std :: alignment_of
std :: alinhed_storage
std :: max_align_t
std :: alinhe
palavra -chave explícita
Sintaxe: static_assert (expressão constante, "string prompt")
ASSERTA ESTÁTICA
limite numérico
corda crua
Sintaxe do tipo de retorno de rastreamento
Sintaxe de amigo estendido
Inteiro estendido
Associação irrestrita
espaço para nome em linha
literal definido pelo usuário
Enums fortemente digitados
dispositivo aleatório
Std :: Ref e STD :: Cref
Constexpr
expressão lambda
nullptr
Impedir o estreitamento do tipo
Lista inicializadora - Lista de atividades
Initializer_list (como parâmetro de entrada)
Sintaxe de inicialização unificada e semântica
Pod
muito longo
mover semântica
referência de rvalue
Recursos C99
Regras generalizadas de Sfinae
Verifique se o tipo é std :: nullptr_t
is_final (verifique se o tipo é o tipo de classe final)
troca (substitua o parâmetro real por um novo valor e retorne seu valor anterior)
Integer_sequence (implementação da sequência inteira de tempo de compilação)
rbegin (retorna um iterador reverso apontando para um recipiente ou matriz)
Crbegin (retorna um iterador reverso apontando para um recipiente ou matriz)
rend (retorna o iterador de cauda reversa do recipiente ou matriz)
Crend (retorna o iterador de cauda reversa do recipiente ou matriz)
make_reverse_iterator (crie std :: reverse_iterator com tipos deduzidos dos argumentos)
Begin (retorna um iterador apontando para o início do recipiente ou matriz)
CBEGIN (retorna um iterador apontando para o início do recipiente ou matriz)
final (retorna um iterador apontando para o final do recipiente ou matriz)
Cend (retorna um iterador apontando para o final do recipiente ou matriz)
rbegin (retorna um iterador reverso apontando para um recipiente ou matriz)
Crbegin (retorna um iterador reverso apontando para um recipiente ou matriz)
rend (retorna o iterador de cauda reversa do recipiente ou matriz)
Crend (retorna o iterador de cauda reversa do recipiente ou matriz)
registrar
Byte (tipo de byte)
is_agregate (verifica se o tipo é do tipo agregado)
is_swappable_with (verifica se um objeto de um tipo pode ser trocado com objetos dos mesmos tipos ou diferentes tipos)
is_swappable (verifica se um objeto de um tipo pode ser trocado com um objeto do mesmo tipo ou um tipo diferente)
is_nothrow_swappable_with (verifica se um objeto de um tipo pode ser trocado com objetos dos mesmos tipos ou diferentes tipos)
is_nothrow_swappable (verifica se um objeto de um tipo pode ser trocado com um objeto do mesmo tipo ou um tipo diferente)
is_invocable (verifica se o tipo pode ser chamado com o tipo de argumento fornecido (como no std :: Invoke)))
is_invocable_r (verifica se o tipo pode ser chamado com o tipo de argumento fornecido (como no std :: Invoke)))
is_nothrow_invocable (verifica se o tipo pode ser chamado com o tipo de argumento fornecido (como em std :: Invoke))
is_nothrow_invocable_r (verifica se o tipo pode ser chamado com o tipo de argumento fornecido (como em std :: Invoke))
Invoke_result (derivando o tipo de resultado de chamar um objeto chamável com um conjunto de parâmetros reais)
void_t (modelo de alias de parâmetros variável)
Conjunção (lógica e meta-função de parâmetros variáveis)
Disjunção (lógica ou meta-função com parâmetros variáveis)
ndisJunctionEgation (função lógica de não elementos)
integral_constant (constante de tempo de compilação do tipo especificado com valor especificado)
as_const (obtenha a referência const ao seu parâmetro)
Aplique (ligue para uma função com uma tupla de argumentos)
make_from_tuple (constrói um objeto de uma tupla de argumentos)
opcional (pode ou não segurar um invólucro para o objeto)
make_optional (crie um objeto opcional)
STD :: Swap (STD :: Opcional) (Algoritmo de Swap especializado em std :: swap)
std :: hash <std :: opcional> (algoritmo de hash :: hash especializado)
nullopt_t (indicador de tipo opcional com estado não inicializado)
Bad_Optcional_Access (exceção indicando acesso verificado a um opcional sem valor)
Nullopt (objeto Nullopt_t Type)
Variante (união identificável segura do tipo)
Visite (ligue para o objeto de função fornecido com cada argumento mantido por uma ou mais variantes)
Holds_alternative (verifica se uma variante atualmente possui um determinado tipo)
std :: get (std :: variant) (leia o valor da variante com o índice ou tipo fornecido (se o tipo for exclusivo), faça uma exceção no erro)
get_if (com o índice ou tipo fornecido (se for único), obtenha um ponteiro para o valor da variante pontiaguda, retorne um ponteiro nulo no erro)
STD :: Swap (STD :: Variant) (Algoritmo de Swap especializado em Std :: Swap)
Monostate (um tipo de espaço reservado usado como a primeira opção opcional de uma variante não-construída)
bad_variant_access (exceção jogada ao acessar ilegalmente o valor da variante)
variant_size (obtenha o tamanho da lista de opções da variante no momento da compilação)
variant_size_v (obtenha o tamanho da lista de opções da variante no horário de compilação)
Variant_alternative (recebe o tipo de opcional especificado por seu subscrito no horário de compilação)
variant_alternative_t (recebe o tipo de opcional especificado por seu subscrito no tempo de compilação)
std :: hash <std :: variant> (algoritmo de hash :: hash especializado)
variant_npos (o subscrito da variante ilegal)
Qualquer (um objeto que possa manter instâncias de qualquer tipo de cópia construída (copictonscrutível))
std :: swap (std :: qualquer) (algoritmo STD :: swap especializado)
Any_cast (acesso à segurança do tipo ao objeto contido)
make_any (crie qualquer objeto)
Bad_any_cast (Exceção lançada por Any_cast que retorna por valor quando os tipos não correspondem)
to_chars (converta o valor inteiro ou ponto flutuante para a imagem de sequência de caracteres)
From_chars (converta a sequência de caracteres em valor inteiro ou ponto flutuante)
chars_format (especifique o formato usado por std :: to_chars e std :: from_chars)
vazio (verifique se o contêiner está vazio)
dados (recebem um ponteiro para a matriz subjacente)
insert_or_assign (elemento inserir ou atribuir ao elemento atual se a chave já existir)
Try_emplace (se a chave não existir, insira -a no lugar, se a chave existir, não faça nada)
Extrato (libere um nó de outro contêiner)
mesclar (junte nós de outro contêiner)
insert_or_assign (elemento inserir ou atribuir ao elemento atual se a chave já existir)
Try_emplace (se a chave não existir, insira -a no lugar, se a chave existir, não faça nada)
Extrato (libere um nó de outro contêiner)
mesclar (junte nós de outro contêiner)
<h5 id = "User-content-cpp_headfile_initializer_list" tabindex = "-1" class = "Head