The following code example is taken from the book
 
  The C++ Standard Library - A Tutorial and Reference, 2nd Edition
 by Nicolai M. Josuttis, Addison Wesley Longman, 2012
 
  Copyright © 2012 by Pearson Education, Inc. and Nicolai M. Josuttis
#include <cmath>
template <typename T1, typename T2>         
struct fopow
{
    T1 operator() (T1 base, T2 exp) const {
        return std::pow(base,exp);
    }
};