// Recursive templates - intro to expression templates // Does absolutely nothing but instantiates templates #include // operator (no definition what it does :) struct plus { plus() {std::cout<<"adding plus\n";} }; // node template class X { Left left; Right right; public: X(Left l, Right r) : left(l), right(r) { std::cout<<"adding new Left-Op-Right node\n";} }; class A { public: template void operator=(X expression) {std::cout<<"in = operation\n";} }; template X operator+(Left a, A b) { std::cout<<"in \n"; return X(a,b); } int main() { A a, b, c, d ; //std::cout<