フレンド関数テンプレート
#include "stdafx.h" class Hoge { public: // フレンド関数テンプレートの指定。 template <class T> friend void CallHogeEcho(Hoge&, T); private: void Echo(int x) { printf("Hoge: %d\n", x); } void Echo(const char* x) { printf("Hoge: %s\n", x); } }; template <class T> void CallHogeEcho(Hoge& hoge, T x) { hoge.Echo(x); } int _tmain(int argc, _TCHAR* argv[]) { Hoge hoge; CallHogeEcho(hoge, 100); CallHogeEcho(hoge, "fuga"); return 0; }