Originally Posted by C++ Draft Standard, 7.1.2, paragragh 4
An inline function shall be defined in every translation unit in which it is used and shall have exactly the
same definition in every case (3.2). [Note: a call to the inline function may be encountered before its definition
appears in the translation unit. ] If a function with external linkage is declared inline in one translation
unit, it shall be declared inline in all translation units in which it appears; no diagnostic is required.
[Note: a static local variable in an extern inline function always refers to the same object. ]