type abstraction or interface of a class
normal function does not accept return type as signature components
template function accept return type as signature components
so per return type, template function implemented as different function
C++ Signatures
https://www.csc.lsu.edu/~gb/Signatures/index.html

Seonglae Cho