// Boost scoped_ptr_example header file ------------------------------------// // Copyright Beman Dawes 2001. 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 for documentation. #include #include // The point of this example is to prove that even though // example::implementation is an incomplete type in translation units using // this header, scoped_ptr< implementation > is still valid because the type // is complete where it counts - in the inplementation translation unit where // destruction is actually instantiated. class example : private boost::noncopyable { public: example(); ~example(); void do_something(); private: class implementation; boost::scoped_ptr< implementation > _imp; // hide implementation details };