template<class Func>
class MyClass {
public: Func func;
};
struct foo {
int operator () (int i) { return 0; }
};
int main ()
{
MyClass<foo> obj;
int i = obj.func(3);
}
dGVtcGxhdGU8Y2xhc3MgRnVuYz4KY2xhc3MgTXlDbGFzcyB7CiAgcHVibGljOiBGdW5jIGZ1bmM7Cn07CgpzdHJ1Y3QgZm9vIHsKICBpbnQgb3BlcmF0b3IgKCkgKGludCBpKSB7IHJldHVybiAwOyB9Cn07CgppbnQgbWFpbiAoKQp7CiAgTXlDbGFzczxmb28+IG9iajsKICBpbnQgaSA9IG9iai5mdW5jKDMpOwp9Cg==