cpp/language/expression template

An expression template is a class template that represents an expression often used in template metaprogramming.

As a motivating example, to parse the expression "a+5+b" a computer algebra system may include a base class called Expression with derived classes with names like Sum, Variable, and Integer, with Sum containing pointers to two child Expression objects. Expression templates implement the same idea at compile time.