Why Template Functions Only Defined Inside Header Files?