我也不知道有什么用,但是感觉还挺好玩.jpg

#include <bits/stdc++.h>
using namespace std;

auto _x = [](auto x){return x;};
auto _pow = [](auto x,auto y){return pow(x,y);};

auto x = bind(_x,placeholders::_1);
auto y = bind(_x,placeholders::_2);
auto z = bind(_x,placeholders::_3);

template<class T1,class T2>
auto operator+(T1 t1,T2 t2){return bind(plus<>(),t1,t2);}
template<class T1,class T2>
auto operator-(T1 t1,T2 t2){return bind(minus<>(),t1,t2);}
template<class T1,class T2>
auto operator*(T1 t1,T2 t2){return bind(multiplies<>(),t1,t2);}
template<class T1,class T2>
auto operator/(T1 t1,T2 t2){return bind(divides<>(),t1,t2);}
template<class T1,class T2>
auto operator%(T1 t1,T2 t2){return bind(modulus<>(),t1,t2);}
template<class T1,class T2>
auto operator^(T1 t1,T2 t2){return bind(_pow,t1,t2);}

int main(){
    auto f1 = x * (x+1) / 2;
    cout << f1(114514) << endl;
    auto f2 = x + y;
    cout << f2(1,2) << endl;
    auto f3 = f1(x^2) + (x^y);
    cout << f3(2,3) << endl;
}