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 );