博客

在C++中使用Const或者引用成员变量的后果

在C++中,使用 const 或者引用非静态成员变量会造成一些问题。 很多的资深C++程序员都知道这一点, 但是网上没有人单独写一篇文章来阐述原因。 而我在网上反复看到有人问这个问题, 所以我决定写下这篇博文。 Const成员变量 在有一些编程语言中,例如Rust,所有变量都默认是 const ,而你需要手动声明某个变量是可变的。 如果你有使用这些编程语言的经历,那么你可能会想在C…

noexcept对代码生成的影响

在C++代码中,如果我们把每个函数声明都加上 noexcept ,我们的代码会变得更高效吗? 事情不是这么地简单。 考虑以下代码片段: 我故意不在此翻译单元(translation unit)中定义 g ,否则的话编译器会有足够的信息来内联(inline) g 的所有内容。 尽管如此,所有主要的C++编译器都能弄清楚 f 仅包含对 g…