1 // Boost noncopyable.hpp header file --------------------------------------// 2 3 // (C) Copyright Beman Dawes 1999-2003. Distributed under the Boost 4 // Software License, Version 1.0. (See accompanying file 5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 7 // See http://www.boost.org/libs/utility for documentation. 8 9 #ifndef BOOST_NONCOPYABLE_HPP_INCLUDED 10 #define BOOST_NONCOPYABLE_HPP_INCLUDED 11 12 namespace boost { 13 14 // Private copy constructor and copy assignment ensure classes derived from 15 // class noncopyable cannot be copied. 16 17 // Contributed by Dave Abrahams 18 19 namespace noncopyable_ // protection from unintended ADL 20 { 21 class noncopyable 22 { 23 protected: noncopyable()24 noncopyable() {} ~noncopyable()25 ~noncopyable() {} 26 private: // emphasize the following members are private 27 noncopyable( const noncopyable& ); 28 const noncopyable& operator=( const noncopyable& ); 29 }; 30 } 31 32 typedef noncopyable_::noncopyable noncopyable; 33 34 } // namespace boost 35 36 #endif // BOOST_NONCOPYABLE_HPP_INCLUDED 37