#include <functional> 
 
using  namespace  std; 
 
template  < typename  ARGUEMENT, typename  RESULT> 
class  FunctorBase :  public  std:: unary_function < ARGUEMENT, RESULT> 
{ 
public : 
    virtual  result_type operator ( )  ( argument_type)  =  0 ; 
        FunctorBase( )  { } 
        virtual  ~FunctorBase( )  { } 
} ; 
 
int  main( ) 
{ 
    FunctorBase< int & , void > ( ) ; 
} 
 
 
				I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAp0ZW1wbGF0ZSA8dHlwZW5hbWUgQVJHVUVNRU5ULCB0eXBlbmFtZSBSRVNVTFQ+CmNsYXNzIEZ1bmN0b3JCYXNlIDogcHVibGljIHN0ZDo6dW5hcnlfZnVuY3Rpb248QVJHVUVNRU5ULCBSRVNVTFQ+CnsKcHVibGljOgogICAgdmlydHVhbCByZXN1bHRfdHlwZSBvcGVyYXRvciAoKSAoYXJndW1lbnRfdHlwZSkgPSAwOwogICAgICAgIEZ1bmN0b3JCYXNlKCkge30KICAgICAgICB2aXJ0dWFsIH5GdW5jdG9yQmFzZSgpIHt9Cn07CgppbnQgbWFpbigpCnsKICAgIEZ1bmN0b3JCYXNlPGludCYsIHZvaWQ+KCk7Cn0K