Inicialización uniforme con llaves y sus trampas
Explicación de la sintaxis de inicialización con llaves {}, la prevención de narrowing y el conflicto de prioridad con std::initializer_list.
Explicación de la sintaxis de inicialización con llaves {}, la prevención de narrowing y el conflicto de prioridad con std::initializer_list.
Diferencias críticas entre la inmutabilidad en tiempo de ejecución (const) y la evaluación en tiempo de compilación (constexpr).
Guía técnica sobre el uso de auto, reglas de deducción de tipos, diferencias entre auto y decltype(auto, y cómo evitar copias accidentales.
Diferencias entre declaración y definición, tipos de inicialización (uniforme, directa, copia) y el peligro del comportamiento indefinido.
Aprende a usar GDB para inspeccionar memoria, navegar por la pila de llamadas, vigilar variables y depurar hilos con ejemplos prácticos.
Guía técnica sobre Address, Undefined, Thread y Memory Sanitizers para detectar errores de memoria y concurrencia en C++.
Aprende a estructurar proyectos C++ con múltiples archivos usando CMake, gestionando librerías, ejecutables y configuraciones de compilación.
Aprende a configurar flags de compilación para detectar errores lógicos y comportamiento indefinido antes de ejecutar tu código.
Aprende a usar flags de estándar, optimización, warnings y depuración para controlar el proceso de compilación en C++.
Explicación de las cuatro fases de traducción de C++ y el contenido de un archivo objeto (.text, .data, .bss).