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

misa77: un códec LZ con descompresión hasta tres veces más rápida que LZ4

misa77 es un códec de compresión basado en algoritmos LZ orientado al nicho de datos que se escriben una vez y se leen muchas veces. Su objetivo principal es ofrecer una velocidad de descompresión muy alta en un solo hilo, con un uso de memoria constante e independiente del tamaño de la entrada: com

Cómo C++20 simplificó el bucle for con inicializador

El estándar C++20 introdujo una pequeña mejora sintáctica que acerca la forma de escribir bucles for en C++ a la de lenguajes como Python o Lua: la posibilidad de declarar variables en el propio encabezado del range-based for. Hasta C++17, recorrer un contenedor conservando el índice del elemento ex

Luz: trazador de rutas en C++20 sin dependencias externas

Luz es un trazador de rutas (path tracer) escrito en C++20 desde cero, sin bibliotecas de terceros, orientado al renderizado fotorrealista por Monte Carlo. Entre sus prestaciones figuran iluminación global, muestreo adaptativo por píxel, desnitificador de estilo NFOR, dispersión atmosférica, exporta

Cómo simular argumentos con nombre en C++ usando inicializadores designados

En Python, los argumentos con nombre (keyword arguments) permiten escribir APIs claras y concisas. En C++ no existe esta característica de forma nativa, y añadirla requeriría décadas de esfuerzo normativo. Sin embargo, con las prestaciones modernas del lenguaje es posible emularla de manera bastante

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++ '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

ROX: Nuevo Lenguaje Busca Simplificar la Programación

Un nuevo lenguaje de programación llamado ROX ha sido desarrollado con el objetivo de priorizar la claridad sobre la comodidad. Creado por Taman-Islam y disponible en GitHub, ROX busca eliminar las complejidades inherentes a muchos lenguajes, como conversiones implícitas, operadores sobrecargados y