functorの判りやすいソース

http://www.project-enigma.jp/members/kagelow/locus/archives/2006/02/fanctor.html

#include <stdio.h>

class FooFunc {
public:
    int operator( )( int arg1, int arg2 ) {
        return arg1 + arg2;
    };
};


void main()
{
	FooFunc func;
	int ret = func( 5, 3 );

	printf("ret=%d",ret);
}

コンパイルできた。結果はret=8である
実際に生成しているアセンブラを見てみればinlineされているかわかるはず
でもこれはFunctorであって、templateは使ってない(のか?)