c++ - 定义和声明中的内联

标签 c++ inline

在最近的一次同行评审中,另一位软件工程师建议我声明 inline 函数在定义(在类之外)以及在声明(类内部)。他的论点是“通过将其标记为内联,您是在说此方法将比非内联方法执行得更快,并且调用者不必担心对该方法的过多调用。"

这是真的吗?如果我是一个类的用户,我真的关心对方法的过度调用吗?在定义和声明中将其列为内联有什么问题吗? C++ FAQ状态:

Best practice: only in the definition outside the class body.

那么谁在这里呢?

最佳答案

这听起来像是两件完全不相关的事情。不需要将 inline 放在类中的声明和类外的定义中。将其放在其中一个声明中就足够了。

如果您谈论在 .cpp 文件中添加 inline 并在该文件中定义函数,并且该函数是 public 成员,那么你应该那样做。调用 inline 函数的人必须让他们的定义对他们可见。 C++ 标准要求这样做。

关于c++ - 定义和声明中的内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9268542/

相关文章:

c++ - C++ 中的 QHashIterator

c++ - 我应该如何使用初始化 boost::asio::ip::tcp::socket?不使用构造函数(我需要默认构造)包括(boost::asio::ip::tcp::socket)

c - 为什么普通 header 中的内联 void foo() { ... } 可以正常工作?

css - 内联问题将自定义 style_format 添加到 tinymce

c - "static"和 "static inline"函数有什么区别?

c - C 中的内联 Setter 和 Getter 函数

C++11 lambda 通过引用捕获可平凡破坏

C++解析xml的子节点

c++ - 在结构的 std::vector 中查找

c++为什么当我不使用内联时链接会失败?