2001

Grusel++ of the month

Home
Download Source
/******************************************************************************/
/*                                                                            */
/*                                                         FILE: december.cpp */
/*                                                                            */
/*  Should I call this a misuse of an algorithm or an abuse of a struct ??    */
/*  ======================================================================    */
/*                                                                            */
/*  Compiled and tested with Visual C++ V6.0                                  */
/*                                                                            */
/*  V1.00   28-DEC-2001   P. Tellenbach   http://www.heimetli.ch/             */
/*                                                                            */
/******************************************************************************/

#include <iostream>
#include <algorithm>

using namespace std ;

template< typename T >
struct grusel
{
   T t ;

   T operator()( T x, T y )
   {
      cout << x << y ;
      return x ;
   }

   grusel &operator++()
   {
      return *this ;
   }

   T &operator*()
   {
      return t ;
   }

   int operator&()
   {
      return 0 ;
   }
} ;

typedef grusel<char> GRUSEL ;

int main()
{
   string s( "Hlowrd!" ) ;

   return &transform( s.begin(), s.end(), "el ol \n", GRUSEL(), GRUSEL() ) ;
}