我正在研究数学向量。
我通常内联这些类函数成员:
float getY() const { return m_y; }
但这些是否适合内联?
float getLength() const { return sqrt(m_x * m_x + m_y * m_y); }
bool isUnitVector() const { return getLength() == 1.0f; }
Vector2D getZeroVector() const { return Vector2D(); }
答案 0 :(得分:1)
这是个人偏好的问题。
我喜欢这样做,但大多数工作场所都不喜欢它。
谷歌编码标准建议不要这样做,如果它们不小,但正如我所说,一些工作场所对此绝对迂腐。
https://google.github.io/styleguide/cppguide.html#Inline_Functions
答案 1 :(得分:1)
您可能会使用几个标准来决定是否应该内联方法:
另一方面,有一些理由不能过多地内联:
正如其他人所说,这是非常基于意见的。我建议你决定如何处理它,然后保持一致。
答案 2 :(得分:-1)
这取决于您希望代码的可读性。例如,
getLength()
比其他程序员更容易阅读和理解 - 而且从现在起五年后,比
更容易理解sqrt(m_x * m_x + m_y * m_y)
当然一个可以理解它,但是哪一个会花费更少的时间并且将来更容易维护和开发?
更重要的是,对于现代C / C ++编译器,您不应该担心内联它,因为他们会根据分析结果为您做出决定。 #39;超出了我的解释能力。您可能知道,the inline
keyword is, like the Pirates' Code, more of a guideline than a strict rule。