OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.jason/] [overload33.C] - Rev 338

Compare with Previous | Blame | View Log

// { dg-do assemble  }
// PRMS ID: 7507

/* ------------------------------------------------------------ */

class Base0
{
public:
                                Base0() {}
      virtual                   ~Base0() {}
};

class Base1
{
public:
                                Base1() {}
    virtual                     ~Base1() {}
};

class Derived : public Base0, public Base1
{
public:
                                Derived() {}
  virtual                       ~Derived() {}
};

/* ------------------------------------------------------------ */

class Dummy
{
  public:
                                Dummy(Base0 * theBase) {}
                                ~Dummy() {}
};

/* ------------------------------------------------------------ */

template<class T>
class ConstSmartPtr
{
  T*                    myItem;         // private

  public:       
                        ConstSmartPtr(T const* theItem);

                        operator T const*() const
                                { return myItem; }
  protected:
    T*                  _item() const
                                { return myItem; }
};

template<class T>
class SmartPtr : public ConstSmartPtr<T>
{
  public:
                        SmartPtr(T* theItem)
                          : ConstSmartPtr<T>(theItem) {}

    T*                  item() const
                                { return this->_item(); }

                        operator T*() const
                                { return this->_item(); }
};

/* ------------------------------------------------------------ */

void
function()
{
  SmartPtr<Derived>  myObj = new Derived();

  Dummy th1(myObj);                 // Doesn't work under Cygnus
  Dummy th2((Base0 *) myObj);       // Doesn't work either
}

/* ------------------------------------------------------------ */

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.