diff --git a/compatibility.htm b/compatibility.htm
index 6d7af92..71662ce 100644
--- a/compatibility.htm
+++ b/compatibility.htm
@@ -1,105 +1,89 @@
-
-
-
-
-Smart Pointer Changes
-
-
-
-
-
Smart
-Pointer Changes
-
-The February 2002 change to the Boost smart pointers introduced a number
-of changes. Since the previous version of the smart pointers was in use for
-a long time, it's useful to have a detailed list of what changed from a library
-user's point of view.
-
-Note that for compilers that don't support member templates well enough,
-a separate implementation is used that lacks many of the new features and is
-more like the old version.
-
-Features Requiring Code Changes to Take Advantage
-
-
-
-- The smart pointer class templates now each have their own header file.
-For compatibility, the
-<boost/smart_ptr.hpp>
-header now includes the headers for the four classic smart pointer class templates.
-
-- The weak_ptr template was added.
-
-- The new shared_ptr and shared_array relax the requirement that the pointed-to object's
-destructor must be visible when instantiating the shared_ptr destructor.
-This makes it easier to have shared_ptr members in classes without explicit destructors.
-
-- A custom deallocator can be passed in when creating a shared_ptr or shared_array.
-
-- shared_static_cast and shared_dynamic_cast function templates are
-provided which work for shared_ptr and weak_ptr as static_cast and
-dynamic_cast do for pointers.
-
-- The self-assignment misfeature has been removed from shared_ptr::reset,
-although it is still present in scoped_ptr, and in std::auto_ptr.
-Calling reset with a pointer to the object that's already owned by the
-shared_ptr results in undefined behavior
-(an assertion, or eventually a double-delete if assertions are off).
-
-- The BOOST_SMART_PTR_CONVERSION feature has been removed.
-
-- shared_ptr<void> is now allowed.
-
-
-
-Features That Improve Robustness
-
-
-
-- The manipulation of use counts is now thread safe on Windows, Linux, and platforms
-that support pthreads. See the
-<boost/detail/atomic_count.hpp>
-file for details
-
-- The new shared_ptr will always delete the object using the pointer it was originally constructed with.
-This prevents subtle problems that could happen if the last shared_ptr was a pointer to a sub-object
-of a class that did not have a virtual destructor.
-
-
-
-Implementation Details
-
-
-
-- Some bugs in the assignment operator implementations and in reset
-have been fixed by using the "copy and swap" idiom.
-
-- Assertions have been added to check preconditions of various functions;
-however, since these use the new
-<boost/assert.hpp>
-header, the assertions are disabled by default.
-
-- The partial specialization of std::less has been replaced by operator<
-overloads which accomplish the same thing without relying on undefined behavior.
-
-- The incorrect overload of std::swap has been replaced by boost::swap, which
-has many of the same advantages for generic programming but does not violate the C++ standard.
-
-
-
-
-
-Revised 1 February 2002
-
-Copyright 2002 Darin Adler.
-Permission to copy, use,
-modify, sell and distribute this document is granted provided this copyright
-notice appears in all copies. This document is provided "as is"
-without express or implied warranty, and with no claim as to its suitability for
-any purpose.
-
-
-
+
+ Smart Pointer Changes
+
+
+
+
Smart Pointer Changes
+ The February 2002 change to the Boost smart pointers introduced a number of
+ changes. Since the previous version of the smart pointers was in use for a long
+ time, it's useful to have a detailed list of what changed from a library user's
+ point of view.
+ Note that for compilers that don't support member templates well enough, a
+ separate implementation is used that lacks many of the new features and is more
+ like the old version.
+ Features Requiring Code Changes to Take Advantage
+
+ -
+ The smart pointer class templates now each have their own header file. For
+ compatibility, the <boost/smart_ptr.hpp>
+ header now includes the headers for the four classic smart pointer class
+ templates.
+
-
+ The weak_ptr
+ template was added.
+
-
+ The new shared_ptr and shared_array relax the requirement that
+ the pointed-to object's destructor must be visible when instantiating the shared_ptr
+ destructor. This makes it easier to have shared_ptr members in classes without
+ explicit destructors.
+
-
+ A custom deallocator can be passed in when creating a shared_ptr or shared_array.
+
-
+ shared_static_cast and shared_dynamic_cast function templates are
+ provided which work for shared_ptr and weak_ptr as static_cast
+ and dynamic_cast
+ do for pointers.
+
-
+ The self-assignment misfeature has been removed from shared_ptr::reset,
+ although it is still present in scoped_ptr, and in std::auto_ptr.
+ Calling reset with a pointer to the object that's already owned by the shared_ptr
+ results in undefined behavior (an assertion, or eventually a double-delete if
+ assertions are off).
+
-
+ The BOOST_SMART_PTR_CONVERSION
+ feature has been removed.
+
-
+ shared_ptr<void> is now allowed.
+
+ Features That Improve Robustness
+
+ -
+ The manipulation of use counts is now thread safe on
+ Windows, Linux, and platforms that support pthreads. See the
+ <boost/detail/atomic_count.hpp>
+ file for details
+
-
+ The new shared_ptr will always delete the object using the pointer it was
+ originally constructed with. This prevents subtle problems that could happen if
+ the last shared_ptr was a pointer to a sub-object of a class that did
+ not have a virtual destructor.
+
+ Implementation Details
+
+ -
+ Some bugs in the assignment operator implementations and in reset
+ have been fixed by using the "copy and swap" idiom.
+
-
+ Assertions have been added to check preconditions of various functions;
+ however, since these use the new <boost/assert.hpp>
+ header, the assertions are disabled by default.
+
-
+ The partial specialization of std::less has been replaced by operator<
+ overloads which accomplish the same thing without relying on undefined
+ behavior.
+
-
+ The incorrect overload of std::swap has been replaced by boost::swap,
+ which has many of the same advantages for generic programming but does not
+ violate the C++ standard.
+
+
+ Revised 1 February 2002
+ Copyright 2002 Darin Adler. Permission to copy, use, modify, sell and distribute
+ this document is granted provided this copyright notice appears in all copies.
+ This document is provided "as is" without express or implied warranty, and with
+ no claim as to its suitability for any purpose.
+
diff --git a/enable_shared_from_this.html b/enable_shared_from_this.html
index 8d6a6e3..166870f 100644
--- a/enable_shared_from_this.html
+++ b/enable_shared_from_this.html
@@ -7,10 +7,9 @@
-
-
+ |
|
-
+ |
enable_shared_from_this.hpp
|
diff --git a/intrusive_ptr.html b/intrusive_ptr.html
index 8844491..5d8aa48 100644
--- a/intrusive_ptr.html
+++ b/intrusive_ptr.html
@@ -5,7 +5,7 @@
- 
intrusive_ptr class template
Introduction
diff --git a/shared_ptr.htm b/shared_ptr.htm
index 26fd78e..0cc77d2 100644
--- a/shared_ptr.htm
+++ b/shared_ptr.htm
@@ -5,8 +5,8 @@
-
shared_ptr
- class template
+
shared_ptr class template
Introduction
Best Practices
Synopsis
@@ -621,7 +621,7 @@ p3.reset(new int(2)); // undefined, multiple writes
day a highly configurable smart pointer may be invented that is also very easy
to use and very hard to misuse. Until then, shared_ptr is the smart
pointer of choice for a wide range of applications. (Those interested in policy
- based smart pointers should read
+ based smart pointers should read
Modern C++ Design by Andrei Alexandrescu.)
Q. I am not convinced. Default parameters can be used where appropriate
diff --git a/smart_ptr.htm b/smart_ptr.htm
index 2ff8dd2..14f456b 100644
--- a/smart_ptr.htm
+++ b/smart_ptr.htm
@@ -5,8 +5,8 @@
-
Smart
- Pointers
+
Smart Pointers
Introduction
Common Requirements
Exception Safety
diff --git a/sp_techniques.html b/sp_techniques.html
index 816047f..d41be4b 100644
--- a/sp_techniques.html
+++ b/sp_techniques.html
@@ -5,8 +5,8 @@
-
Smart
- Pointer Programming Techniques
+
Smart Pointer Programming Techniques
Using incomplete classes for implementation hiding
The "Pimpl" idiom
Using abstract classes for implementation hiding
diff --git a/weak_ptr.htm b/weak_ptr.htm
index e214d4a..68dc980 100644
--- a/weak_ptr.htm
+++ b/weak_ptr.htm
@@ -5,8 +5,8 @@
-
weak_ptr
- class template
+
weak_ptr class template
Introduction
Synopsis
Members