if
switch
for
while
do-while
continue
break
goto
return
inline
noexcept
throw
try
catch
decltype
auto
alignas
const
volatile
constexpr
nullptr
typedef
static_cast
dynamic_cast
const_cast
reinterpret_cast
new
delete
this
friend
override
final
explicit
static
Esta es una referencia de los conceptos del lenguaje C++.
Conceptos básicos
Comentarios Tabla ASCII Nombres e identificadores Tipos – Tipos fundamentales Objeto – Ámbito – Tiempo de vida Definiciones y regla de una definición Búsqueda de nombre calificada – no calificada (ADL) Regla como-si Comportamiento no definido Modelo de memoria y carreras de datos Fases de traducción La función main Módulos(C++20)
main
Palabras clave
Preprocesador
#if - #ifdef - #ifndef - #elif #elifdef - #elifndef(C++23) #define - # - ## #include - #pragma #line - #error
#if
#ifdef
#ifndef
#elif
#elifdef
#elifndef
#define
#
##
#include
#pragma
#line
#error
Expresiones
Categorías de valor Orden de evaluación y secuencia Expresiones constantes Operadores de asignación – aritméticos de incremento y decremento lógicos – de comparación de acceso a miembro e indirección de llamada, coma, ternario sizeof – alignof(C++11) new – delete – typeid Sobrecarga de operadores Comparaciones por defecto(C++20) Precedencia de operadores Conversiones implícitas – explícitas – definidas por usuario static_cast – dynamic_cast const_cast – reinterpret_cast Literales booleanos – enteros – flotantes de carácter – de cadena nullptr(C++11) definidos por usuario (C++11)
sizeof
alignof
typeid
Declaraciones
Declaración de espacio de nombres Alias de espacio de nombres Referencias Punteros – Arrays Vínculos estructurados(C++17) Enumeraciones y enumeradores Duración de almacenamiento y enlace Local a la unidad de traducción (C++20) Enlace de lenguaje Especificador inline Ensamblador en línea const/volatile – constexpr (C++11) consteval (C++20) – constinit (C++20) decltype (C++11) – auto (C++11) typedef – Alias de tipo(C++11) Especificadores de tipo elaborados Atributos (C++11) – alignas (C++11) Aserción estática (static_assert)(C++11)
consteval
constinit
static_assert
Inicialización
Inicialización por defecto Inicialización de un valor Inicialización de copia Inicialización directa Inicialización de agregado Inicialización de lista(C++11) Inicialización de referencia Inicialización estática no local cero – por constante Inicialización dinámica no local ordenada – no ordenada Elisión de copia
Funciones
Declaración de funciones Argumentos por defecto Argumentos variádicos Expresión lambda(C++11) Búsqueda dependiente de argumento Resolución de sobrecarga Sobrecarga de operadores Dirección de un conjunto de sobrecarga Corrutinas(C++20)
Instrucciones
if – switch for – range-for(C++11) while – do-while continue – break – goto – return synchronized y atomic(TM TS)
do
synchronized
atomic
Clases
Tipos clase – Tipos unión Nombre de clase inyectado Datos miembro – Campos de bits – Funciones miembro El puntero this Miembros estáticos – Clases anidadas Clase derivada – declaración using Optimización de base vacía Función virtual – Clase abstracta override(C++11) – final(C++11) Acceso a miembros – friend Constructores y listas de inicializadores de miembros Constructor por defecto – Destructor Constructor de copia – Asignación de copia Constructor de movimiento(C++11) – Asignación de movimiento(C++11) Constructor de conversión – Especificador explicit
using
Plantillas
Parámetros y argumentos de plantilla Plantilla de clase – Plantilla de función Plantilla de variable(C++14) Plantilla miembro de clase Deducción de argumento de plantilla Deducción de argumentos de plantilla de clase(C++17) Especialización explícita – Especialización parcial Paquetes de parámetros(C++11) – sizeof...(C++11) Expresiones de pliegue(C++17) Nombres dependientes – SFINAE Conceptos y restricciones (C++20) Expresión requires (C++20)
sizeof...
Excepciones
Expresión throw Bloque try-catch Bloque try de función Especificador noexcept(C++11) Operador noexcept(C++11) Especificación de excepción dinámica(hasta C++17)
try-catch
Misceláneos
Historia de C++ Extender el espacio de nombres std Acrónimos
std
Expresiones idiomáticas
Patrón de plantilla curiosamente recurrente (CRTP) Adquisición de recursos es inicialización (RAII) Regla de tres/cinco/cero Puntero a implementación (pimpl) Principio de cero sobrecoste