Noticias que mencionan C23

Almacena archivos seguros en YouTube: Nueva herramienta

Un desarrollador ha creado una nueva herramienta llamada 'yt-media-storage' que permite almacenar y cifrar archivos de forma segura en YouTube. La herramienta codifica los archivos en formato de video FFV1/MKV sin pérdidas, aprovechando la plataforma de YouTube como almacenamiento. Utiliza códigos d

C++: Optimiza el polimorfismo con desvirtualización

Este artículo explora el tema de la 'desvirtualización' y el 'polimorfismo estático' en C++, abordando un problema común de rendimiento en diseños polimórficos. La programación polimórfica, a través de funciones virtuales, permite que el código se adapte a diferentes tipos en tiempo de ejecución. Si

Optimiza tu código C: rendimiento y portabilidad

Este artículo explora técnicas para optimizar el rendimiento de software C, especialmente en arquitecturas x86-64, donde la capacidad de la CPU juega un papel crucial. El problema radica en que el código optimizado para una CPU específica puede no funcionar bien en otras, limitando la portabilidad.

Unity: La 'hack' de corrutinas revelada

Un artículo explora el uso de corrutinas en C++ y cómo Unity, en C#, ha implementado una solución ingeniosa debido a limitaciones históricas en el soporte de `await` en C#. Inicialmente, las corrutinas de C++ han sido poco utilizadas debido a su complejidad y la falta de ejemplos concretos. El artíc

C++ 'freestanding': Lenguaje sin sistema operativo

El término 'freestanding' en C++ se refiere a una implementación del lenguaje que opera sin la dependencia de un sistema operativo (SO) 'hosted'. Esto es crucial en entornos restringidos como sistemas embebidos, kernels de SO o 'bare-metal' donde la asignación dinámica de memoria (heap), llamadas al

El comportamiento indefinido: el error invisible que acecha en todo código C

El artículo aborda un tema fundamental en la programación con C y C++: el comportamiento indefinido (Undefined Behavior o UB). El autor, con más de 30 años de experiencia, argumenta que prácticamente todo código no trivial en C/C++ contiene UB, y que es imposible escribir código completamente correc

C vs C++: ¿Qué constructos no funcionan?

Este artículo de Josh Lospinoso, actualizado en 2026, aborda una cuestión crucial para desarrolladores que trabajan con C y C++: la incompatibilidad entre ambos lenguajes. Contrario a la creencia popular, C++ no es un superconjunto de C, lo que significa que ciertos constructos válidos en C pueden n

C vs C++: ¿Qué constructos no funcionan?

Este artículo de Josh Lospinoso, actualizado en 2026, aborda una cuestión crucial para desarrolladores que trabajan con C y C++: la incompatibilidad entre ambos lenguajes. Contrario a la creencia popular, C++ no es un superconjunto de C, lo que significa que ciertos constructos válidos en C pueden n

Array dinámico genérico en C sin struct ni capacidad almacenada

Un desarrollador ha compartido una implementación de array dinámico genérico en C que prescinde de estructuras y del almacenamiento explícito de capacidad. La técnica utiliza un array de dos punteros: el primero guarda la longitud como uintptr_t, y el segundo apunta a los datos. Así, declaraciones c

Semáforos en C++20: control de concurrencia y señalización entre hilos

El estándar C++20 incorporó al lenguaje dos tipos de semáforos pensados para resolver problemas clásicos de concurrencia que un mutex no cubre con soltura: std::counting_semaphore y std::binary_semaphore. Este artículo explica, con ejemplos prácticos en C++23, cómo utilizarlos para limitar el número

C++: cómo evitar la ejecución de funciones antes de su uso

El artículo explica la práctica de la inicialización lenta en C++ para optimizar el rendimiento. El problema principal es que la función `std::optional<int>::value_or()` evalúa sus argumentos antes de llamar a la función, lo que provoca la ejecución de `complex_computation()` incluso si el valor est

Cómo evitar std::move en C++ y aun así mover objetos

Mover objetos en C++ rara vez exige escribir std::move de forma explícita: el propio lenguaje y el compilador ya se encargan en la mayoría de los casos, y recurrir a movimientos manuales solo cuando hace falta produce código más limpio y, en ocasiones, más rápido. La técnica preferible es la elisión

jemalloc 5.4.0: refactorización masiva y nuevas funciones de memoria

La versión 5.4.0 de jemalloc, el gestor de memoria de alto rendimiento de Google, incorpora más de 160 commits centrados en la limpieza de deuda técnica, corrección de errores y mejoras de portabilidad. El principal objetivo es modernizar el código base, eliminando dependencias circulares y reorgani