Sometimes, there just isn’t a better way. You have to implement the DoNothing() method. Or even IsTrue(). At least, that’s what D.C. assumed when he saw a a class with a member variable named “self” …

 

class CERTlib 
{
  private:
    CERTlib*  self; // Pointer to self
  ... snip ...
}

He figured it was for some bizarre workaround or, worse case, a misleading name for a variable that actually made some sense. A trip to the constructor cleared things up …

 

CERTlib::CERTlib(...) 
{
   // Store ptr to self
   self = this;
   ...
}

Figuring it must be some vestigial workaround, D.C. did a search of the code. As it turned out, it was still used. In a single place …

fnCERTlibDeinitialize( this->self ); 
[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!