366d2666d4
[SVN r24031]
32 lines
1.1 KiB
C++
32 lines
1.1 KiB
C++
// Boost shared_ptr_example2 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 <boost/shared_ptr.hpp>
|
|
|
|
// This example demonstrates the handle/body idiom (also called pimpl and
|
|
// several other names). It separates the interface (in this header file)
|
|
// from the implementation (in shared_ptr_example2.cpp).
|
|
|
|
// Note that even though example::implementation is an incomplete type in
|
|
// some translation units using this header, shared_ptr< implementation >
|
|
// is still valid because the type is complete where it counts - in the
|
|
// shared_ptr_example2.cpp translation unit where functions requiring a
|
|
// complete type are actually instantiated.
|
|
|
|
class example
|
|
{
|
|
public:
|
|
example();
|
|
void do_something();
|
|
private:
|
|
class implementation;
|
|
boost::shared_ptr< implementation > _imp; // hide implementation details
|
|
};
|
|
|