During a recent peer review, another Software Engineer suggested that I state that the inline function is inline in the definition (outside of the class) as well as in the declaration (inside of the class). His argument is that “By marking it inline, you are saying that this method will be executed much faster than a non-inline method, and that callers don’t have to worry about excessive calls to the method.“
Is that true? If I am a user of a class, do I really care about excessive calls to the method? Is there anything wrong with listing it as inline in both the definition and declaration? The C++ FAQ states:
Best practice: only in the definition outside the class body.
So who is right here?
That sounds like two totally unrelated things. Putting
inlineat both the declaration in the class and the definition outside of the class is not needed. Putting it at one of the declarations is enough.If you talk about adding
inlinein a.cppfile where a function is defined there, and that function is apublicmember, then you should not do that. People who callinlinefunctions must have their definitions visible to them. The C++ Standard requires that.