Estáticos sin coste en C++: aprovechando las características del enlazador
Este artículo aborda la sobrecarga de rendimiento de la inicialización de variables estáticas en C++. Las variables estáticas con ámbito de bloque normalmente incurren en costes de tiempo de ejecución, como la sincronización mediante `__cxa_guard_acquire`. El autor propone una optimización que aprovecha las características del enlazador de UNIX: preasignación de espacio en una sección dedicada y realización de la inicialización durante la inicialización global. Esto elimina la sobrecarga de tiempo de ejecución, haciendo que las estáticas con ámbito de bloque sean tan eficientes como las estáticas con ámbito de archivo. El artículo detalla la implementación, incluyendo el manejo de conflictos de atributos de sección provenientes de funciones inline y miembros de plantilla, logrando finalmente una optimización sin coste.