Listing 1
// TR1 additions to header <memory>
namespace std {
namespace tr1 {
// SHARED POINTERS
template<class Ty> class shared_ptr;
// WEAK POINTERS
template<class Ty> class weak_ptr;
template<class Ty1, class Ty2>
bool operator<(const weak_ptr<Ty1>&, const weak_ptr<Ty2>&);
template <class Ty>
void swap(const weak_ptr<Ty>&, const weak_ptr<Ty>&);
// UTILITY CLASSES AND TEMPLATES
template <class Ty> class enable_shared_from_this;
class bad_weak_ptr : public std::exception {
public:
bad_weak_ptr();
const char *what() throw();
};
} }