C++ Insights: herramienta para visualizar el código fuente como lo ve el compilador

Fuentes: C++ Insights: a tool to visualize source code as the compiler sees it

C++ Insights es una herramienta de software basada en Clang que realiza una transformación de código fuente a código fuente. Su objetivo principal es hacer visibles los mecanismos internos del compilador que operan de forma automática y no visible para el programador, como la generación de funciones miembro implícitas y las conversiones de tipo. A diferencia de los depuradores tradicionales o los ASTs, esta herramienta transforma el código C++ en una versión compilable que refleja la visión interna del compilador, permitiendo a los desarrolladores entender cómo se procesan las características modernas de C++11, C++14 y C++17, como las lambdas, los bucles range-based y los enlaces estructurados.

El proyecto, desarrollado por Andreas Fertig, permite a los usuarios inspeccionar dónde se invoca a los operadores y cómo el compilador realiza castings. Aunque el objetivo es producir código compilable, la herramienta no puede transformar todas las construcciones en todos los contextos. C++ Insights está disponible en línea y puede construirse tanto dentro como fuera del árbol de código fuente de Clang. Incluye opciones de configuración para desactivar el uso de includes del sistema y para integrar el proyecto con entornos de desarrollo como Cevelop o Vim. Además, ofrece un script para recopilar las rutas de includes del sistema y una opción para especificar la cadena de herramientas de GCC cuando se utiliza un compilador personalizado. La herramienta sigue en desarrollo activo, con planes para soportar nuevas características de C++20.