3.15.2.9.2. Proxy Var Class Example
class AnInterface_var : public _var
{
  protected:

    AnInterface_ptr ptr;

  public:

    AnInterface_var () { ptr = AnInterface::_nil (); }
    AnInterface_var (AnInterface_ptr p) { ptr = p; }

    ...

    ~AnInterface_var ()
    {
      release (ptr);
    }

    AnInterface_var &operator = (AnInterface_ptr p)
    {
      release (ptr);
      ptr = p;
      return (*this);
    }

    AnInterface_var &operator = (const AnInterface_var &var)
    {
      if (this != &var)
      {
        release (ptr);
        ptr = AnInterface::_duplicate (AnInterface_ptr (var));
      }
      return (*this);
    }

    operator AnInterface_ptr & () { return (ptr); }
    AnInterface _ptr operator -> () const { return (ptr); }

    ...
}