/* The following code example is taken from the book * "C++ Templates - The Complete Guide" * by David Vandevoorde and Nicolai M. Josuttis, Addison-Wesley, 2002 * * (C) Copyright David Vandevoorde and Nicolai M. Josuttis 2002. * Permission to copy, use, modify, sell and distribute this software * is granted provided this copyright notice appears in all copies. * This software is provided "as is" without express or implied * warranty, and with no claim as to its suitability for any purpose. */ #ifndef POW3_HPP #define POW3_HPP // primary template to compute 3 to the Nth template class Pow3 { public: static int const result = 3 * Pow3::result; }; // full specialization to end the recursion template<> class Pow3<0> { public: static int const result = 1; }; #endif // POW3_HPP