X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=boost%2Fboost%2Fscoped_ptr.hpp;h=cb916dac1d1c476d03d7fed8d2ac8edf43afedd0;hb=43c09d723435a5b203f2ac0c39e2086de836b386;hp=f452f7a8a9d28c3fa6dadebbf5448332898196fa;hpb=59b6a4701a8d2b5155af08cf758b4ca120201282;p=lyx.git diff --git a/boost/boost/scoped_ptr.hpp b/boost/boost/scoped_ptr.hpp index f452f7a8a9..cb916dac1d 100644 --- a/boost/boost/scoped_ptr.hpp +++ b/boost/boost/scoped_ptr.hpp @@ -4,86 +4,13 @@ // (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. // Copyright (c) 2001, 2002 Peter Dimov // -// Permission to copy, use, modify, sell and distribute this software -// is granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) // -// See http://www.boost.org/libs/smart_ptr/scoped_ptr.htm for documentation. +// http://www.boost.org/libs/smart_ptr/scoped_ptr.htm // -#include -#include - -namespace boost -{ - -// scoped_ptr mimics a built-in pointer except that it guarantees deletion -// of the object pointed to, either on destruction of the scoped_ptr or via -// an explicit reset(). scoped_ptr is a simple solution for simple needs; -// use shared_ptr or std::auto_ptr if your needs are more complex. - -template class scoped_ptr // noncopyable -{ -private: - - T* ptr; - - scoped_ptr(scoped_ptr const &); - scoped_ptr & operator=(scoped_ptr const &); - -public: - - typedef T element_type; - - explicit scoped_ptr(T * p = 0): ptr(p) // never throws - { - } - - ~scoped_ptr() // never throws - { - checked_delete(ptr); - } - - void reset(T * p = 0) // never throws - { - if (ptr != p) - { - checked_delete(ptr); - ptr = p; - } - } - - T & operator*() const // never throws - { - BOOST_ASSERT(ptr != 0); - return *ptr; - } - - T * operator->() const // never throws - { - BOOST_ASSERT(ptr != 0); - return ptr; - } - - T * get() const // never throws - { - return ptr; - } - - void swap(scoped_ptr & b) // never throws - { - T * tmp = b.ptr; - b.ptr = ptr; - ptr = tmp; - } -}; - -template inline void swap(scoped_ptr & a, scoped_ptr & b) // never throws -{ - a.swap(b); -} - -} // namespace boost +#include #endif // #ifndef BOOST_SCOPED_PTR_HPP_INCLUDED