La historia del lenguaje de programación C++ se remonta a 1979 , cuando Bjarne Stroustrup emprendió algunos desarrollos para su tesis doctoral. De todos los lenguajes que Stroustrup puede utilizar, existe uno llamado Simula, que, como su nombre indica, puede ser un lenguaje diseñado principalmente para simulación. El lenguaje Simula 67 es una variante utilizada por Stroustrup y se considera el lenguaje principal que soporta el paradigma de programación orientada a objetos. Stroustrup considera que este paradigma es útil en el desarrollo de envases. Sin embargo, el lenguaje Simula es demasiado lento para un uso práctico y práctico. Poco después, Bjarne Stroustrup quiso mejorar C apoyando el paradigma orientado a objetos. Profundizó en la implementación OO de Smalltalk para obtener ideas de implementación. Pero no estaba dispuesto a renunciar al rendimiento por esto, por lo que comenzó a trabajar en "C con clases (C con clases)", con la esperanza de que el código C++ debería tener un rendimiento similar (o mejor) al código C cuando se ejecuta.
En 1983 , el nombre del lenguaje se cambió de "C con Clases" a C++. El operador ++ en C es el operador que se utiliza para incrementar una variable, lo que le da una idea de cómo Stroustrup ve el lenguaje. Se agregaron muchas características nuevas durante este período, las más notables de las cuales son funciones virtuales, sobrecarga de funciones, referencias con un signo comercial, la palabra clave const y comentarios de una sola línea con dos barras diagonales.
En 1985 , Stroustrup publicó un libro llamado "El lenguaje de programación C++". Ese mismo año, se implementó C++ como producto comercial. El lenguaje no ha sido estandarizado formalmente, lo que hace de este libro una referencia muy importante. El lenguaje se actualizó nuevamente en 1989 para incluir miembros protegidos y estáticos, así como herencia de múltiples clases.
En 1990 , se publicó el Manual de referencia anotado de C++. Ese mismo año, el compilador Turbo C++ de Borland se lanzaría como producto comercial. Turbo C++ agrega muchas otras bibliotecas que pueden tener un impacto considerable en el desarrollo de C++. Aunque la última versión estable de Turbo C++ fue en 2006, el compilador todavía se utiliza ampliamente.
En 1998 , el Comité de Estándares de C++ publicó el primer estándar internacional C++ ISO/IEC 14882:1998, conocido informalmente como C++98. Se dice que el "Manual de referencia anotado de C++" tuvo una gran influencia en la formulación del estándar. También se incluye la Biblioteca de plantillas estándar, cuyo concepto comenzó a desarrollarse en 1979. En 2003, el comité respondió a varias cuestiones señaladas en las normas de 1998 y las revisó en consecuencia. El lenguaje modificado se llama C++03.
En 2005 , el Comité de Estándares de C++ publicó un informe técnico (llamado TR1) que detalla varias características que planeaban agregar al último estándar de C++. El nuevo estándar se conoce informalmente como C++ 0x porque se espera que sea lanzado antes del final de la primera década. Irónicamente, el nuevo estándar no se lanzará hasta mediados de 2011. Hasta ese momento, se habían publicado varios informes técnicos y algunos compiladores habían comenzado a agregar soporte experimental para nuevas funciones.
A mediados de 2011 , se completó el nuevo estándar C++ (llamado C++11). El proyecto de la biblioteca Boost tuvo un impacto significativo en el nuevo estándar, y algunos de los nuevos módulos provienen directamente de las bibliotecas Boost correspondientes. Algunas de las nuevas características incluyen soporte para expresiones regulares, una biblioteca de aleatorización integral, una nueva biblioteca de temporización de C++, soporte atómico, una biblioteca de subprocesos estándar, una nueva sintaxis de bucle for que proporciona una funcionalidad similar a los bucles foreach en algunos otros idiomas, palabra clave automática, nueva clases de contenedor, mejor soporte para listas de inicializadores de matrices y uniones, y plantillas variadas.
En 2014 , C++ 14 (también conocido como C++ 1y) se lanzó como una pequeña extensión de C++ 11. Las funciones principales son correcciones de errores y pequeñas mejoras. El borrador del procedimiento de votación del estándar internacional se completó a mediados de agosto de 2014. función lambda. constexpr y características de inferencia de tipos.
En 2017 , se lanzó el estándar C17 que ofrece mucho. Mejoras en el lenguaje principal y las bibliotecas.
En 2020 , se lanzó el estándar C++20, que presenta muchas funciones importantes, las más importantes de las cuales son:
Conceptos: Los conceptos cambian la forma en que pensamos y programamos las plantillas. Son categorías semánticas de parámetros de plantilla. Le permiten expresar sus intenciones directamente en el sistema de tipos. Si algo sale mal, recibirá mensajes de error claros.
Biblioteca de rangos: la nueva biblioteca de rangos permite ejecutar algoritmos directamente en contenedores, componerlos con notación de tuberías y aplicarlos a infinitos flujos de datos.
Corrutinas: la programación asincrónica en C++ se generaliza gracias a las corrutinas. Las corrutinas son la base para tareas colaborativas, bucles de eventos, flujos de datos infinitos o canalizaciones.
Módulos: los módulos superan las limitaciones de los archivos de encabezado. La separación de archivos de encabezado y archivos fuente se ha vuelto tan obsoleta como los preprocesadores. Finalmente, tenemos tiempos de compilación más rápidos y una forma más sencilla de crear paquetes.
Concurrencia: punteros inteligentes atómicos, subprocesos de unión y cancelación, biblioteca de sincronización C20, que mejora las capacidades de programación concurrente de C++;
Tutorial de C++
Introducción a C++
Configuración del entorno C++
Sintaxis básica de C++
Comentarios de C++
tipos de datos C ++
Tipos de variables de C++
Alcance variable de C++
Constantes de C++
Tipos de modificadores de C++
Clase de almacenamiento C++
Operadores C++
bucle C ++
juicio de C ++
función C ++
números C ++
matriz C ++
cadena C ++
punteros C ++
Referencias de C++
Fecha y hora de C++
Entrada y salida básica de C++
Estructuras de datos C++
Clases y objetos de C++
herencia C ++
Operadores sobrecargados de C++ y funciones sobrecargadas
Polimorfismo de C++
abstracción de datos de C++
Encapsulación de datos C++
Interfaz C++ (clase abstracta)
Archivos y secuencias C++
Manejo de excepciones de C++
Memoria dinámica C++
Espacio de nombres C++
plantilla C ++
preprocesador C++
Procesamiento de señales C++
subprocesos múltiples en C++
Programación web en C++
Tutorial C++ STL
Biblioteca estándar de C++
1. Conocimientos básicos
8.1 Conceptos básicos de estructuras
8.2 Definición y uso de la estructura
8.3 Matriz de estructura
8.4 Puntero de estructura
8.5 Estructura Estructura anidada
8.6 Estructura como parámetro de función
8.7 Escenarios de uso constante en estructuras
7.1 Conceptos básicos de punteros
7.2 Definición y uso de variables de puntero
7.3 Espacio de memoria ocupado por punteros
7.4 Punteros nulos y punteros comodines
7.5 puntero modificado constante
7.6 Punteros y matrices
7.7 Punteros y funciones
7.8 Punteros, matrices, funciones
1. declaración goto (no recomendado)
2. Matriz unidimensional
3. Matriz bidimensional
4. Transferencia de valor en funciones
5. Declaración de función
6. Escribir funciones en archivos separados
7. puntero
8. Estructura
2. Programación central
3.1 Parámetros predeterminados de la función
3.2 Parámetros del lugar de función
3.3 Sobrecarga de funciones
2.1 Uso básico de referencias
2.2 Notas sobre la cita
2.3 Referencia como parámetro de función
2.4 Referencia como valor de retorno de la función
2.5 La naturaleza de las citas
2.6 Referencia constante
1.1 Antes de ejecutar el programa
1.2 Después de ejecutar el programa
1.3 nuevo operador
1. Modelo de partición de memoria
2. Cotización
3. Función
"Comprensión profunda de C++ 11: análisis y aplicación de nuevas funciones de C++ 11"
"Clásico introductorio de C++ (décima edición)"
"C++ Primer Plus, sexta edición, versión china (producida por Asynchronous Books)"
"Serie de traducción de libros informáticos de Tsinghua: Dominio de C++ (novena edición)"
"Programación avanzada en C++ (4ª edición)"
"Introducción a la programación de juegos en C++ (cuarta edición) (producida por Asynchronous Books)"
"Análisis del código fuente STL"
"Programación en C++: principios y práctica (conceptos básicos) (libro original, segunda edición)"
"Versión china C++ acelerada"
"Pensamientos sobre programación en C++ (dos volúmenes)"
"Versión china de Effective STL: 50 experiencias en el uso eficaz de STL"
"Anatomía de la programación en C++: problemas, soluciones y pautas de diseño"
"Plantillas C++ versión china"
"Nuevas ideas en el diseño de C++"
"Metaprogramación de plantillas C++"
"Práctica de programación concurrente en C ++"
"Lenguaje de programación C++ (Parte 1-3) (Libro original, cuarta edición)"
"Biblioteca estándar de C++ (segunda edición)"
"C++ esencial"
"El diseño y evolución del lenguaje C++"
"Exploración en profundidad del modelo de objetos de C++"
"Programación Genérica y STL"
10 características de C++11 que todo desarrollador de C++ debería utilizar
15 características de C++ 11 que realmente debes usar en tus proyectos de C++
Cómo utilizar expresiones Lambda en C++ 11
Comprensión profunda de C ++ 11
Clasificación de vómitos de sangre: nuevas características de C ++ 11
Nuevas funciones de C++ 11 puntos de conocimiento automáticos y decltype
Nuevas características de C ++ 11: referencia lvalue, referencia rvalue, semántica de movimiento, reenvío perfecto
Inicialización de la lista de nuevas características de C ++ 11
Nuevas características de C++ 11 std::function y expresiones lambda
Nuevas características de C++11: mejoras en la plantilla
Nuevas características de C ++ 11 y puntos de conocimiento relacionados con subprocesos
Nuevas características de C ++ 11 operaciones asincrónicas-asincrónicas
C ++ 11 nuevas funciones de punteros inteligentes
Nuevas características comunes de C ++ 11 (1)
Nuevas características comunes de C ++ 11 (2)
Una breve discusión sobre las nuevas características de C++14.
Todos los puntos de conocimiento sobre las nuevas características de C++14 están aquí
Resumen: Nuevas características de C++17
Características del lenguaje C++20
P1 Introducción a la programación en C++
Archivo de encabezado P2 y declaración de clase
constructor p3
Transferencia de parámetros P4 y valor de retorno
Sobrecarga del operador P5 y objetos temporales
P6 Revisar el proceso de implementación de la clase Complex
P7 tres funciones principales: construcción de copias, replicación de copias y destrucción
P8 Gestión de montón, pila y memoria
P9 Revisar el proceso de implementación de la clase String.
Extensiones P10: plantillas de clases, plantillas de funciones y otras
P11 Composición y herencia
P13 Diseños relacionados con la Comisión
P14 1 Introducción
P15 2 función de conversión
P16 3 constructor no explícito de un argumento
P17 4 clases tipo puntero
P18 5 funcionan como clases
P19 6 discusión sobre la experiencia del espacio de nombres
Plantilla de clase P20 7
P21 Plantilla de 8 funciones
Plantilla de 9 miembros P22
P23 10 especialización
P24 11 Plantilla de especialización parcial
P25 12 parámetros de plantilla de plantilla
P26 13 Acerca de la biblioteca estándar de C++
P27 14 Tres temas
P28 15 Referencia
P29 16 Construcción y destrucción bajo relación compuesta y hereditaria
P30 17 Acerca de vptr y vtbl
P31 18 Acerca de esto
P32 19 0 Acerca del enlace dinámico
P33 19 1 Acerca del enlace dinámico
P34 20 Acerca de Nuevo, Eliminar
P35 21 Operador nuevo, operador eliminado
P36 22 Ejemplo
P37 23 Sobrecarga de nuevo, eliminar $ ejemplo
P38 24 Basic String utiliza newextra para ampliar el volumen de la aplicación
Biblioteca estándar de C++: una colección de clases y funciones escritas en el lenguaje central y parte del propio estándar ISO de C++
Biblioteca de plantillas estándar - Biblioteca de plantillas estándar
Biblioteca C POSIX: especificación de biblioteca estándar C para sistemas POSIX
Comité de Normas ISO C++ - Comité de Normas C++
Preguntas frecuentes sobre C++ - Preguntas frecuentes sobre C++
Free Country : Free Country proporciona código fuente C++ gratuito y bibliotecas C++ que cubren campos de programación C++ como compresión, archivo, programación de juegos, bibliotecas de plantillas estándar y programación GUI.
Grupo de usuarios de C y C++: el grupo de usuarios de C y C++ proporciona código fuente gratuito para proyectos de C++ que cubren diversos campos de programación, incluidos IA, animación, compiladores, bases de datos, depuración, cifrado, juegos, gráficos, GUI, herramientas de lenguaje, programación de sistemas, etc. .
LearnCpp - Aprende programación en C++ gratis
CodeCogs: CodeCogs es una biblioteca colaborativa de código abierto de componentes numéricos para C/C++
codeproject: proyecto de código de recursos C/C++ proporcionado por codeproject
thinkco - código fuente C++ relacionado con juegos
Bibliotecas C/C++ gratuitas: código fuente C++ gratuito y otras herramientas útiles
La biblioteca estándar de C++: esta es una página web que recopila una lista de enlaces a varios sitios web de C/C++.
cplusplus - sitio web de aprendizaje de C++
Códigos fuente de C++: esta es una lista completa de 345 códigos fuente para C++
Biblioteca estándar Apache C++: es una colección de algoritmos, contenedores, iteradores y otros componentes básicos.
ASL: Adobe Source Code Library proporciona una biblioteca de código fuente C++ portátil y revisada por pares.
Boost: una gran colección de bibliotecas C++ de uso general.
BDE: Entorno de desarrollo de Bloomberg Intelligence Labs.
Cinder: una comunidad de desarrollo de código abierto que proporciona codificación creativa de calidad profesional.
Bxxomfort: una biblioteca liviana de solo encabezado que traslada algunas de las nuevas características de C++ 11 a C++ 03.
Dlib: una biblioteca C++ universal multiplataforma diseñada utilizando programación por contrato y tecnología C++ moderna.
EASTL: parte pública EA-STL
ffead-cpp: marco de desarrollo de aplicaciones empresariales
Folly: una biblioteca C++ de código abierto desarrollada y utilizada por Facebook.
JUCE: una biblioteca C++ integral para desarrollar software multiplataforma
libphenom: un marco de eventos para construir sistemas de alto rendimiento y altamente escalables.
LibSourcey: E/S con eventos C++11 para transmisión de vídeo en tiempo real y aplicaciones de red de alto rendimiento
Loki: El diseño de una biblioteca C++, incluida la implementación de patrones y modismos de diseño comunes.
MiLi: una pequeña biblioteca C++ de solo encabezado
openFrameworks: desarrolle un kit de herramientas C++ para codificación creativa.
Qt: marco de interfaz de usuario y aplicación multiplataforma
Motivo: un marco multiplataforma que facilita a los desarrolladores el uso de Java, .Net y Python, al mismo tiempo que satisface sus necesidades de rendimiento y ventajas de C++.
ROOT: Un conjunto de frameworks orientados a objetos con toda la funcionalidad para procesar y analizar grandes cantidades de datos de manera muy eficiente, utilizado por el CERN.
STLport: es una versión representativa de STL
STXXL: biblioteca de plantillas estándar para grandes conjuntos de datos adicionales.
Ultimate++: marco de desarrollo rápido de aplicaciones multiplataforma C++
Biblioteca de plantillas de Windows: biblioteca C++ para desarrollar aplicaciones de Windows y componentes de interfaz de usuario.
Yomm11: abre múltiples métodos para C++11.
Boost.Asio: biblioteca C++ multiplataforma para red y programación de E/S de bajo nivel.
libev: bucle de tiempo de alto rendimiento y con todas las funciones, ligeramente modelado a partir de libevent, pero ya no tiene las mismas limitaciones que libevent, y algunos de sus errores han sido corregidos.
libevent: biblioteca de notificaciones de eventos
libuv: E/S asíncrona multiplataforma.
libco: coroutine, la biblioteca IO subyacente de WeChat que admite 800 millones de usuarios en línea al mismo tiempo. Poderoso
libgo: marco de concurrencia estilo Golang, biblioteca de rutinas de implementación de C++ 11
ACE: kit de herramientas de red orientada a objetos C++
Casablanca: SDK REST de C++
cpp-netlib: una colección de bibliotecas de código abierto para programación de red avanzada
libCurl: biblioteca de transferencia de archivos multiprotocolo
Mongoose: servidor web muy ligero
Muduo: biblioteca de red sin bloqueo C ++ para servidores multiproceso Linux
net_skeleton: biblioteca cliente/servidor TCP para C/C++
POCO: biblioteca de clases C++ para crear aplicaciones de red y basadas en Internet que pueden ejecutarse en sistemas de escritorio, servidores, móviles y integrados.
RakNet: un motor de red C++ multiplataforma y de código abierto para desarrolladores de juegos.
Tufao: un marco web asíncrono construido en C++ sobre Qt.
WebSocket++: biblioteca cliente/servidor websocket basada en C++/Boost Aiso
ZeroMQ: biblioteca de comunicación asíncrona modular de alta velocidad
f-stack: pila de protocolos de código abierto de Tencent, una pila de protocolos en modo de usuario de alto rendimiento basada en DPDK.
NtyTcp: pila de protocolos de un solo subproceso, basada en netmap, DPDK, implementación de rawSocket.
LWIP: una versión simplificada de la implementación de la pila de protocolos TCP/IP para la plataforma RAM.
mTCP: una pila de protocolos TCP/IP de espacio de usuario altamente escalable para sistemas multinúcleo.
4.4BSD: * La pila de protocolos nix se deriva de 4.4BSD.
Nginx: un servidor web HTTP y proxy inverso de alto rendimiento que también proporciona servicios IMAP/POP3/SMTP.
Lighttpd: un software de servidor web de código abierto que es seguro, rápido, cumple con los estándares de la industria, altamente adaptable y optimizado para entornos de alta configuración.
Libmicrohttpd: un servidor web de biblioteca c simple bajo software GNU. La API es simple y rápida.
shttpd: marco de servidor web basado en Mongoose.
CivetWeb: proporciona un servidor web integrado en C/C++ potente y fácil de usar con compatibilidad opcional con CGI, SSL y Lua.
CppCMS: Marco de desarrollo web gratuito de alto rendimiento (no un CMS).
Crow: un marco micro web de C++ (inspirado en Python Flask)
Kore: Servidor/framework web ultrarrápido y flexible para aplicaciones web desarrolladas en C.
libOnion: una biblioteca liviana que le ayuda a crear servidores web utilizando el lenguaje de programación C.
QDjango: Un framework web escrito en C++ y basado en la biblioteca Qt, que intenta emular la API de Django, de ahí el nombre.
Wt: Biblioteca C++ para desarrollar aplicaciones web.
Biblioteca estándar de C++: es una colección de clases y funciones escritas en el lenguaje central y forma parte del propio estándar ISO de C++.
Biblioteca de plantillas estándar: Biblioteca de plantillas estándar, STL
Comité de Normas ISO C++: Comité de Normas C++
FMOD: motor de audio multiplataforma fácil de usar y herramienta de creación de juegos de contenido de audio.
Maximilian: biblioteca de procesamiento de señales digitales de audio y música en C++
OpenAL: biblioteca de audio de código abierto: API de audio multiplataforma
Opus: un códec de audio completamente abierto, libre de derechos y muy versátil
Speex: Códec gratuito, obsoleto por Opus
Tonic: Síntesis de audio eficiente y fácil de usar en C++
Vorbis: Ogg Vorbis es un formato de audio comprimido universal completamente abierto, no propietario y libre de regalías.
lisequence: una biblioteca de C++ para representar y analizar datos de genética de poblaciones.
SeqAn: se centra en algoritmos y estructuras de datos para el análisis de secuencias de datos biológicos.
Vcflib: biblioteca C++ para analizar y procesar archivos VCF
Wham: aplique pruebas de asociación directamente a variantes estructurales genéticas en archivos BAM.
bzip2: una compresión de datos de alta calidad, completamente gratuita y sin patentes
doboz: biblioteca de compresión para una descompresión rápida
PhysicsFS: una biblioteca que proporciona acceso abstracto a varios archivos, utilizados principalmente en videojuegos. El diseño se inspiró en parte en el subsistema de archivos de Quake3.
KArchive: una biblioteca para crear, leer, escribir y manipular archivos (como zip y tar), que proporciona compresión y descompresión transparente de datos utilizando el formato gzip a través de una serie de subclases de QIODevice.
LZ4: algoritmo de compresión muy rápido
LZHAM: base de datos comprimida sin pérdidas, la relación de compresión es cercana a LZMA, pero la velocidad de descompresión es mucho más rápida.
LZMA: el método de compresión común y predeterminado para el formato 7z.
LZMAT: y su rápida biblioteca de compresión de datos sin pérdidas en tiempo real
Minizip: la última corrección de errores de Zlib, admite expansión de disco PKWARE, cifrado AES y almacenamiento en búfer IO.
Snappy: compresión y descompresión rápidas
ZLib: biblioteca de compresión de flujo de datos muy compacta
ZZIPlib: proporciona acceso de lectura a archivos ZIP.
Boost.Compute: biblioteca informática GPU C++ para OpenCL
Bolt: una biblioteca de plantillas de C++ optimizada para GPU
C++React: biblioteca de programación reactiva para C++11
Intel TBB: bloques de construcción de subprocesamiento Intel
Libclsph: biblioteca de simulación de fluidos SPH acelerada por GPU basada en OpenCL
OpenCL: un estándar abierto para la programación paralela de sistemas heterogéneos
OpenMP: API de OpenMP
Thrust: una biblioteca de algoritmos paralelos similar a la biblioteca de plantillas estándar de C++
HPX: un sistema de ejecución universal de C++ para aplicaciones paralelas y distribuidas de cualquier tamaño
VexCL: biblioteca de plantillas de expresiones vectoriales en C++ para OpenCL/CUDA.
Bcrypt: una herramienta de cifrado de archivos multiplataforma que hace que los archivos cifrados sean portátiles a todos los sistemas operativos y procesadores compatibles.
BeeCrypt: una biblioteca de gráficos de cifrado rápido con funciones potentes y una interfaz conveniente.
Botan: biblioteca de cifrado C ++
Crypto++: una biblioteca C++ gratuita para esquemas de cifrado
GnuPG: Una implementación completa del estándar OpenPGP
GnuTLS: una biblioteca de comunicación segura que implementa protocolos SSL, TLS y DTLS
Libgcrypt: biblioteca de gráficos de cifrado basada en GnuPG.
Libmcrypt: seguro para subprocesos y proporciona una API unificada.
LibreSSL: protocolo SSL/TLS gratuito, una bifurcación de OpenSSL 2014
LibTomCrypt: una herramienta de cifrado muy completa, modular y portátil
libsodium: biblioteca de cifrado basada en NaCI que es obstinada y fácil de usar
Nettle: la biblioteca de cifrado subyacente
OpenSSL: una biblioteca de cifrado de código abierto, potente, comercial y con todas las funciones.
hiberlite: mapeo relacional de objetos C ++ para Sqlite3
LevelDB: almacén rápido de valores clave
LMDB: un almacén clave-valor integrado que se ajusta a los cuatro elementos básicos de una base de datos
MySQL++: un contenedor de C++ que encapsula la API C de MySql
RocksDB: almacenamiento rápido de valores-clave integrados de Facebook
SQLite: una base de datos relacional totalmente integrada y con todas las funciones que ocupa solo unos pocos cientos de KB y se puede incluir correctamente en su proyecto.
MongoDB: una base de datos basada en almacenamiento de archivos distribuidos
Boost.Test: Biblioteca de pruebas de impulso
Captura: un marco nativo de C++ muy elegante que solo contiene archivos de encabezado para pruebas unitarias, desarrollo basado en pruebas y desarrollo basado en comportamiento.
CppUnit: marco de pruebas de C++ portado desde JUnit
GoogleTest: marco de prueba de Google C++
ig-debugheap: montón de depuración multiplataforma para rastrear errores de memoria
MemTrack: para rastrear asignaciones de memoria en C++
MicroProfile: perfilador de intentos de red multiplataforma
UnitTest++: marco de prueba unitario ligero de C++
C++ B-Tree: una biblioteca de plantillas que implementa contenedores de memoria de comandos basados en la estructura de datos del árbol B
Hashmaps: implementación del algoritmo de tabla hash de direccionamiento abierto en C++
Cocos2d-x: un marco multiplataforma para crear juegos 2D, libros interactivos, presentaciones y otras aplicaciones gráficas.
Grit: un proyecto comunitario para crear un motor de juego gratuito para juegos 3D de mundo abierto.
lrrlicht: un motor #D en tiempo real de alto rendimiento y código abierto escrito en lenguaje C++
PolyCode: un marco de código abierto para crear juegos implementado en C++ (incluido con Lua).
bgfx: biblioteca de renderizado multiplataforma
El Cairo: biblioteca de gráficos 2D que admite múltiples dispositivos de salida
Horde3D: un pequeño motor de animación y renderizado 3D
magnum: C++11 y motor gráfico OpenGL 2D/3D
Ogre 3D: un motor de renderizado 3D flexible, en tiempo real y orientado a escenas escrito en C++ (no es un motor de juego)
OpenSceneGraph: kit de herramientas de gráficos 3D de código abierto y alto rendimiento
Panda3D: Framework para renderizado 3D y desarrollo de juegos, escrito en Python y C++.
Skia: una completa biblioteca de gráficos 2D para dibujar texto, gráficos e imágenes
urho3d: motor de juegos y renderizado multiplataforma.
Boost.GIL: Biblioteca de imágenes generales
CImg: un pequeño conjunto de herramientas C++ de código abierto para el procesamiento de imágenes
FreeImage: una biblioteca de código abierto que admite formatos de imagen comunes y otros formatos requeridos por las aplicaciones multimedia actuales.
GDCM: biblioteca DICOM de base
ITK: sistema de análisis de imágenes de código abierto multiplataforma
Magick++: interfaz C++ para el programa ImageMagick
OpenCV: biblioteca de visión por computadora de código abierto
tesseract-ocr: motor OCR
VIGRA: biblioteca de visión por computadora C++ de uso general para análisis de imágenes
VTK: Sistema de software gratuito de código abierto para gráficos por ordenador, procesamiento y visualización de imágenes en 3D.
obtener texto: GNU obtener texto
IBM ICU: bibliotecas C, C++ y Java que brindan soporte Unicode y globalización
libiconv: biblioteca de conversión de codificación entre diferentes codificaciones de caracteres
congelado: generador de análisis Jason para C/C++
Jansson: biblioteca en lenguaje C para codificar, decodificar y procesar datos de Jason
jbson: una biblioteca para crear e iterar datos BSON y documentos Json en C++14
JeayeSON: una biblioteca JSON de C++ muy robusta que solo contiene archivos de encabezado
JSON++: analizador JSON de C++
json-parser: analizador JSON escrito en ANSI C portátil con muy poca huella de memoria
json11: una mini biblioteca JSON de C++11
yute: analizador JSON de C++ muy simple
ibjson: biblioteca de análisis e impresión JSON en C, fácilmente integrada con cualquier modelo
libjson: biblioteca JSON ligera
PicoJSON: análisis y serialización de JSON en C++, incluidos solo archivos de encabezado
Qt-Json: una clase simple para analizar entre datos JSON y jerarquías QVariant
QJson: biblioteca basada en Qt para asignar datos JSON a objetos QVariant
RepidJSON: un generador de análisis JSON rápido para C++, que incluye API de estilo SAX y DOM
Boost.Log: Diseñado para ser muy modular y extensible
easyloggingpp: biblioteca de registro de C++, que contiene solo un archivo de encabezado.
Log4cpp: una serie de bibliotecas de C ++ que agregan registros de manera flexible a archivos, registros del sistema, IDSA y otros lugares.
templog: una biblioteca C++ liviana que puede agregar registros a sus aplicaciones C++
btsk: herramienta de inicio del árbol de comportamiento del juego
Objetos en evolución: biblioteca de computación evolutiva ANSI C++ basada en plantillas que puede ayudarlo a escribir sus propios algoritmos de optimización estocástica muy rápidamente.
Caffe: un marco de red neuronal rápido
CCV: una biblioteca moderna de visión por computadora con lenguaje C como núcleo
mlpack: biblioteca extensible de aprendizaje automático de C++
OpenCV: biblioteca de visión por computadora de código abierto
Recomendador: una biblioteca en C para recomendaciones/sugerencias de productos que utiliza filtrado colaborativo.
SHOGUN: herramienta de aprendizaje automático Shogun
sofia-ml: un conjunto de algoritmos incrementales rápidos para el aprendizaje automático
Armadillo: una biblioteca de álgebra lineal C++ de alta calidad que logra un buen equilibrio entre velocidad y facilidad de uso. La sintaxis es muy similar a MatlAB.
blaze: Biblioteca matemática C++ de alto rendimiento para algoritmos densos y dispersos.
ceres-solver: una biblioteca C++ de Google para modelar y resolver grandes problemas complejos de mínimos cuadrados no lineales.
CGal: una colección de algoritmos de conjuntos eficientes y confiables
CML: biblioteca matemática C++ gratuita para juegos y gráficos
Eigen: una biblioteca de encabezados de plantillas de C++ de alto nivel que cubre álgebra lineal, matrices, operaciones vectoriales, resolución numérica y otros algoritmos relacionados.
GMTL: Biblioteca de plantillas de gráficos matemáticos es un conjunto de herramientas para implementar gráficos básicos de manera extensiva.
GMP: una biblioteca C/C++ para cálculos de alta precisión, que trata con enteros con signo, números racionales y números de punto flotante.
GStreamer: una biblioteca para crear gráficos de componentes de procesamiento de medios
LIVE555 Streaming Media: Biblioteca de streaming multimedia que utiliza protocolos estándar abiertos (RTP/RTCP, RTSP, SIP)
libVLC: marco de medios libVLC (VLC SDK)
QtAV: un marco de reproducción multimedia basado en Qt y FFmpeg que puede ayudarte a escribir un reproductor fácilmente
SDL: control directo y sencillo de la capa multimedia
SFML: biblioteca multimedia rápida y sencilla
Box2D: motor de física de juegos 2D.
Bullet: motor de física de juegos 3D.
Chipmunk: biblioteca de física de juegos 2D rápida y ligera
LiquidFun: motor de física de juegos 2D
ODE: Open Dynamics Engine: una biblioteca de código abierto y alto rendimiento para simular la dinámica de cuerpos rígidos.
ofxBox2D: contenedor de marco de código abierto Box2D.
Simbody: una biblioteca de física/dinámica multicuerpo C++ de alto rendimiento para simular sistemas mecánicos y biomecánicos de articulaciones como vehículos, robots y esqueletos humanos.
MOOS-Ivp: Conjunto de módulos C++ de código abierto que proporcionan autonomía a plataformas robóticas, específicamente vehículos marinos autónomos.
MRPT: kit de herramientas de programación de robots móviles
PCL: Point Cloud Library es un proyecto abierto independiente a gran escala para el procesamiento de imágenes 2D/3D y nubes de puntos.
Biblioteca de robótica: una biblioteca C++ independiente que incluye dinámica de robots, planificación y control de movimientos.
RobWork: una colección de bibliotecas C++ para simulación y control de sistemas robóticos.
ROS: Sistema operativo de robot, que proporciona bibliotecas y herramientas para ayudar a los desarrolladores de software a crear aplicaciones de robots.
ChaiScript: un lenguaje de secuencias de comandos integrado fácil de usar para C++.
Lua: un motor de secuencias de comandos pequeño y rápido para archivos de configuración y secuencias de comandos de aplicaciones básicas.
luacxx: API C++11 para crear enlaces Lua
SWIG: un generador de interfaz/envoltorio que permite que su código C++ se vincule a JavaScript, Perl, PHP, Python, Tcl y Ruby.
V7: motor JavaScript integrado.
V8: el rápido motor JavaScript de Google que puede integrarse en cualquier aplicación C++.
Cap'n Proto: Formato rápido de intercambio de datos y sistema RPC.
cereal: biblioteca de serialización C++11
FlatBuffers: biblioteca de serialización con uso eficiente de la memoria
MessagePack: biblioteca de serialización binaria eficiente para C/C++, como JSON
ProtoBuf: búfer de protocolo, formato de intercambio de datos de Google.
SimpleBinaryEncoding: Codificación y decodificación de información de aplicaciones en formato binario para aplicaciones de baja latencia.
Ahorro: IPC/RPC eficiente en varios idiomas, utilizado en C++, Java, Python, PHP, C# y muchos otros lenguajes, desarrollado originalmente por Facebook.
libvpx: SDK de codificación y decodificación VP8/VP9
FFMpeg: una solución completa y multiplataforma para grabar y convertir transmisiones de vídeo y audio.
libde265: Implementación abierta del códec de vídeo h.265.
OpenH264: Códec H.364 de código abierto.
Theora: Formato de compresión de vídeo gratuito y de código abierto.
LibXml++: analizador xml para C++
PugiXML: un analizador XML ligero, simple y rápido para C++ que admite XPath.
RapidXML: intenta crear el analizador XML más rápido manteniendo la facilidad de uso, la portabilidad y una compatibilidad razonable con W3C.
TinyXML: un analizador XML de C++ simple y pequeño que se puede integrar fácilmente en otros proyectos.
TinyXML2: un analizador CML C++ simple y rápido que se puede integrar fácilmente en otros proyectos.
TinyXML++: una interfaz completamente nueva para TinyXML que aprovecha muchas de las ventajas de C++, plantillas, excepciones y un mejor manejo de excepciones.
Xerces-C++: analizador de validación XML escrito en un subconjunto de C++ portátil.
hilo_local
afirmación_estática
nulo
no excepto
tipo decl
constexpr
char16_t
char32_t
alinear
alinea
auto
clase
por defecto
borrar
exportar
externo
en línea
mudable
tamaño de
estructura
usando
es_void
es_integral
es_punto_flotante
es_array
es_enum
es_union
es_clase
es_función
es_puntero
is_lvalue_reference
is_rvalue_referencia
es_miembro_objeto_puntero
is_member_function_pointer
es_fundamental
es_aritmética
es_escalar
es_objeto
es_compuesto
es_referencia
es_miembro_puntero
es_const
es_volátil
es_trivial
es_trivialmente_copiable
is_standard_layout
es_literal_tipo
está_vacío
es_polimórfico
es_abstracto
está_firmado
está_sin firmar
es_constructible
es_trivialmente_constructible
es_nothrow_constructible
es_default_constructible
es_trivialmente_default_constructible
is_nothrow_default_constructible
es_copia_constructible
es_trivialmente_copia_constructible
is_nothrow_copy_constructible
es_move_constructible
es_trivialmente_move_constructible
is_nothrow_move_constructible
es_asignable
es_trivialmente_asignable
is_nothrow_assignable
es_copia_asignable
es_trivialmente_copia_asignable
is_nothrow_copy_assignable
is_move_assignable
is_trivially_move_assignable
is_nothrow_move_assignable
es_destructible
es_trivialmente_destructible
es_nothrow_destructible
has_virtual_destructor
std::matriz
std::lista_adelante
std::comenzar
std::fin
std::mover
Inicialización del contenedor
emplazar
std::mapa_desordenado
std::unordered_multimap
std::conjunto_desordenado
std::unordered_multiset
std::make_tuple
std::obtener
std::empate
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 <bool>>
std :: shared_ptr
std :: débil_ptr
std :: unique_ptr
auto_ptr (en desuso)
Basic_regex
sub_match
Match_results
Función calificada de CV
calificación de cotización
std :: función
std :: bind
std :: bad_function_call
MEM_FN
tipo alias
Inicialización del miembro de la clase
funtor
constructor delegado
Constructor heredado
Constructor de movimiento
Operador de asignación de movimiento
Brackets de ángulo ">"
Plantilla de alias
plantilla externa
plantilla variádica
Parámetros de plantilla predeterminados
STD :: Atomic <Bool>
std :: atomic <bar>
std :: atomic <firmed char>
std :: Atomic <Unsigned Char>
std :: atomic <tort>
std :: Atomic <Unsigned Short>
std :: atomic <int>
std :: Atomic <Unsigned int>
std :: atomic <Long>
std :: Atomic <Unsigned Long>
std :: atómico <largo long>
std :: atomic <sin firmar largo>
std :: atomic <bar8_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 :: hilo
std :: mutex
std :: bloqueo
std :: call_once
std :: atómico
std :: cond_ition_variable
std :: async
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 :: genic_category
std :: error_condition
std :: errc
std :: error_code
std :: system_error
Sintaxis: __pragma (cadena literal)
_Pragma Operador
_cplusplus macro
para bucle para (x: rango)
align
alignas
std :: alignment_of
std :: aligned_storage
std :: max_align_t
std :: alinearse
palabra clave explícita
Sintaxis: static_assert (expresión constante, "cadena de inmediato")
Afirmar estático
límite numérico
cuerda cruda
Sintaxis de tipo de retorno de rastreo
Sintaxis de un amigo extendido
entero extendido
asociación sin restricciones
espacio de nombres en línea
literal definido por el usuario
Enums fuertemente escritos
dispositivo aleatorio
std :: ref y std :: cref
constexpr
expresión de lambda
nullptr
Evitar el estrechamiento del tipo
Lista de inicializador - Lista de inicio
Initializer_list (como parámetro de entrada)
Sintaxis de inicialización unificada y semántica
VAINA
mucho tiempo
mover semántica
referencia de RValue
Características C99
Reglas generalizadas de SFINAE
Compruebe si el tipo es std :: nullptr_t
is_final (verifique si el tipo es el tipo de clase final)
intercambio (reemplace el parámetro real con un nuevo valor y devuelva su valor anterior)
Integer_Sequence (Implementación de la secuencia entera de tiempo de compilación)
rbegin (devuelve un iterador inverso que apunta a un contenedor o matriz)
CRBEGIN (devuelve un iterador inverso que apunta a un contenedor o matriz)
Rend (devuelve el iterador de cola inversa del contenedor o matriz)
Crend (devuelve el iterador de cola inversa del contenedor o matriz)
make_reverse_iterator (cree std :: reverse_iterator con tipos deducidos de argumentos)
BEGIN (devuelve un iterador que apunta al comienzo del contenedor o matriz)
CBegin (devuelve un iterador que apunta al comienzo del contenedor o matriz)
End (devuelve un iterador que apunta al final del contenedor o matriz)
Cend (devuelve un iterador que apunta al final del contenedor o matriz)
rbegin (devuelve un iterador inverso que apunta a un contenedor o matriz)
CRBEGIN (devuelve un iterador inverso que apunta a un contenedor o matriz)
Rend (devuelve el iterador de cola inversa del contenedor o matriz)
Crend (devuelve el iterador de cola inversa del contenedor o matriz)
registro
byte (tipo de byte)
IS_AGGREGATE (verifica si el tipo es un tipo agregado)
IS_SWAPPABLE_WITH (verifica si un objeto de un tipo se puede intercambiar con un objeto del mismo tipo o un tipo diferente)
IS_SWApable (verifica si un objeto de tipo se puede intercambiar con un objeto del mismo tipo o un tipo diferente)
IS_NOTHROW_SWAPPABLE_WITH (verifica si un objeto de un tipo se puede intercambiar con un objeto del mismo tipo o un tipo diferente)
IS_NOTHROW_SWAPABLE (verifica si un objeto de un tipo se puede intercambiar con un objeto del mismo tipo o un tipo diferente)
IS_InVocable (verifica si el tipo se puede invocar con el tipo de argumento dado (como con std :: invoke)))
is_invocable_r (verifica si el tipo se puede invocar con el tipo de argumento dado (como con std :: invoke)))
is_nothrow_invocable (verifica si el tipo se puede llamar con el tipo de argumento dado (como con std :: invoke)))
is_nothrow_invocable_r (verifica si el tipo se puede llamar con el tipo de argumento dado (como con std :: invoke)))
invoke_result (deducir el tipo de resultado de llamar a un objeto invocable con un conjunto de parámetros reales)
void_t (plantilla de alias de parámetros variables)
Conjunción (lógica y metafunción de parámetros variables)
disyunción (lógica o metafunción con parámetros variables)
Ndisjunctionegation (función lógica sin elemento)
integral_constant (compilación constante de tipo especificado con valor especificado)
as_const (obtenga la referencia const a su parámetro)
Aplicar (llame a una función con una tupla de argumentos)
make_from_tuple (construye un objeto a partir de una tupla de argumentos)
opcional (puede o no contener un envoltorio para el objeto)
make_optional (crea un objeto opcional)
std :: swap (std :: opcional) (algoritmo de intercambio especializado)
std :: hash <std :: opcional> (algoritmo especializado std :: hash)
nullopt_t (indicador de tipo opcional con estado no inicializado)
bad_optional_access (excepción que indica el acceso verificado a una opcional sin valor)
Nullopt (objeto de tipo nullopt_t)
Variante (unión identificable a prueba de tipo))
Visite (llame al objeto de función proporcionado con cada argumento en poder de una o más variantes)
holds_alternative (verifica si una variante actualmente contiene un tipo dado)
std :: get (std :: variante) (lea el valor de la variante con el índice o el tipo dado (si el tipo es único), arroje una excepción por error)
get_if (con el índice o tipo dado (si es único), obtenga un puntero al valor de la variante puntiaguda, devuelva un puntero nulo en un error)
std :: swap (std :: variante) (algoritmo de intercambio especializado)
Monostate (un tipo de marcador de posición utilizado como la primera opción opcional de una variante de no defensa no constructible)
bad_variant_access (excepción lanzada al acceder ilegalmente al valor de la variante)
variant_size (obtenga el tamaño de la lista de opciones de variantes en el momento de la compilación)
variant_size_v (obtenga el tamaño de la lista de opciones de variantes en el momento de la compilación)
variant_alternative (obtiene el tipo de opcional especificado por su subíndice en el tiempo de compilación)
variant_alternative_t (obtiene el tipo de opcional especificado por su subíndice en el tiempo de compilación)
std :: hash <std :: variant> (algoritmo especializado std :: hash)
Variant_npos (el subíndice de la variante ilegal)
Cualquier (un objeto que pueda tener instancias de cualquier tipo de copia constrible (copyConstructible))
std :: swap (std :: any) (algoritmo de intercambio especializado)
any_cast (acceso a tipo seguro al objeto contenido)
make_any (crea cualquier objeto)
bad_any_cast (excepción lanzada por Any_cast que devuelve por valor cuando los tipos no coinciden)
to_chars (convertir entero o valor de punto flotante a la imagen de secuencia de caracteres)
from_chars (Convertir secuencia de caracteres en entero o valor de punto flotante)
chars_format (especifique el formato utilizado por std :: to_chars y std :: from_chars)
vacío (verifique si el contenedor está vacío)
Datos (obtiene un puntero a la matriz subyacente)
insert_or_assign (insertar elemento o asignar al elemento actual si ya existe la tecla)
try_emplace (si la clave no existe, inserte en su lugar, si la clave existe, no hagas nada)
Extraer (liberar un nodo de otro contenedor)
fusionar (unir nodos de otro contenedor)
insert_or_assign (insertar elemento o asignar al elemento actual si ya existe la tecla)
try_emplace (si la clave no existe, inserte en su lugar, si la clave existe, no hagas nada)
Extraer (liberar un nodo de otro contenedor)
fusionar (unir nodos de otro contenedor)
<h5 id = "user-content-cpp_headfile_initializer_list" tabindex = "-1" class = "Head