I know that declaring a function (normal function not a method inside a class) as inline is a good practice when the function definition is small for performance and it save
but how about inline methods inside a class ?
Both syntaxes for inlining functions (using explicit inline
and defining member-function inside class definition) provides only hint about inlining for compiler. From performance point of view, they are equal.
In case of defining a member-function inside a class declaration, the readability of the latter should be of your main concern: it really hurts to litter class interface with multiple line of implementation details. So avoid doing that if your member-function is more than one statement: return stuff
or simple forwarding should be OK, but usually no more than that.
class MyClass
{
public:
int f() const { return m_i; }
int g() const;
private:
int m_i;
};
inline int MyClass::g() const
{
return m_i;
}
// both member-functions behave equally (except for naming)