All pastes #233001 Raw Edit

Unnamed

public cpp v1 · immutable
·published 2006-11-01 18:16 UTC
rendered paste body
#include <assert.h>class parent {public:template<class C>class operators {public:  operators() {    const parent* parent_this = dynamic_cast<parent*>(dynamic_cast<C*>(this)); // make sure this is derived from parent as well                                                                                      assert(parent_this);  }  virtual ~operators() { };  C operator-(){    C ret;    ret.asdf = static_cast<parent*>(static_cast<C*>(this))->asdf * -1;    return ret;  }};public:  int asdf;  virtual ~parent() { };};class A : public parent, public parent::operators<A> { public: virtual ~A() { }; };class B : public parent::operators<A> { };