williamr@2: // Boost noncopyable.hpp header file --------------------------------------// williamr@2: williamr@2: // (C) Copyright Beman Dawes 1999-2003. Distributed under the Boost williamr@2: // Software License, Version 1.0. (See accompanying file williamr@2: // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) williamr@2: williamr@2: // See http://www.boost.org/libs/utility for documentation. williamr@2: williamr@2: #ifndef BOOST_NONCOPYABLE_HPP_INCLUDED williamr@2: #define BOOST_NONCOPYABLE_HPP_INCLUDED williamr@2: williamr@2: namespace boost { williamr@2: williamr@2: // Private copy constructor and copy assignment ensure classes derived from williamr@2: // class noncopyable cannot be copied. williamr@2: williamr@2: // Contributed by Dave Abrahams williamr@2: williamr@2: namespace noncopyable_ // protection from unintended ADL williamr@2: { williamr@2: class noncopyable williamr@2: { williamr@2: protected: williamr@2: noncopyable() {} williamr@2: ~noncopyable() {} williamr@2: private: // emphasize the following members are private williamr@2: noncopyable( const noncopyable& ); williamr@2: const noncopyable& operator=( const noncopyable& ); williamr@2: }; williamr@2: } williamr@2: williamr@2: typedef noncopyable_::noncopyable noncopyable; williamr@2: williamr@2: } // namespace boost williamr@2: williamr@2: #endif // BOOST_NONCOPYABLE_HPP_INCLUDED