factorial class

#include <iostream>
using namespace std;

class f{
public:
	int val;
	
	long long operator!(){
		long long ret = 1;
		for(int i=0;i<val;i++){ret*=(i+1);}
		return ret;
	}
};

int main(){
	f a = {12};
	cout << !a << endl;
}

どうしても!演算子使って階乗したかっただけ。でも現実は!の位置に限界があったのであった・・・。