#include<iostream>
template<typename Ret,typename ...Args> struct func_base
{
	virtual Ret operator()(Args ...args);
};
template<typename Func,typename Ret,typename ...Args> struct func_wrapper : func_base<Ret,Args...>
{
	Func f;
	func_wrapper(Func _f) { f=_f; }
	Ret operator()(Args ...args) { return f(args...); }
};
template<typename Ret,typename ...Args> struct func { func()=0; };
template<typename Ret,typename ...Args> struct func<Ret(Args...)>
{
	func_base<Ret,Args...>* f;
	template<typename Func> func(Func _f) { f=new func_wrapper<Func,Ret,Args...>(_f); } 
	Ret operator()(Args ...args) { return (*f)(args...); }
	~func() { delete f; }
};
int main()
{
    for(int a,b;(std::cin>>a>>b),std::cout<<func<int(int,int)>([](int x,int y)->int{return ([&](this auto &&self,int a,int b)->int{return (a&b)?self((a&b)<<1,a^b):(a|b);})(x,y);})(a,b),0;);
	return 0;
}

页: 1 2 3 4 5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注