Re[2]: В std::auto_ptr определен лишний метод?
От: NightWind Россия  
Дата: 29.01.09 23:29
Оценка:
Здравствуйте, Erop, Вы писали:

E>std::auto_ptr<B> foo();


А в чём прикол comeau никак не компилит?
namespace std {
   template <class Y> struct auto_ptr_ref {};
   
   template<class X> class auto_ptr {
   public:
      typedef X element_type;
      // 20.4.5.1 construct/copy/destroy:
      explicit auto_ptr(X* p =0) throw();
      auto_ptr(auto_ptr&) throw();
      template<class Y> auto_ptr(auto_ptr<Y>&) throw();
      auto_ptr& operator=(auto_ptr&) throw();
      template<class Y> auto_ptr& operator=(auto_ptr<Y>&) throw();
      auto_ptr& operator=(auto_ptr_ref<X> r) throw();
      ~auto_ptr() throw();
      // 20.4.5.2 members:
      X& operator*() const throw();
      X* operator->() const throw();
      X* get() const throw();
      X* release() throw();
      void reset(X* p =0) throw();
      // 20.4.5.3 conversions:
      auto_ptr(auto_ptr_ref<X>) throw();
      template<class Y> operator auto_ptr_ref<Y>() throw();
      template<class Y> operator auto_ptr<Y>() throw();
};
}

class A {
// ...
public:
    virtual ~A() {}
};

class B : public A {
// ...
};

std::auto_ptr<B> foo();
inline std::auto_ptr<A> bar()
{
    return foo();
}



E>Для спасибо тут есть кнопки...

И впрямь, но жать мы их пока повременим
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.