warning: friend declaration '*' declares a non-template function
[-Wnon-template-friend]