Noticias que mencionan C++17

Comportamiento indefinido en C++17 permite permisos de root

Un artículo técnico explica cómo un fragmento de código C++17 puede exhibir un comportamiento indefinido que resulta en la concesión de permisos de root, un resultado contraintuitivo y peligroso. El ejemplo, presentado con un tono humorístico de Halloween, muestra que la ejecución de un programa esp

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

Delaunay32: triangulación de Delaunay 2D rápida y paralela en C++

Delaunay32 es una biblioteca en C++17 para calcular la triangulación de Delaunay de conjuntos de puntos en dos dimensiones. Está pensada para datos ya discretos o que admitan una cuantificación uniforme de alta resolución, como píxeles, muestras de rásters, proyecciones de vóxeles, geometría de punt

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

Pruebas unitarias automatizadas en C++: variables inline y módulos

Este artículo cierra una serie de dos entregas sobre un marco minimalista de pruebas unitarias en C++ distribuido en un único archivo de cabecera. Tras presentar el mecanismo básico basado en macros (test_, fail_, throw_ y nothrow_) en la primera parte, el autor aborda dos problemas pendientes: la v