[[https://github.com/andreasfertig/cppinsights|Site web]] {{ :prog:cppinsights:cppinsights-11-02-2020.zip |Archive du 11/02/2020 le 16/02/2020}} ===Compilation du code source=== cd cppinsights mkdir build && cd build cmake .. make -j9 ===Analyse de la source=== Ajouter la génération du ''compile_commands.json'' dans CMake : set(CMAKE_EXPORT_COMPILE_COMMANDS ON) Affichage du code source du point de vue du compilateur : ./insights source.cpp Exemple : int main() { int (*fp)(int, char) = [](int a, char b){ return a+b;}; } Rendu : int main() { class __lambda_3_26 { public: inline /*constexpr */ int operator()(int a, char b) const { return a + static_cast(b); } using retType_3_26 = int (*)(int, char); inline /*constexpr */ operator retType_3_26 () const noexcept { return __invoke; } private: static inline int __invoke(int a, char b) { return a + static_cast(b); } } __lambda_3_26{}; using FuncPtr_3 = int (*)(int, char); FuncPtr_3 fp = static_cast(__lambda_3_26.operator __lambda_3_26::retType_3_26()); }