#include <iostream>
#include <cmath>
using namespace std;

struct Op
{
    int e;
    Op(int e = 0) : e(e) {}
} power_of;

int operator*=(int i, Op f)
{
    return std::pow(i, f.e);
}

Op operator*=(Op, int i)
{
    return Op{i};
}

#define $$ *=power_of*=

int main()
{
    cout << (4 $$ 3 $$ 2);  // prints 262144
}