Single header, templatized expression tree. Assign functors to branches and values to leaves, then call evaluate(). Requires C++11's function<T>. Optional multi-threaded evaluation is dependent on header <future>.
Documentation and much more prose can be found here.