文章预览
近日 ,在 新闻平台 HackerNews 上有个开发者颇为关注的 GitHub 项目,名叫 C++ Insights,特色就是:用编译器的眼睛看源码。为此,项目作者对其进行了详细介绍。 原 文链接: https://github.com/andreasfertig/cppinsights 作者 | Andreas Fertig 翻译 | 郑丽媛 C++ Insights 是什么? C++ Insights 是一种基于 Clang 的工具,可进行源码到源码的转换,其目标是揭示通常情况下编译器在幕 后为我们做的工作。它能帮我们看到编译器为了让代码正常运行而进行的一些神奇操作。 以下面这段代码为例: class Base { }; class Derived : public Base { }; int main () { Derived d; Derived d2 = d; d2 = d; Base & b = d; } 没有什么特别之处,当然也能编译。下面是编译器对它的看法: class Base { public : // inline constexpr Base() noexcept = default; // inline constexpr Base(const Base & ) noexcept = default; /
………………………………