For non fully specialized function templates,
i.e. ones that carry at least one unknown type,
you can omit inline, and not receive errors,
but still they are not inline.
For full specializations,
i.e. ones that use only known types, you cannot omit it.