Mega Code Archive

 
Categories / C++ Tutorial / Template
 

Template function with pointer parameter

/* 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.  */ #include <iostream> template <typename T> inline T accum (T const* beg, T const* end) {     T total = T();  // assume T() actually creates a zero value     while (beg != end) {         total += *beg;         ++beg;     }     return total; } int main() {     // create array of 5 integer values     int num[] = { 1, 2, 3, 4, 5 };     // print average value     std::cout << "the average value of the integer values is "               << accum(&num[0], &num[5]) / 5               << '\n';     // create array of character values     char name[] = "templates";     int length = sizeof(name)-1;     // (try to) print average character value     std::cout << "the average value of the characters in \""               << name << "\" is "               << accum(&name[0], &name[length]) / length               << '\n'; } the average value of the integer values is 3 the average value of the characters in "templates" is -5