Déclarations de auto_ptr de C++ Standard LibraryLe but de struct vide?
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>) 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();
};
}
Je ne comprends pas le but de cette partie:
template <class Y> struct auto_ptr_ref {};
Sans déclarer une variable, comment peut-être valide:
auto_ptr& operator=(auto_ptr_ref<X>) throw();
et ceux-ci aussi:
auto_ptr(auto_ptr_ref<X>) throw();
template <class Y> operator auto_ptr_ref<Y>() throw();
Edit: et aussi (je remarque juste) Je ne comprends pas comment le « opérateur » sont utilisés pour les deux dernières lignes. La syntaxe n'est-elle pas quelque chose comme "return-type operatoroperand;", où est le type de retour? opérande?
ah je ne sais tout simplement jamais cela (encore nouveau ici) – user385261
@ user385261: Lorsque vous êtes nouveau sur un site Web, lisez leur FAQ. Ce n'est pas là pour des coups de pied. –