[[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());
}