2002

Grusel++ of the month

Home
Download Source
/******************************************************************************/
/*                                                                            */
/*                                                           FILE: august.cpp */
/*                                                                            */
/*  Would you agree that "operator Result()" is fascinating ?                 */
/*  =========================================================                 */
/*                                                                            */
/*  Compiled and tested with Visual C++ V6.0                                  */
/*                                                                            */
/*  V1.00   31-AUG-2002   P. Tellenbach   http://www.heimetli.ch/             */
/*                                                                            */
/******************************************************************************/

#include <iostream>

template< bool flag >
class Template
{
 public:
   ~Template() { std::cout << "Hello " ; }
} ;

template<> 
class Template<true>
{
 public:
   ~Template() { std::cout << "world !\n" ; }
} ;

template< typename First, typename Second, typename Result >
class Object : public First, public Second
{
 public:
   operator Result() { return Result() ; } ;
} ;

int main()
{
   return Object<Template<true>,Template<false>,int>() ;
}