#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;
}
Test
·

《 “Test” 》 有 4 条评论
-

Test
-

Test #2
-

Test #3
-
-

Test #4
-
发表回复