$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r62016 - in trunk/boost/test: . detail impl included output utils utils/basic_cstring utils/iterator utils/runtime utils/runtime/cla utils/runtime/cla/detail utils/runtime/cla/iface utils/runtime/env utils/runtime/file
From: gennadiy.rozental_at_[hidden]
Date: 2010-05-15 22:45:43
Author: rogeeff
Date: 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
New Revision: 62016
URL: http://svn.boost.org/trac/boost/changeset/62016
Log:
New floating point portable interfaces introduced in namespace fpe
FPE enable/disable now works on *nix as well
FPE handling is split from system errors handling. You can detect FPE even if catch_system_error is false
SIGCHLD handling removed
seh_catch_preventer eliminated in latest versions of MSVC
Added an ability to erase registered exception translator
Lazy_ostream updated to be usable in more use cases
New production testing tools interface introduced
New header for the execution monitor standalone usage
Added:
   trunk/boost/test/included/execution_monitor.hpp   (contents, props changed)
   trunk/boost/test/prod_tools.hpp   (contents, props changed)
Properties modified: 
   trunk/boost/test/utils/setcolor.hpp   (contents, props changed)
Text files modified: 
   trunk/boost/test/auto_unit_test.hpp                                |     2                                         
   trunk/boost/test/debug.hpp                                         |     2                                         
   trunk/boost/test/debug_config.hpp                                  |     2                                         
   trunk/boost/test/detail/config.hpp                                 |     8                                         
   trunk/boost/test/detail/enable_warnings.hpp                        |     2                                         
   trunk/boost/test/detail/fwd_decl.hpp                               |     2                                         
   trunk/boost/test/detail/global_typedef.hpp                         |     2                                         
   trunk/boost/test/detail/log_level.hpp                              |     2                                         
   trunk/boost/test/detail/suppress_warnings.hpp                      |     2                                         
   trunk/boost/test/detail/unit_test_parameters.hpp                   |     2                                         
   trunk/boost/test/detail/workaround.hpp                             |     2                                         
   trunk/boost/test/exception_safety.hpp                              |     2                                         
   trunk/boost/test/execution_monitor.hpp                             |   190 +++++++++++++++++++++-----              
   trunk/boost/test/floating_point_comparison.hpp                     |   225 +++++++++++++++++++------------         
   trunk/boost/test/framework.hpp                                     |     2                                         
   trunk/boost/test/impl/compiler_log_formatter.ipp                   |     2                                         
   trunk/boost/test/impl/cpp_main.ipp                                 |     2                                         
   trunk/boost/test/impl/debug.ipp                                    |     2                                         
   trunk/boost/test/impl/exception_safety.ipp                         |     2                                         
   trunk/boost/test/impl/execution_monitor.ipp                        |   281 +++++++++++++++++++++------------------ 
   trunk/boost/test/impl/framework.ipp                                |     2                                         
   trunk/boost/test/impl/interaction_based.ipp                        |     2                                         
   trunk/boost/test/impl/logged_expectations.ipp                      |     2                                         
   trunk/boost/test/impl/plain_report_formatter.ipp                   |     2                                         
   trunk/boost/test/impl/progress_monitor.ipp                         |     2                                         
   trunk/boost/test/impl/results_collector.ipp                        |     2                                         
   trunk/boost/test/impl/results_reporter.ipp                         |     2                                         
   trunk/boost/test/impl/test_main.ipp                                |     2                                         
   trunk/boost/test/impl/test_tools.ipp                               |     2                                         
   trunk/boost/test/impl/unit_test_log.ipp                            |     2                                         
   trunk/boost/test/impl/unit_test_main.ipp                           |     2                                         
   trunk/boost/test/impl/unit_test_monitor.ipp                        |     2                                         
   trunk/boost/test/impl/unit_test_parameters.ipp                     |     2                                         
   trunk/boost/test/impl/unit_test_suite.ipp                          |     2                                         
   trunk/boost/test/impl/xml_log_formatter.ipp                        |     2                                         
   trunk/boost/test/impl/xml_report_formatter.ipp                     |     2                                         
   trunk/boost/test/included/prg_exec_monitor.hpp                     |     2                                         
   trunk/boost/test/included/test_exec_monitor.hpp                    |     2                                         
   trunk/boost/test/included/unit_test.hpp                            |     2                                         
   trunk/boost/test/interaction_based.hpp                             |     2                                         
   trunk/boost/test/logged_expectations.hpp                           |     2                                         
   trunk/boost/test/minimal.hpp                                       |     2                                         
   trunk/boost/test/mock_object.hpp                                   |     2                                         
   trunk/boost/test/output/compiler_log_formatter.hpp                 |     2                                         
   trunk/boost/test/output/plain_report_formatter.hpp                 |     2                                         
   trunk/boost/test/output/xml_log_formatter.hpp                      |     2                                         
   trunk/boost/test/output/xml_report_formatter.hpp                   |     2                                         
   trunk/boost/test/output_test_stream.hpp                            |     2                                         
   trunk/boost/test/parameterized_test.hpp                            |     2                                         
   trunk/boost/test/predicate_result.hpp                              |     2                                         
   trunk/boost/test/prg_exec_monitor.hpp                              |     2                                         
   trunk/boost/test/progress_monitor.hpp                              |     2                                         
   trunk/boost/test/results_collector.hpp                             |     2                                         
   trunk/boost/test/results_reporter.hpp                              |     2                                         
   trunk/boost/test/test_case_template.hpp                            |     2                                         
   trunk/boost/test/test_exec_monitor.hpp                             |     2                                         
   trunk/boost/test/test_observer.hpp                                 |     2                                         
   trunk/boost/test/test_tools.hpp                                    |    14                                         
   trunk/boost/test/unit_test.hpp                                     |     2                                         
   trunk/boost/test/unit_test_log.hpp                                 |     2                                         
   trunk/boost/test/unit_test_log_formatter.hpp                       |     2                                         
   trunk/boost/test/unit_test_monitor.hpp                             |     2                                         
   trunk/boost/test/unit_test_suite.hpp                               |     2                                         
   trunk/boost/test/unit_test_suite_impl.hpp                          |     2                                         
   trunk/boost/test/utils/algorithm.hpp                               |     2                                         
   trunk/boost/test/utils/assign_op.hpp                               |     2                                         
   trunk/boost/test/utils/basic_cstring/basic_cstring.hpp             |     2                                         
   trunk/boost/test/utils/basic_cstring/basic_cstring_fwd.hpp         |     2                                         
   trunk/boost/test/utils/basic_cstring/bcs_char_traits.hpp           |     2                                         
   trunk/boost/test/utils/basic_cstring/compare.hpp                   |     2                                         
   trunk/boost/test/utils/basic_cstring/io.hpp                        |     2                                         
   trunk/boost/test/utils/callback.hpp                                |     2                                         
   trunk/boost/test/utils/class_properties.hpp                        |     2                                         
   trunk/boost/test/utils/custom_manip.hpp                            |     2                                         
   trunk/boost/test/utils/fixed_mapping.hpp                           |     2                                         
   trunk/boost/test/utils/foreach.hpp                                 |     2                                         
   trunk/boost/test/utils/iterator/ifstream_line_iterator.hpp         |     2                                         
   trunk/boost/test/utils/iterator/input_iterator_facade.hpp          |     2                                         
   trunk/boost/test/utils/iterator/istream_line_iterator.hpp          |     2                                         
   trunk/boost/test/utils/iterator/token_iterator.hpp                 |     2                                         
   trunk/boost/test/utils/lazy_ostream.hpp                            |    47 +++--                                   
   trunk/boost/test/utils/named_params.hpp                            |     2                                         
   trunk/boost/test/utils/nullstream.hpp                              |     2                                         
   trunk/boost/test/utils/rtti.hpp                                    |     2                                         
   trunk/boost/test/utils/runtime/argument.hpp                        |     2                                         
   trunk/boost/test/utils/runtime/cla/argument_factory.hpp            |     2                                         
   trunk/boost/test/utils/runtime/cla/argv_traverser.cpp              |     2                                         
   trunk/boost/test/utils/runtime/cla/argv_traverser.hpp              |     2                                         
   trunk/boost/test/utils/runtime/cla/argv_traverser.ipp              |     2                                         
   trunk/boost/test/utils/runtime/cla/basic_parameter.hpp             |     2                                         
   trunk/boost/test/utils/runtime/cla/char_parameter.cpp              |     2                                         
   trunk/boost/test/utils/runtime/cla/char_parameter.hpp              |     2                                         
   trunk/boost/test/utils/runtime/cla/char_parameter.ipp              |     2                                         
   trunk/boost/test/utils/runtime/cla/detail/argument_value_usage.hpp |     2                                         
   trunk/boost/test/utils/runtime/cla/dual_name_parameter.cpp         |     2                                         
   trunk/boost/test/utils/runtime/cla/dual_name_parameter.hpp         |     2                                         
   trunk/boost/test/utils/runtime/cla/dual_name_parameter.ipp         |     2                                         
   trunk/boost/test/utils/runtime/cla/fwd.hpp                         |     2                                         
   trunk/boost/test/utils/runtime/cla/id_policy.cpp                   |     2                                         
   trunk/boost/test/utils/runtime/cla/id_policy.hpp                   |     2                                         
   trunk/boost/test/utils/runtime/cla/id_policy.ipp                   |     2                                         
   trunk/boost/test/utils/runtime/cla/iface/argument_factory.hpp      |     2                                         
   trunk/boost/test/utils/runtime/cla/iface/id_policy.hpp             |     2                                         
   trunk/boost/test/utils/runtime/cla/modifier.hpp                    |     2                                         
   trunk/boost/test/utils/runtime/cla/named_parameter.cpp             |     2                                         
   trunk/boost/test/utils/runtime/cla/named_parameter.hpp             |     2                                         
   trunk/boost/test/utils/runtime/cla/named_parameter.ipp             |     2                                         
   trunk/boost/test/utils/runtime/cla/parameter.hpp                   |     2                                         
   trunk/boost/test/utils/runtime/cla/parser.cpp                      |     2                                         
   trunk/boost/test/utils/runtime/cla/parser.hpp                      |     2                                         
   trunk/boost/test/utils/runtime/cla/parser.ipp                      |     2                                         
   trunk/boost/test/utils/runtime/cla/positional_parameter.hpp        |     2                                         
   trunk/boost/test/utils/runtime/cla/typed_parameter.hpp             |     2                                         
   trunk/boost/test/utils/runtime/cla/validation.cpp                  |     2                                         
   trunk/boost/test/utils/runtime/cla/validation.hpp                  |     2                                         
   trunk/boost/test/utils/runtime/cla/validation.ipp                  |     2                                         
   trunk/boost/test/utils/runtime/cla/value_generator.hpp             |     2                                         
   trunk/boost/test/utils/runtime/cla/value_handler.hpp               |     2                                         
   trunk/boost/test/utils/runtime/config.hpp                          |     2                                         
   trunk/boost/test/utils/runtime/configuration.hpp                   |     2                                         
   trunk/boost/test/utils/runtime/env/environment.cpp                 |     2                                         
   trunk/boost/test/utils/runtime/env/environment.hpp                 |     2                                         
   trunk/boost/test/utils/runtime/env/environment.ipp                 |     2                                         
   trunk/boost/test/utils/runtime/env/fwd.hpp                         |     2                                         
   trunk/boost/test/utils/runtime/env/modifier.hpp                    |     2                                         
   trunk/boost/test/utils/runtime/env/variable.hpp                    |     2                                         
   trunk/boost/test/utils/runtime/file/config_file.cpp                |     2                                         
   trunk/boost/test/utils/runtime/file/config_file.hpp                |     2                                         
   trunk/boost/test/utils/runtime/file/config_file_iterator.cpp       |     2                                         
   trunk/boost/test/utils/runtime/file/config_file_iterator.hpp       |     2                                         
   trunk/boost/test/utils/runtime/fwd.hpp                             |     2                                         
   trunk/boost/test/utils/runtime/interpret_argument_value.hpp        |     2                                         
   trunk/boost/test/utils/runtime/parameter.hpp                       |     2                                         
   trunk/boost/test/utils/runtime/trace.hpp                           |     2                                         
   trunk/boost/test/utils/runtime/validation.hpp                      |     2                                         
   trunk/boost/test/utils/setcolor.hpp                                |     2                                         
   trunk/boost/test/utils/trivial_singleton.hpp                       |     2                                         
   trunk/boost/test/utils/wrap_stringstream.hpp                       |     2                                         
   trunk/boost/test/utils/xml_printer.hpp                             |     2                                         
   139 files changed, 621 insertions(+), 410 deletions(-)
Modified: trunk/boost/test/auto_unit_test.hpp
==============================================================================
--- trunk/boost/test/auto_unit_test.hpp	(original)
+++ trunk/boost/test/auto_unit_test.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/debug.hpp
==============================================================================
--- trunk/boost/test/debug.hpp	(original)
+++ trunk/boost/test/debug.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2006-2008.
+//  (C) Copyright Gennadiy Rozental 2006-2010.
 //  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)
Modified: trunk/boost/test/debug_config.hpp
==============================================================================
--- trunk/boost/test/debug_config.hpp	(original)
+++ trunk/boost/test/debug_config.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2006-2008.
+//  (C) Copyright Gennadiy Rozental 2006-2010.
 //  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)
Modified: trunk/boost/test/detail/config.hpp
==============================================================================
--- trunk/boost/test/detail/config.hpp	(original)
+++ trunk/boost/test/detail/config.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
@@ -19,6 +19,12 @@
 #include <boost/config.hpp> // compilers workarounds
 #include <boost/detail/workaround.hpp>
 
+#if defined(_WIN32) && !defined(BOOST_DISABLE_WIN32) &&                  \
+    (!defined(__COMO__) && !defined(__MWERKS__) && !defined(__GNUC__) || \
+    BOOST_WORKAROUND(__MWERKS__, >= 0x3000))
+#  define BOOST_SEH_BASED_SIGNAL_HANDLING
+#endif
+
 //____________________________________________________________________________//
 
 #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)) || \
Modified: trunk/boost/test/detail/enable_warnings.hpp
==============================================================================
--- trunk/boost/test/detail/enable_warnings.hpp	(original)
+++ trunk/boost/test/detail/enable_warnings.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
+//  (C) Copyright Gennadiy Rozental 2004-2010.
 //  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)
Modified: trunk/boost/test/detail/fwd_decl.hpp
==============================================================================
--- trunk/boost/test/detail/fwd_decl.hpp	(original)
+++ trunk/boost/test/detail/fwd_decl.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/detail/global_typedef.hpp
==============================================================================
--- trunk/boost/test/detail/global_typedef.hpp	(original)
+++ trunk/boost/test/detail/global_typedef.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/detail/log_level.hpp
==============================================================================
--- trunk/boost/test/detail/log_level.hpp	(original)
+++ trunk/boost/test/detail/log_level.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/detail/suppress_warnings.hpp
==============================================================================
--- trunk/boost/test/detail/suppress_warnings.hpp	(original)
+++ trunk/boost/test/detail/suppress_warnings.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
+//  (C) Copyright Gennadiy Rozental 2004-2010.
 //  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)
Modified: trunk/boost/test/detail/unit_test_parameters.hpp
==============================================================================
--- trunk/boost/test/detail/unit_test_parameters.hpp	(original)
+++ trunk/boost/test/detail/unit_test_parameters.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/detail/workaround.hpp
==============================================================================
--- trunk/boost/test/detail/workaround.hpp	(original)
+++ trunk/boost/test/detail/workaround.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/exception_safety.hpp
==============================================================================
--- trunk/boost/test/exception_safety.hpp	(original)
+++ trunk/boost/test/exception_safety.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/execution_monitor.hpp
==============================================================================
--- trunk/boost/test/execution_monitor.hpp	(original)
+++ trunk/boost/test/execution_monitor.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  (C) Copyright Beman Dawes 2001.
 //  Distributed under the Boost Software License, Version 1.0.
 //  (See accompanying file LICENSE_1_0.txt or copy at 
@@ -39,39 +39,104 @@
 #include <boost/test/utils/class_properties.hpp>
 
 // Boost
-#include <boost/scoped_ptr.hpp>
+#include <boost/shared_ptr.hpp>
 #include <boost/scoped_array.hpp>
 #include <boost/type.hpp>
 #include <boost/cstdlib.hpp>
 
 #include <boost/test/detail/suppress_warnings.hpp>
 
+#ifdef BOOST_SEH_BASED_SIGNAL_HANDLING
+
+// for the FP constants and control routines
+#include <float.h>
+
+#ifndef EM_INVALID
+#define EM_INVALID _EM_INVALID
+#endif
+
+#ifndef EM_DENORMAL
+#define EM_DENORMAL _EM_DENORMAL
+#endif
+
+#ifndef EM_ZERODIVIDE
+#define EM_ZERODIVIDE _EM_ZERODIVIDE
+#endif
+
+#ifndef EM_OVERFLOW
+#define EM_OVERFLOW _EM_OVERFLOW
+#endif
+
+#ifndef EM_UNDERFLOW
+#define EM_UNDERFLOW _EM_UNDERFLOW
+#endif
+
+#ifndef MCW_EM
+#define MCW_EM _MCW_EM
+#endif
+
+#else // based on ISO C standard
+
+#ifndef __CYGWIN__
+#include <fenv.h>
+#endif
+
+#endif
+
 //____________________________________________________________________________//
 
 namespace boost {
 
-namespace detail {
-
 // ************************************************************************** //
-// **************       detail::translate_exception_base       ************** //
+// **************        detail::translator_holder_base        ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL translate_exception_base {
+namespace detail {
+
+class translator_holder_base;
+typedef boost::shared_ptr<translator_holder_base> translator_holder_base_ptr;
+
+class BOOST_TEST_DECL translator_holder_base {
+protected:
+    typedef boost::unit_test::const_string const_string;
 public:
     // Constructor
-    explicit    translate_exception_base( boost::scoped_ptr<translate_exception_base>& next )
+    translator_holder_base( translator_holder_base_ptr next, const_string tag )
+    : m_next( next )
+    , m_tag( tag.begin(), tag.end() )
     {
-        next.swap( m_next );
     }
 
     // Destructor
-    virtual     ~translate_exception_base() {}
+    virtual     ~translator_holder_base() {}
 
+    // translator holder interface
+    // invokes the function F inside the try/catch guarding against specific exception
     virtual int operator()( unit_test::callback0<int> const& F ) = 0;
+    // erases specific translator holder from the chain
+    translator_holder_base_ptr erase( translator_holder_base_ptr this_, const_string tag ) 
+    {
+        if( m_next )
+            m_next = m_next->erase( m_next, tag );
+
+        return m_tag == tag ? m_next : this_;
+    }
+#ifndef BOOST_NO_RTTI
+    virtual translator_holder_base_ptr erase( translator_holder_base_ptr this_, std::type_info const& ) = 0;
+    template<typename ExceptionType>
+    translator_holder_base_ptr erase( translator_holder_base_ptr this_, boost::type<ExceptionType>* = 0 )
+    {
+        if( m_next )
+            m_next = m_next->erase<ExceptionType>( m_next );
+
+        return erase( this_, typeid(ExceptionType) );
+    }
+#endif
 
 protected:
     // Data members
-    boost::scoped_ptr<translate_exception_base> m_next;
+    translator_holder_base_ptr  m_next;
+    std::string                 m_tag;
 };
 
 } // namespace detail
@@ -141,15 +206,10 @@
 // ************************************************************************** //
 
 class BOOST_TEST_DECL execution_monitor {
+    typedef boost::unit_test::const_string const_string;
 public:
     // Constructor
-    execution_monitor()
-    : p_catch_system_errors( true )
-    , p_auto_start_dbg( false )
-    , p_timeout( 0 )
-    , p_use_alt_stack( true )
-    , p_detect_fp_exceptions( false )
-    {}
+    execution_monitor();
 
     // Public properties
     
@@ -157,18 +217,22 @@
     //  try to catch system errors/exceptions that would cause program to crash 
     //  in regular case
     unit_test::readwrite_property<bool> p_catch_system_errors; 
+
     //  The p_auto_start_dbg parameter specifies whether the monitor should 
     //  try to attach debugger in case of caught system error
     unit_test::readwrite_property<bool> p_auto_start_dbg;
+
     //  The p_timeout parameter specifies the seconds that elapse before
     //  a timer_error occurs.  May be ignored on some platforms.
     unit_test::readwrite_property<int>  p_timeout;
+
     //  The p_use_alt_stack parameter specifies whether the monitor should
     //  use alternative stack for the signal catching
     unit_test::readwrite_property<bool> p_use_alt_stack;
+
     //  The p_detect_fp_exceptions parameter specifies whether the monitor should
-    //  try to detect hardware floating point exceptions
-    unit_test::readwrite_property<bool> p_detect_fp_exceptions;
+    //  try to detect hardware floating point exceptions (!= 0), and which specific exception to catch
+    unit_test::readwrite_property<unsigned> p_detect_fp_exceptions;
 
     int         execute( unit_test::callback0<int> const& F ); 
     //  Returns:  Value returned by function call F().
@@ -182,41 +246,58 @@
     //  Note: execute() doesn't consider it an error for F to return a non-zero value.
     
     // register custom (user supplied) exception translator
-    template<typename Exception, typename ExceptionTranslator>
-    void        register_exception_translator( ExceptionTranslator const& tr, boost::type<Exception>* = 0 );
+    template<typename ExceptionType, typename ExceptionTranslator>
+    void        register_exception_translator( ExceptionTranslator const& tr, const_string tag = const_string(), boost::type<ExceptionType>* = 0 );
+
+    // erase custom exception translator
+    void        erase_exception_translator( const_string tag )
+    {
+        m_custom_translators = m_custom_translators->erase( m_custom_translators, tag );
+    }
+    template<typename ExceptionType>
+    void        erase_exception_translator( boost::type<ExceptionType>* = 0 )
+    {
+        m_custom_translators = m_custom_translators->erase<ExceptionType>( m_custom_translators );
+    }
 
 private:
     // implementation helpers
     int         catch_signals( unit_test::callback0<int> const& F );
 
     // Data members
-    boost::scoped_ptr<detail::translate_exception_base> m_custom_translators;
-    boost::scoped_array<char>                           m_alt_stack;
+    detail::translator_holder_base_ptr  m_custom_translators;
+    boost::scoped_array<char>           m_alt_stack;
 }; // execution_monitor
 
-namespace detail {
-
 // ************************************************************************** //
-// **************         detail::translate_exception          ************** //
+// **************          detail::translator_holder           ************** //
 // ************************************************************************** //
 
-template<typename Exception, typename ExceptionTranslator>
-class translate_exception : public translate_exception_base
+namespace detail {
+
+template<typename ExceptionType, typename ExceptionTranslator>
+class translator_holder : public translator_holder_base
 {
-    typedef boost::scoped_ptr<translate_exception_base> base_ptr;
 public:
-    explicit    translate_exception( ExceptionTranslator const& tr, base_ptr& next )
-    : translate_exception_base( next ), m_translator( tr ) {}
+    explicit    translator_holder( ExceptionTranslator const& tr, translator_holder_base_ptr& next, const_string tag = const_string() )
+    : translator_holder_base( next, tag ), m_translator( tr ) {}
 
-    int operator()( unit_test::callback0<int> const& F )
+    // translator holder interface
+    virtual int operator()( unit_test::callback0<int> const& F )
     {
         try {
             return m_next ? (*m_next)( F ) : F();
-        } catch( Exception const& e ) {
+        } catch( ExceptionType const& e ) {
             m_translator( e );
             return boost::exit_exception_failure;
         }
     }
+#ifndef BOOST_NO_RTTI
+    virtual translator_holder_base_ptr erase( translator_holder_base_ptr this_, std::type_info const& ti ) 
+    {
+        return ti == typeid(ExceptionType) ? m_next : this_;
+    }
+#endif
 
 private:
     // Data members
@@ -225,12 +306,12 @@
 
 } // namespace detail
 
-template<typename Exception, typename ExceptionTranslator>
+template<typename ExceptionType, typename ExceptionTranslator>
 void
-execution_monitor::register_exception_translator( ExceptionTranslator const& tr, boost::type<Exception>* )
+execution_monitor::register_exception_translator( ExceptionTranslator const& tr, const_string tag, boost::type<ExceptionType>* )
 {
     m_custom_translators.reset( 
-        new detail::translate_exception<Exception,ExceptionTranslator>( tr,m_custom_translators ) );
+        new detail::translator_holder<ExceptionType,ExceptionTranslator>( tr, m_custom_translators, tag ) );
 }
 
 // ************************************************************************** //
@@ -254,6 +335,43 @@
 
 #define BOOST_TEST_SYS_ASSERT( exp ) if( (exp) ) ; else throw ::boost::system_error( BOOST_STRINGIZE( exp ) )
 
+// ************************************************************************** //
+// **************Floating point exception management interface ************** //
+// ************************************************************************** //
+
+namespace fpe {
+
+enum masks {
+    BOOST_FPE_OFF       = 0,
+
+#ifdef BOOST_SEH_BASED_SIGNAL_HANDLING
+    BOOST_FPE_DIVBYZERO = EM_ZERODIVIDE,
+    BOOST_FPE_INEXACT   = EM_INEXACT,
+    BOOST_FPE_INVALID   = EM_INVALID,
+    BOOST_FPE_OVERFLOW  = EM_OVERFLOW,
+    BOOST_FPE_UNDERFLOW = EM_UNDERFLOW|EM_DENORMAL,
+
+    BOOST_FPE_ALL       = MCW_EM,
+#elif defined(__CYGWIN__)
+    BOOST_FPE_ALL       = 1
+#else
+    BOOST_FPE_DIVBYZERO = FE_DIVBYZERO,
+    BOOST_FPE_INEXACT   = FE_INEXACT,
+    BOOST_FPE_INVALID   = FE_INVALID,
+    BOOST_FPE_OVERFLOW  = FE_OVERFLOW,
+    BOOST_FPE_UNDERFLOW = FE_UNDERFLOW,
+
+    BOOST_FPE_ALL       = FE_ALL_EXCEPT,
+#endif
+    BOOST_FPE_INV       = BOOST_FPE_ALL+1
+};
+
+// return the previous set of enabled exceptions when successful, and BOOST_FPE_INV otherwise
+unsigned BOOST_TEST_DECL enable( unsigned mask );
+unsigned BOOST_TEST_DECL disable( unsigned mask );
+
+} // namespace fpe
+
 }  // namespace boost
 
 //____________________________________________________________________________//
Modified: trunk/boost/test/floating_point_comparison.hpp
==============================================================================
--- trunk/boost/test/floating_point_comparison.hpp	(original)
+++ trunk/boost/test/floating_point_comparison.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
@@ -17,13 +17,16 @@
 
 // Boost.Test
 #include <boost/test/detail/global_typedef.hpp>
-#include <boost/test/utils/class_properties.hpp>
 #include <boost/test/predicate_result.hpp>
 
 // Boost
 #include <boost/limits.hpp>  // for std::numeric_limits
 #include <boost/numeric/conversion/conversion_traits.hpp> // for numeric::conversion_traits
 #include <boost/static_assert.hpp>
+#include <boost/assert.hpp>
+
+// STL
+#include <iosfwd>
 
 #include <boost/test/detail/suppress_warnings.hpp>
 
@@ -31,25 +34,22 @@
 
 namespace boost {
 
-namespace test_tools {
-
-using unit_test::readonly_property;
+namespace math { namespace fpc {
 
 // ************************************************************************** //
-// **************        floating_point_comparison_type        ************** //
+// **************                 fpc::strength                ************** //
 // ************************************************************************** //
 
-enum floating_point_comparison_type {
+enum strength {
     FPC_STRONG, // "Very close"   - equation 1' in docs, the default
     FPC_WEAK    // "Close enough" - equation 2' in docs.
-
 };
 
 // ************************************************************************** //
 // **************                    details                   ************** //
 // ************************************************************************** //
 
-namespace tt_detail {
+namespace fpc_detail {
 
 // FPT is Floating-Point Type: float, double, long double or User-Defined.
 template<typename FPT>
@@ -73,7 +73,7 @@
     {
         return std::numeric_limits<FPT>::is_specialized
                     ? (std::numeric_limits<FPT>::max)()
-                    : static_cast<FPT>(1000000); // for the our purpuses it doesn't really matter what value is returned here
+                    : static_cast<FPT>(1000000); // for the our purposes it doesn't really matter what value is returned here
     }
 };
 
@@ -98,12 +98,28 @@
 
 //____________________________________________________________________________//
 
-} // namespace tt_detail
+} // namespace fpc_detail
 
 // ************************************************************************** //
 // **************         tolerance presentation types         ************** //
 // ************************************************************************** //
 
+template<typename ToleranceType>
+struct tolerance_traits {
+    template<typename FPT>
+    static ToleranceType    actual_tolerance( FPT fraction_tolerance )
+    {
+        return static_cast<ToleranceType>( fraction_tolerance );
+    } 
+    template<typename FPT>
+    static FPT              fraction_tolerance( ToleranceType tolerance )
+    {
+        return static_cast<FPT>(tolerance);
+    } 
+};
+
+//____________________________________________________________________________//
+
 template<typename FPT>
 struct percent_tolerance_t {
     explicit    percent_tolerance_t( FPT v ) : m_value( v ) {}
@@ -113,8 +129,25 @@
 
 //____________________________________________________________________________//
 
-template<typename Out,typename FPT>
-Out& operator<<( Out& out, percent_tolerance_t<FPT> t )
+template<typename FPT>
+struct tolerance_traits<percent_tolerance_t<FPT> > {
+    template<typename FPT2>
+    static percent_tolerance_t<FPT> actual_tolerance( FPT2 fraction_tolerance )
+    {
+        return percent_tolerance_t<FPT>( fraction_tolerance * static_cast<FPT2>(100.) );
+    }
+
+    template<typename FPT2>
+    static FPT2 fraction_tolerance( percent_tolerance_t<FPT> tolerance )
+    {
+        return static_cast<FPT2>(tolerance.m_value)*static_cast<FPT2>(0.01); 
+    }
+};
+
+//____________________________________________________________________________//
+
+template<typename FPT>
+std::ostream& operator<<( std::ostream& out, percent_tolerance_t<FPT> t )
 {
     return out << t.m_value;
 }
@@ -130,28 +163,70 @@
 
 //____________________________________________________________________________//
 
+// ************************************************************************** //
+// **************             close_at_tolerance               ************** //
+// ************************************************************************** //
+
 template<typename FPT>
-struct fraction_tolerance_t {
-    explicit fraction_tolerance_t( FPT v ) : m_value( v ) {}
+class close_at_tolerance {
+public:
+    // Public typedefs
+    typedef bool result_type;
 
-    FPT m_value;
-};
+    // Constructor
+    template<typename ToleranceType>
+    explicit    close_at_tolerance( ToleranceType tolerance, fpc::strength fpc_strength = FPC_STRONG ) 
+    : m_fraction_tolerance( tolerance_traits<ToleranceType>::template fraction_tolerance<FPT>( tolerance ) )
+    , m_strength( fpc_strength )
+    {
+        BOOST_ASSERT( m_fraction_tolerance >= 0 ); // no reason for tolerance to be negative
+    }
 
-//____________________________________________________________________________//
+    // Access methods
+    FPT                 fraction_tolerance() const  { return m_fraction_tolerance; }
+    fpc::strength       strength() const            { return m_strength; }
+    FPT                 failed_fraction() const     { return m_failed_fraction; }
 
-template<typename Out,typename FPT>
-Out& operator<<( Out& out, fraction_tolerance_t<FPT> t )
-{
-    return out << t.m_value;
-}
+    // Action method
+    bool                operator()( FPT left, FPT right ) const
+    {
+        FPT diff              = fpc_detail::fpt_abs( left - right );
+        FPT fraction_of_right = fpc_detail::safe_fpt_division( diff, fpc_detail::fpt_abs( right ) );
+        FPT fraction_of_left  = fpc_detail::safe_fpt_division( diff, fpc_detail::fpt_abs( left ) );
+        
+        bool res( m_strength == FPC_STRONG
+            ? (fraction_of_right <= m_fraction_tolerance && fraction_of_left <= m_fraction_tolerance) 
+            : (fraction_of_right <= m_fraction_tolerance || fraction_of_left <= m_fraction_tolerance) );
 
-//____________________________________________________________________________//
+        if( !res )
+            m_failed_fraction = (fraction_of_right > m_fraction_tolerance ? fraction_of_right : fraction_of_left);
 
-template<typename FPT>
-inline fraction_tolerance_t<FPT>
-fraction_tolerance( FPT v )
+        return res;
+    }
+
+private:
+    // Data members
+    FPT                 m_fraction_tolerance;
+    fpc::strength       m_strength;
+	mutable FPT         m_failed_fraction;
+};
+
+// ************************************************************************** //
+// **************                 is_close_to                  ************** //
+// ************************************************************************** //
+
+template<typename FPT1, typename FPT2, typename ToleranceType>
+bool
+is_close_to( FPT1 left, FPT2 right, ToleranceType tolerance )
 {
-    return fraction_tolerance_t<FPT>( v );
+    // deduce "better" type from types of arguments being compared
+    // if one type is floating and the second integral we use floating type and 
+    // value of integral type is promoted to the floating. The same for float and double
+    // But we don't want to compare two values of integral types using this tool.
+    typedef typename numeric::conversion_traits<FPT1,FPT2>::supertype FPT;
+    BOOST_STATIC_ASSERT( !is_integral<FPT>::value );
+
+    return fpc::close_at_tolerance<FPT>( tolerance, FPC_STRONG )( left, right );
 }
 
 //____________________________________________________________________________//
@@ -161,53 +236,49 @@
 // ************************************************************************** //
 
 template<typename FPT>
-class close_at_tolerance {
+class small_with_tolerance {
 public:
     // Public typedefs
     typedef bool result_type;
 
     // Constructor
-    template<typename ToleranceBaseType>
-    explicit    close_at_tolerance( percent_tolerance_t<ToleranceBaseType>  tolerance, 
-                                    floating_point_comparison_type          fpc_type = FPC_STRONG ) 
-    : p_fraction_tolerance( tt_detail::fpt_abs( static_cast<FPT>(0.01)*tolerance.m_value ) )
-    , p_strong_or_weak( fpc_type ==  FPC_STRONG )
-    , m_report_modifier( 100. )
-    {}
-    template<typename ToleranceBaseType>
-    explicit    close_at_tolerance( fraction_tolerance_t<ToleranceBaseType> tolerance, 
-                                    floating_point_comparison_type          fpc_type = FPC_STRONG ) 
-    : p_fraction_tolerance( tt_detail::fpt_abs( tolerance.m_value ) )
-    , p_strong_or_weak( fpc_type ==  FPC_STRONG )
-    , m_report_modifier( 1. )
-    {}
-
-    predicate_result        operator()( FPT left, FPT right ) const
-    {
-        FPT diff = tt_detail::fpt_abs( left - right );
-        FPT d1   = tt_detail::safe_fpt_division( diff, tt_detail::fpt_abs( right ) );
-        FPT d2   = tt_detail::safe_fpt_division( diff, tt_detail::fpt_abs( left ) );
-        
-        predicate_result res( p_strong_or_weak 
-            ? (d1 <= p_fraction_tolerance.get() && d2 <= p_fraction_tolerance.get()) 
-            : (d1 <= p_fraction_tolerance.get() || d2 <= p_fraction_tolerance.get()) );
-
-        if( !res )
-            res.message() << (( d1 <= p_fraction_tolerance.get() ? d2 : d1 ) * m_report_modifier);
+    explicit    small_with_tolerance( FPT tolerance ) 
+    : m_tolerance( tolerance )
+    {
+        BOOST_ASSERT( m_tolerance >= 0 ); // no reason for the tolerance to be negative
+    }
 
-        return res;
+    // Action method
+    bool        operator()( FPT fpv ) const
+    {
+        return fpc::fpc_detail::fpt_abs( fpv ) < m_tolerance;
     }
 
-    // Public properties
-    readonly_property<FPT>  p_fraction_tolerance;
-    readonly_property<bool> p_strong_or_weak;
 private:
     // Data members
-    FPT                     m_report_modifier;
+    FPT         m_tolerance;
 };
 
+// ************************************************************************** //
+// **************                  is_small                    ************** //
+// ************************************************************************** //
+
+template<typename FPT>
+bool
+is_small( FPT fpv, FPT tolerance )
+{
+    return small_with_tolerance<FPT>( tolerance )( fpv );
+}
+
 //____________________________________________________________________________//
 
+} // namespace fpc
+} // namespace math
+
+namespace test_tools {
+
+namespace fpc = math::fpc;
+
 // ************************************************************************** //
 // **************               check_is_close                 ************** //
 // ************************************************************************** //
@@ -216,34 +287,16 @@
     // Public typedefs
     typedef bool result_type;
 
-    template<typename FPT1, typename FPT2, typename ToleranceBaseType>
-    predicate_result
-    operator()( FPT1 left, FPT2 right, percent_tolerance_t<ToleranceBaseType> tolerance, 
-                floating_point_comparison_type fpc_type = FPC_STRONG ) const
-    {
-        // deduce "better" type from types of arguments being compared
-        // if one type is floating and the second integral we use floating type and 
-        // value of integral type is promoted to the floating. The same for float and double
-        // But we don't want to compare two values of integral types using this tool.
-        typedef typename numeric::conversion_traits<FPT1,FPT2>::supertype FPT;
-        BOOST_STATIC_ASSERT( !is_integral<FPT>::value );
-
-        close_at_tolerance<FPT> pred( tolerance, fpc_type );
-
-        return pred( left, right );
-    }
-    template<typename FPT1, typename FPT2, typename ToleranceBaseType>
+    template<typename FPT1, typename FPT2, typename ToleranceType>
     predicate_result
-    operator()( FPT1 left, FPT2 right, fraction_tolerance_t<ToleranceBaseType> tolerance, 
-                floating_point_comparison_type fpc_type = FPC_STRONG ) const
+    operator()( FPT1 left, FPT2 right, ToleranceType tolerance ) const
     {
-        // same as in a comment above
-        typedef typename numeric::conversion_traits<FPT1,FPT2>::supertype FPT;
-        BOOST_STATIC_ASSERT( !is_integral<FPT>::value );
+        predicate_result pr( fpc::is_close_to( left, right, tolerance ) );
 
-        close_at_tolerance<FPT> pred( tolerance, fpc_type );
+        if( !pr )
+            pr.message() << tolerance;
 
-        return pred( left, right );
+        return pr;
     }
 };
 
@@ -265,7 +318,7 @@
     bool
     operator()( FPT fpv, FPT tolerance ) const
     {
-        return tt_detail::fpt_abs( fpv ) < tt_detail::fpt_abs( tolerance );
+        return fpc::is_small( fpv, tolerance );
     }
 };
 
Modified: trunk/boost/test/framework.hpp
==============================================================================
--- trunk/boost/test/framework.hpp	(original)
+++ trunk/boost/test/framework.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/impl/compiler_log_formatter.ipp
==============================================================================
--- trunk/boost/test/impl/compiler_log_formatter.ipp	(original)
+++ trunk/boost/test/impl/compiler_log_formatter.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/impl/cpp_main.ipp
==============================================================================
--- trunk/boost/test/impl/cpp_main.ipp	(original)
+++ trunk/boost/test/impl/cpp_main.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  (C) Copyright Beman Dawes 1995-2001.
 //  Distributed under the Boost Software License, Version 1.0.
 //  (See accompanying file LICENSE_1_0.txt or copy at 
Modified: trunk/boost/test/impl/debug.ipp
==============================================================================
--- trunk/boost/test/impl/debug.ipp	(original)
+++ trunk/boost/test/impl/debug.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2006-2008.
+//  (C) Copyright Gennadiy Rozental 2006-2010.
 //  Use, modification, and distribution are subject to the
 //  Boost Software License, Version 1.0. (See accompanying file
 //  http://www.boost.org/LICENSE_1_0.txt)
Modified: trunk/boost/test/impl/exception_safety.ipp
==============================================================================
--- trunk/boost/test/impl/exception_safety.ipp	(original)
+++ trunk/boost/test/impl/exception_safety.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to the
 //  Boost Software License, Version 1.0. (See accompanying file
 //  http://www.boost.org/LICENSE_1_0.txt)
Modified: trunk/boost/test/impl/execution_monitor.ipp
==============================================================================
--- trunk/boost/test/impl/execution_monitor.ipp	(original)
+++ trunk/boost/test/impl/execution_monitor.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  (C) Copyright Beman Dawes and Ullrich Koethe 1995-2001.
 //  Use, modification, and distribution are subject to the
 //  Boost Software License, Version 1.0. (See accompanying file
@@ -64,12 +64,7 @@
 #  include <stdio.h> 
 #endif
 
-#if defined(_WIN32) && !defined(BOOST_DISABLE_WIN32) &&                  \
-    (!defined(__COMO__) && !defined(__MWERKS__) && !defined(__GNUC__) || \
-     BOOST_WORKAROUND(__MWERKS__, >= 0x3000))
-
-#  define BOOST_SEH_BASED_SIGNAL_HANDLING
-
+#ifdef BOOST_SEH_BASED_SIGNAL_HANDLING
 #  include <windows.h>
 
 #  if defined(__MWERKS__) || (defined(_MSC_VER) && !defined(UNDER_CE))
@@ -88,33 +83,6 @@
 typedef void* uintptr_t;
 #  endif
 
-// for the FP control routines
-#include <float.h>
-
-#ifndef EM_INVALID
-#define EM_INVALID _EM_INVALID
-#endif
-
-#ifndef EM_DENORMAL
-#define EM_DENORMAL _EM_DENORMAL
-#endif
-
-#ifndef EM_ZERODIVIDE
-#define EM_ZERODIVIDE _EM_ZERODIVIDE
-#endif
-
-#ifndef EM_OVERFLOW
-#define EM_OVERFLOW _EM_OVERFLOW
-#endif
-
-#ifndef EM_UNDERFLOW
-#define EM_UNDERFLOW _EM_UNDERFLOW
-#endif
-
-#ifndef MCW_EM
-#define MCW_EM _MCW_EM
-#endif
-
 #  if !defined(NDEBUG) && defined(_MSC_VER) && !defined(UNDER_CE)
 #    include <crtdbg.h>
 #    define BOOST_TEST_CRT_HOOK_TYPE    _CRT_REPORT_HOOK
@@ -282,6 +250,27 @@
 
 //____________________________________________________________________________//
 
+struct fpe_except_guard {
+    explicit fpe_except_guard( unsigned detect_fpe )
+	: m_detect_fpe( detect_fpe )
+    {
+        // prepare fp exceptions control
+        m_previosly_enabled = fpe::disable( fpe::BOOST_FPE_ALL );
+		if( m_previosly_enabled != fpe::BOOST_FPE_INV && detect_fpe != fpe::BOOST_FPE_OFF )
+            fpe::enable( detect_fpe );
+    }
+    ~fpe_except_guard()
+    {
+        if( m_detect_fpe != fpe::BOOST_FPE_OFF )
+            fpe::disable( m_detect_fpe );
+		if( m_previosly_enabled != fpe::BOOST_FPE_INV )
+			fpe::enable( m_previosly_enabled );
+    }
+
+    unsigned m_detect_fpe;
+    unsigned m_previosly_enabled;
+};
+
 } // namespace detail
 
 #if defined(BOOST_SIGACTION_BASED_SIGNAL_HANDLING)
@@ -504,48 +493,6 @@
         }
         break;
 
-    case SIGCHLD:
-        switch( m_sig_info->si_code ) {
-#ifndef BOOST_TEST_LIMITED_SIGNAL_DETAILS
-        case CLD_EXITED:
-            report_error( execution_exception::system_error,
-                          "child has exited; pid: %d; uid: %d; exit value: %d",
-                          (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
-            break;
-        case CLD_KILLED:
-            report_error( execution_exception::system_error,
-                          "child was killed; pid: %d; uid: %d; exit value: %d",
-                          (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
-            break;
-        case CLD_DUMPED:
-            report_error( execution_exception::system_error,
-                          "child terminated abnormally; pid: %d; uid: %d; exit value: %d",
-                          (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
-            break;
-        case CLD_TRAPPED:
-            report_error( execution_exception::system_error,
-                          "traced child has trapped; pid: %d; uid: %d; exit value: %d",
-                          (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
-            break;
-        case CLD_STOPPED:
-            report_error( execution_exception::system_error,
-                          "child has stopped; pid: %d; uid: %d; exit value: %d",
-                          (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
-            break;
-        case CLD_CONTINUED:
-            report_error( execution_exception::system_error,
-                          "stopped child had continued; pid: %d; uid: %d; exit value: %d",
-                          (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
-            break;
-#endif
-        default:
-            report_error( execution_exception::system_error,
-                          "signal: SIGCHLD, si_code: %d (child process has terminated; pid: %d; uid: %d; exit value: %d)",
-                          (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status, m_sig_info->si_code );
-            break;
-        }
-        break;
-
 #if defined(BOOST_TEST_CATCH_SIGPOLL)
 
     case SIGPOLL:
@@ -691,7 +638,7 @@
 class signal_handler {
 public:
     // Constructor
-    explicit signal_handler( bool catch_system_errors, int timeout, bool attach_dbg, char* alt_stack );
+    explicit signal_handler( bool catch_system_errors, bool detect_fpe, int timeout, bool attach_dbg, char* alt_stack );
 
     // Destructor
     ~signal_handler();
@@ -716,6 +663,7 @@
     signal_handler*         m_prev_handler;
     int                     m_timeout;
 
+    // Note: We intentionality do not catch SIGCHLD. Users have to deal with it themselves
     signal_action           m_ILL_action;
     signal_action           m_FPE_action;
     signal_action           m_SEGV_action;
@@ -737,11 +685,11 @@
 
 //____________________________________________________________________________//
 
-signal_handler::signal_handler( bool catch_system_errors, int timeout, bool attach_dbg, char* alt_stack )
+signal_handler::signal_handler( bool catch_system_errors, bool detect_fpe, int timeout, bool attach_dbg, char* alt_stack )
 : m_prev_handler( s_active_handler )
 , m_timeout( timeout )
 , m_ILL_action ( SIGILL , catch_system_errors, attach_dbg, alt_stack )
-, m_FPE_action ( SIGFPE , catch_system_errors, attach_dbg, alt_stack )
+, m_FPE_action ( SIGFPE , detect_fpe         , attach_dbg, alt_stack )
 , m_SEGV_action( SIGSEGV, catch_system_errors, attach_dbg, alt_stack )
 , m_BUS_action ( SIGBUS , catch_system_errors, attach_dbg, alt_stack )
 #ifdef BOOST_TEST_CATCH_SIGPOLL
@@ -853,7 +801,10 @@
     p_use_alt_stack.value = false;
 #endif
 
-    signal_handler local_signal_handler( p_catch_system_errors, p_timeout, p_auto_start_dbg, 
+    signal_handler local_signal_handler( p_catch_system_errors, 
+                                         p_catch_system_errors || (p_detect_fp_exceptions != fpe::BOOST_FPE_OFF),
+                                         p_timeout, 
+                                         p_auto_start_dbg, 
                                          !p_use_alt_stack ? 0 : m_alt_stack.get() );
 
     if( !sigsetjmp( signal_handler::jump_buffer(), 1 ) )
@@ -902,11 +853,15 @@
     bool                m_dir;
 };
 
+//____________________________________________________________________________//
+
+#if BOOST_WORKAROUND( BOOST_MSVC, <= 1310)
 static void
 seh_catch_preventer( unsigned int /* id */, _EXCEPTION_POINTERS* /* exps */ )
 {
     throw;
 }
+#endif
 
 //____________________________________________________________________________//
 
@@ -915,13 +870,36 @@
 {
     const unsigned int MSFT_CPP_EXCEPT = 0xE06d7363; // EMSC
 
-    if( !m_em->p_catch_system_errors || (id == MSFT_CPP_EXCEPT) )
+    // C++ exception - allow to go through
+    if( id == MSFT_CPP_EXCEPT )
         return EXCEPTION_CONTINUE_SEARCH;
 
+    // FPE detection is enabled, while system exception detection is not - check if this is actually FPE
+    if( !m_em->p_catch_system_errors ) {
+        if( !m_em->p_detect_fp_exceptions )
+            return EXCEPTION_CONTINUE_SEARCH;
+
+        switch( id ) {
+        case EXCEPTION_FLT_DIVIDE_BY_ZERO:
+        case EXCEPTION_FLT_STACK_CHECK:
+        case EXCEPTION_FLT_DENORMAL_OPERAND:
+        case EXCEPTION_FLT_INEXACT_RESULT:
+        case EXCEPTION_FLT_OVERFLOW:
+        case EXCEPTION_FLT_UNDERFLOW:
+        case EXCEPTION_FLT_INVALID_OPERATION:
+        case STATUS_FLOAT_MULTIPLE_FAULTS:
+        case STATUS_FLOAT_MULTIPLE_TRAPS:
+            break;
+        default:
+            return EXCEPTION_CONTINUE_SEARCH;
+        }
+    }
+
     if( !!m_em->p_auto_start_dbg && debug::attach_debugger( false ) ) {
         m_em->p_catch_system_errors.value = false;
+#if BOOST_WORKAROUND( BOOST_MSVC, <= 1310)
         _set_se_translator( &seh_catch_preventer );
-
+#endif
         return EXCEPTION_CONTINUE_EXECUTION;
     }
 
@@ -1006,12 +984,10 @@
                               "operand of floating point operation is denormal" );
         break;
 
-# if 0 // !! ?? 
     case EXCEPTION_FLT_INEXACT_RESULT:
         detail::report_error( execution_exception::system_error,
                               "result of a floating-point operation cannot be represented exactly" );
         break;
-#endif
 
     case EXCEPTION_FLT_OVERFLOW:
         detail::report_error( execution_exception::system_error,
@@ -1027,6 +1003,14 @@
         detail::report_error( execution_exception::system_error, "floating point error" );
         break;
 
+    case STATUS_FLOAT_MULTIPLE_FAULTS:
+        detail::report_error( execution_exception::system_error, "multiple floating point errors" );
+        break;
+
+    case STATUS_FLOAT_MULTIPLE_TRAPS:
+        detail::report_error( execution_exception::system_error, "multiple floating point errors" );
+        break;
+
     case EXCEPTION_BREAKPOINT:
         detail::report_error( execution_exception::system_error, "breakpoint encountered" );
         break;
@@ -1075,30 +1059,6 @@
 
 //____________________________________________________________________________//
 
-void BOOST_TEST_CALL_DECL
-switch_fp_exceptions( bool on_off )
-{
-    if( !on_off )
-        _clearfp();
-
-    int cw = ::_controlfp( 0, 0 );
-
-    int exceptions_mask = EM_INVALID|EM_DENORMAL|EM_ZERODIVIDE|EM_OVERFLOW|EM_UNDERFLOW;
-
-    if( on_off )
-        cw &= ~exceptions_mask; // Set the exception masks on, turn exceptions off
-    else
-        cw |= exceptions_mask;  // Set the exception masks off, turn exceptions on
-
-    if( on_off )
-        _clearfp();
-        
-    // Set the control word
-    ::_controlfp( cw, MCW_EM );
-}
-
-//____________________________________________________________________________//
-
 } // namespace detail
 
 // ************************************************************************** //
@@ -1111,42 +1071,34 @@
     _invalid_parameter_handler old_iph = _invalid_parameter_handler();
     BOOST_TEST_CRT_HOOK_TYPE old_crt_hook = 0;
 
-    if( !p_catch_system_errors )
-        _set_se_translator( &detail::seh_catch_preventer );
-    else {
-        if( !!p_detect_fp_exceptions )
-            detail::switch_fp_exceptions( true );
+    if( p_catch_system_errors ) {
+        old_crt_hook = BOOST_TEST_CRT_SET_HOOK( &detail::assert_reporting_function );
 
-       old_crt_hook = BOOST_TEST_CRT_SET_HOOK( &detail::assert_reporting_function );
-
-       old_iph = _set_invalid_parameter_handler( 
-           reinterpret_cast<_invalid_parameter_handler>( &detail::invalid_param_handler ) );
+        old_iph = _set_invalid_parameter_handler( 
+            reinterpret_cast<_invalid_parameter_handler>( &detail::invalid_param_handler ) );
+    } else if( !p_detect_fp_exceptions ) {
+#if BOOST_WORKAROUND( BOOST_MSVC, <= 1310)
+        _set_se_translator( &seh_catch_preventer );
+#endif
     }
 
     detail::system_signal_exception SSE( this );
     
-    int ret_val = 0;
-
     __try {
         __try {
-            ret_val = detail::do_invoke( m_custom_translators, F );
+            return detail::do_invoke( m_custom_translators, F );
         }
         __except( SSE( GetExceptionCode(), GetExceptionInformation() ) ) {
             throw SSE;
         }
     }
     __finally {
-        if( !!p_catch_system_errors ) {
-            if( !!p_detect_fp_exceptions )
-                detail::switch_fp_exceptions( false );
-
+        if( p_catch_system_errors ) {
             BOOST_TEST_CRT_SET_HOOK( old_crt_hook );
 
            _set_invalid_parameter_handler( old_iph );
         }
     }
-
-    return ret_val;
 }
 
 //____________________________________________________________________________//
@@ -1173,9 +1125,19 @@
 #endif  // choose signal handler
 
 // ************************************************************************** //
-// **************          execution_monitor::execute          ************** //
+// **************              execution_monitor               ************** //
 // ************************************************************************** //
 
+execution_monitor::execution_monitor()
+: p_catch_system_errors( true )
+, p_auto_start_dbg( false )
+, p_timeout( 0 )
+, p_use_alt_stack( true )
+, p_detect_fp_exceptions( fpe::BOOST_FPE_OFF )
+{}
+
+//____________________________________________________________________________//
+
 int
 execution_monitor::execute( unit_test::callback0<int> const& F )
 {
@@ -1183,6 +1145,9 @@
         p_catch_system_errors.value = false;
 
     try {
+        detail::fpe_except_guard G( p_detect_fp_exceptions );
+        unit_test::ut_detail::ignore_unused_variable_warning( G );
+
         return catch_signals( F );
     }
 
@@ -1334,6 +1299,68 @@
 
 //____________________________________________________________________________//
 
+// ************************************************************************** //
+// **************Floating point exception management interface ************** //
+// ************************************************************************** //
+
+namespace fpe {
+
+unsigned
+enable( unsigned mask )
+{
+#ifdef BOOST_SEH_BASED_SIGNAL_HANDLING
+    _clearfp();
+
+    unsigned old_cw;
+    if( ::_controlfp_s( &old_cw, 0, 0 ) != 0 )
+		return BOOST_FPE_INV;
+
+    // Set the control word
+    if( ::_controlfp_s( 0, old_cw & ~mask, BOOST_FPE_ALL ) != 0 )
+		return BOOST_FPE_INV;
+
+	return ~old_cw & BOOST_FPE_ALL;
+#elif defined(__CYGWIN__)
+    /* Not Implemented in cygwin */
+    return 0;
+#else
+    ::feclearexcept(BOOST_FPE_ALL);
+	int res = ::feenableexcept( mask );
+	return res == -1 ? BOOST_FPE_INV : (unsigned)res;
+#endif
+}
+
+//____________________________________________________________________________//
+
+unsigned
+disable( unsigned mask )
+{
+#ifdef BOOST_SEH_BASED_SIGNAL_HANDLING
+    _clearfp();
+
+    unsigned old_cw;
+    if( ::_controlfp_s( &old_cw, 0, 0 ) != 0 )
+		return BOOST_FPE_INV;
+
+    // Set the control word
+    if( ::_controlfp_s( 0, old_cw | mask, BOOST_FPE_ALL ) != 0 )
+		return BOOST_FPE_INV;
+
+    return ~old_cw & BOOST_FPE_ALL;
+#elif defined(__CYGWIN__)
+    /* Not Implemented in cygwin */
+    return BOOST_FPE_INV;
+#else
+    ::feclearexcept(BOOST_FPE_ALL);
+	int res = ::fedisableexcept( mask );
+	return res == -1 ? BOOST_FPE_INV : (unsigned)res;
+#endif
+}
+
+//____________________________________________________________________________//
+
+} // namespace fpe
+
 } // namespace boost
 
 #include <boost/test/detail/enable_warnings.hpp>
Modified: trunk/boost/test/impl/framework.ipp
==============================================================================
--- trunk/boost/test/impl/framework.ipp	(original)
+++ trunk/boost/test/impl/framework.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/impl/interaction_based.ipp
==============================================================================
--- trunk/boost/test/impl/interaction_based.ipp	(original)
+++ trunk/boost/test/impl/interaction_based.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to the
 //  Boost Software License, Version 1.0. (See accompanying file
 //  http://www.boost.org/LICENSE_1_0.txt)
Modified: trunk/boost/test/impl/logged_expectations.ipp
==============================================================================
--- trunk/boost/test/impl/logged_expectations.ipp	(original)
+++ trunk/boost/test/impl/logged_expectations.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to the
 //  Boost Software License, ELOG_VER 1.0. (See accompanying file
 //  http://www.boost.org/LICENSE_1_0.txt)
Modified: trunk/boost/test/impl/plain_report_formatter.ipp
==============================================================================
--- trunk/boost/test/impl/plain_report_formatter.ipp	(original)
+++ trunk/boost/test/impl/plain_report_formatter.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/impl/progress_monitor.ipp
==============================================================================
--- trunk/boost/test/impl/progress_monitor.ipp	(original)
+++ trunk/boost/test/impl/progress_monitor.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/impl/results_collector.ipp
==============================================================================
--- trunk/boost/test/impl/results_collector.ipp	(original)
+++ trunk/boost/test/impl/results_collector.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/impl/results_reporter.ipp
==============================================================================
--- trunk/boost/test/impl/results_reporter.ipp	(original)
+++ trunk/boost/test/impl/results_reporter.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/impl/test_main.ipp
==============================================================================
--- trunk/boost/test/impl/test_main.ipp	(original)
+++ trunk/boost/test/impl/test_main.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  (C) Copyright Beman Dawes 1995-2001.
 //  Distributed under the Boost Software License, Version 1.0.
 //  (See accompanying file LICENSE_1_0.txt or copy at
Modified: trunk/boost/test/impl/test_tools.ipp
==============================================================================
--- trunk/boost/test/impl/test_tools.ipp	(original)
+++ trunk/boost/test/impl/test_tools.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/impl/unit_test_log.ipp
==============================================================================
--- trunk/boost/test/impl/unit_test_log.ipp	(original)
+++ trunk/boost/test/impl/unit_test_log.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/impl/unit_test_main.ipp
==============================================================================
--- trunk/boost/test/impl/unit_test_main.ipp	(original)
+++ trunk/boost/test/impl/unit_test_main.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/impl/unit_test_monitor.ipp
==============================================================================
--- trunk/boost/test/impl/unit_test_monitor.ipp	(original)
+++ trunk/boost/test/impl/unit_test_monitor.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/impl/unit_test_parameters.ipp
==============================================================================
--- trunk/boost/test/impl/unit_test_parameters.ipp	(original)
+++ trunk/boost/test/impl/unit_test_parameters.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/impl/unit_test_suite.ipp
==============================================================================
--- trunk/boost/test/impl/unit_test_suite.ipp	(original)
+++ trunk/boost/test/impl/unit_test_suite.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/impl/xml_log_formatter.ipp
==============================================================================
--- trunk/boost/test/impl/xml_log_formatter.ipp	(original)
+++ trunk/boost/test/impl/xml_log_formatter.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/impl/xml_report_formatter.ipp
==============================================================================
--- trunk/boost/test/impl/xml_report_formatter.ipp	(original)
+++ trunk/boost/test/impl/xml_report_formatter.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Added: trunk/boost/test/included/execution_monitor.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/test/included/execution_monitor.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -0,0 +1,21 @@
+//  (C) Copyright Gennadiy Rozental 2010.
+//  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/test for the library home page.
+//
+//  File        : $RCSfile$
+//
+//  Version     : $Revision$
+//
+//  Description : included variant of Execution Monitor to be used independently
+// ***************************************************************************
+
+#ifndef BOOST_INCLUDED_EXECUTION_MONITOR_HPP_051410GER
+#define BOOST_INCLUDED_EXECUTION_MONITOR_HPP_051410GER
+
+#include <boost/test/impl/execution_monitor.ipp>
+#include <boost/test/impl/debug.ipp>
+
+#endif // BOOST_INCLUDED_EXECUTION_MONITOR_HPP_051410GER
Modified: trunk/boost/test/included/prg_exec_monitor.hpp
==============================================================================
--- trunk/boost/test/included/prg_exec_monitor.hpp	(original)
+++ trunk/boost/test/included/prg_exec_monitor.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/included/test_exec_monitor.hpp
==============================================================================
--- trunk/boost/test/included/test_exec_monitor.hpp	(original)
+++ trunk/boost/test/included/test_exec_monitor.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/included/unit_test.hpp
==============================================================================
--- trunk/boost/test/included/unit_test.hpp	(original)
+++ trunk/boost/test/included/unit_test.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/interaction_based.hpp
==============================================================================
--- trunk/boost/test/interaction_based.hpp	(original)
+++ trunk/boost/test/interaction_based.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/logged_expectations.hpp
==============================================================================
--- trunk/boost/test/logged_expectations.hpp	(original)
+++ trunk/boost/test/logged_expectations.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/minimal.hpp
==============================================================================
--- trunk/boost/test/minimal.hpp	(original)
+++ trunk/boost/test/minimal.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2002-2008.
+//  (C) Copyright Gennadiy Rozental 2002-2010.
 //  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)
Modified: trunk/boost/test/mock_object.hpp
==============================================================================
--- trunk/boost/test/mock_object.hpp	(original)
+++ trunk/boost/test/mock_object.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/output/compiler_log_formatter.hpp
==============================================================================
--- trunk/boost/test/output/compiler_log_formatter.hpp	(original)
+++ trunk/boost/test/output/compiler_log_formatter.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/output/plain_report_formatter.hpp
==============================================================================
--- trunk/boost/test/output/plain_report_formatter.hpp	(original)
+++ trunk/boost/test/output/plain_report_formatter.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/output/xml_log_formatter.hpp
==============================================================================
--- trunk/boost/test/output/xml_log_formatter.hpp	(original)
+++ trunk/boost/test/output/xml_log_formatter.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/output/xml_report_formatter.hpp
==============================================================================
--- trunk/boost/test/output/xml_report_formatter.hpp	(original)
+++ trunk/boost/test/output/xml_report_formatter.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/output_test_stream.hpp
==============================================================================
--- trunk/boost/test/output_test_stream.hpp	(original)
+++ trunk/boost/test/output_test_stream.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/parameterized_test.hpp
==============================================================================
--- trunk/boost/test/parameterized_test.hpp	(original)
+++ trunk/boost/test/parameterized_test.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/predicate_result.hpp
==============================================================================
--- trunk/boost/test/predicate_result.hpp	(original)
+++ trunk/boost/test/predicate_result.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/prg_exec_monitor.hpp
==============================================================================
--- trunk/boost/test/prg_exec_monitor.hpp	(original)
+++ trunk/boost/test/prg_exec_monitor.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Added: trunk/boost/test/prod_tools.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/test/prod_tools.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -0,0 +1,209 @@
+//  (C) Copyright Gennadiy Rozental 2009-2010.
+//  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/test for the library home page.
+//
+//  File        : $RCSfile$
+//
+//  Version     : $Revision$
+//
+//  Description : contains implementation of test tools usable in production
+// ***************************************************************************
+
+#ifndef BOOST_TEST_PROD_TOOLS_HPP_122109GER
+#define BOOST_TEST_PROD_TOOLS_HPP_122109GER
+
+// Boost.Test
+#define BOOST_TEST_PROD
+#include <boost/test/test_tools.hpp>
+
+// Boost
+#include <boost/throw_exception.hpp>
+#include <boost/assert.hpp>
+
+#include <boost/test/detail/suppress_warnings.hpp>
+
+//____________________________________________________________________________//
+
+// ************************************************************************** //
+// **************                    TOOL BOX                  ************** //
+// ************************************************************************** //
+
+//____________________________________________________________________________//
+
+#ifndef BOOST_TEST_TOOL_REPORT_WARN_FAILURE
+#define BOOST_TEST_TOOL_REPORT_WARN_FAILURE( failure_descr ) 
+#endif
+
+//____________________________________________________________________________//
+
+#ifndef BOOST_TEST_TOOL_REPORT_CHECK_FAILURE
+#define BOOST_TEST_TOOL_REPORT_CHECK_FAILURE( failure_descr ) \
+    BOOST_THROW_EXCEPTION( std::runtime_error( failure_descr ) )
+#endif
+
+//____________________________________________________________________________//
+
+#ifndef BOOST_TEST_TOOL_REPORT_REQUIRE_FAILURE
+#define BOOST_TEST_TOOL_REPORT_REQUIRE_FAILURE( failure_descr ) \
+    BOOST_ASSERT( false )
+#endif
+
+//____________________________________________________________________________//
+
+#ifndef BOOST_TEST_TOOL_REPORT_FORMAT
+
+#define BOOST_TEST_TOOL_REPORT_ARG( r, _, arg ) , arg, BOOST_STRINGIZE( arg )
+#define BOOST_TEST_TOOL_REPORT_ARG_DESCR( r, _, arg ) , BOOST_STRINGIZE( arg )
+
+#define BOOST_TEST_TOOL_REPORT_ARGS1(ARGS) \
+    BOOST_PP_SEQ_SIZE(ARGS) BOOST_PP_SEQ_FOR_EACH( BOOST_TEST_TOOL_REPORT_ARG_DESCR, _, ARGS )
+#define BOOST_TEST_TOOL_REPORT_ARGS2(ARGS) 0
+
+#define BOOST_TEST_TOOL_REPORT_FORMAT( frwd_type, pred_res, assertion_descr, CT, ARGS )     \
+    ::boost::test_tools::tt_detail::prod_report_format( pred_res,                           \
+        ::boost::unit_test::lazy_ostream::instance() << assertion_descr,                    \
+        ::boost::test_tools::tt_detail::CT,                                                 \
+        BOOST_JOIN( BOOST_TEST_TOOL_REPORT_ARGS, frwd_type )( ARGS ) )                      \
+/**/
+
+#endif
+
+//____________________________________________________________________________//
+
+// 0 - args exists and need to be forwarded; call prod_check_frwd
+#define BOOST_TEST_TOOL_IMPL0( P, assertion_descr, TL, CT, ARGS )                           \
+    if( BOOST_TEST_TOOL_PRED_HOLDER( P, assertion_descr, CT, ARGS ) )                       \
+        ((void)0);                                                                          \
+    else BOOST_JOIN( BOOST_JOIN( BOOST_TEST_TOOL_REPORT_, TL), _FAILURE)(                   \
+        PH.failure_descr() )                                                                \
+/**/
+
+//____________________________________________________________________________//
+
+// 1 - args exists, but do not need to be forwarded
+#define BOOST_TEST_TOOL_IMPL1( P, assertion_descr, TL, CT, ARGS )                           \
+    if( ::boost::test_tools::predicate_result const& pr = P BOOST_PP_SEQ_TO_TUPLE( ARGS ) ) \
+        ((void)0);                                                                          \
+    else BOOST_JOIN( BOOST_JOIN( BOOST_TEST_TOOL_REPORT_, TL), _FAILURE)(                   \
+            BOOST_TEST_TOOL_REPORT_FORMAT( 1, pr, assertion_descr, CT, ARGS ) )             \
+/**/
+
+//____________________________________________________________________________//
+
+// 2 - assertion with no arguments; 
+#define BOOST_TEST_TOOL_IMPL2( P, assertion_descr, TL, CT, _ )                              \
+    if( ::boost::test_tools::predicate_result const& pr = P )                               \
+        ((void)0);                                                                          \
+    else BOOST_JOIN( BOOST_JOIN( BOOST_TEST_TOOL_REPORT_, TL), _FAILURE)(                   \
+            BOOST_TEST_TOOL_REPORT_FORMAT( 2, pr, assertion_descr, CT, _ ) )                \
+/**/
+
+//____________________________________________________________________________//
+
+#define BOOST_TEST_TOOL_IMPL( frwd_type, P, check_descr, TL, CT, ARGS ) \
+    BOOST_JOIN( BOOST_TEST_TOOL_IMPL, frwd_type )( P, check_descr, TL, CT, ARGS )
+
+//____________________________________________________________________________//
+
+namespace boost {
+
+namespace test_tools {
+
+namespace tt_detail {
+
+// ************************************************************************** //
+// **************               prod_report_format             ************** //
+// ************************************************************************** //
+
+BOOST_TEST_DECL std::string 
+prod_report_format( predicate_result const& pr, 
+                    unit_test::lazy_ostream const& assertion_descr, 
+                    check_type ct, std::size_t num_args, ... );
+
+//____________________________________________________________________________//
+
+// ************************************************************************** //
+// **************                predicate_holder              ************** //
+// ************************************************************************** //
+
+#define BOOST_TEST_TOOL_PASS_ARG( r, _, arg ) , arg, BOOST_STRINGIZE( arg )
+
+#define BOOST_TEST_TOOL_PRED_HOLDER( P, assertion_descr, CT, ARGS )                 \
+::boost::test_tools::tt_detail::predicate_holder const& PH =                        \
+::boost::test_tools::tt_detail::predicate_holder( P, assertion_descr,               \
+    ::boost::test_tools::tt_detail::CT                                              \
+    BOOST_PP_SEQ_FOR_EACH( BOOST_TEST_TOOL_PASS_ARG, _, ARGS ) )                    \
+/**/
+
+#define TEMPL_PARAMS( z, m, dummy ) , typename BOOST_JOIN( Arg, m )
+
+#define FUNC_PARAMS( z, m, dummy )                                                  \
+ , BOOST_JOIN( Arg, m ) const& BOOST_JOIN( arg, m )                                 \
+ , char const* BOOST_JOIN( BOOST_JOIN( arg, m ), _descr )                           \
+/**/
+
+#define PRED_PARAMS( z, m, dummy ) BOOST_PP_COMMA_IF( m ) BOOST_JOIN( arg, m ) 
+
+#define ARG_INFO( z, m, dummy )                                                     \
+ , BOOST_JOIN( BOOST_JOIN( arg, m ), _descr )                                       \
+ , &static_cast<const unit_test::lazy_ostream&>(unit_test::lazy_ostream::instance() \
+        << ::boost::test_tools::tt_detail::print_helper( BOOST_JOIN( arg, m ) ))    \
+/**/
+
+#define CONSTRUCTOR_IMPL( z, n, dummy )                                             \
+template<typename Pred                                                              \
+         BOOST_PP_REPEAT_ ## z( BOOST_PP_ADD( n, 1 ), TEMPL_PARAMS, _ )>            \
+predicate_holder( Pred P, char const* assertion_descr, check_type ct                \
+                  BOOST_PP_REPEAT_ ## z( BOOST_PP_ADD( n, 1 ), FUNC_PARAMS, _ ) )   \
+: m_failure_descr( 0 )                                                              \
+{                                                                                   \
+    predicate_result const& pr =                                                    \
+        P( BOOST_PP_REPEAT_ ## z( BOOST_PP_ADD( n, 1 ), PRED_PARAMS, _ ) );         \
+    if( pr ) return;                                                                \
+                                                                                    \
+    m_failure_descr = new std::string;                                              \
+    *m_failure_descr = prod_report_format( pr,                                      \
+        ::boost::unit_test::lazy_ostream::instance() << assertion_descr,            \
+        ct,                                                                         \
+        BOOST_PP_ADD( n, 1 )                                                        \
+        BOOST_PP_REPEAT_ ## z( BOOST_PP_ADD( n, 1 ), ARG_INFO, _ ) );               \
+}                                                                                   \
+/**/
+
+#ifndef BOOST_TEST_MAX_PREDICATE_ARITY
+#define BOOST_TEST_MAX_PREDICATE_ARITY 5
+#endif
+
+struct predicate_holder {
+    BOOST_PP_REPEAT( BOOST_TEST_MAX_PREDICATE_ARITY, CONSTRUCTOR_IMPL, _ )
+
+    ~predicate_holder()                         { if( m_failure_descr ) delete m_failure_descr; }
+    std::string const&  failure_descr() const   { return *m_failure_descr; }
+    operator            bool() const            { return !m_failure_descr; }
+private:
+    // Data members
+    std::string*        m_failure_descr;
+};
+
+#undef TEMPL_PARAMS
+#undef FUNC_PARAMS
+#undef PRED_INFO
+#undef ARG_INFO
+#undef CONSTRUCTOR_IMPL
+
+//____________________________________________________________________________//
+
+} // namespace tt_detail
+
+} // namespace test_tools
+
+} // namespace boost
+
+//____________________________________________________________________________//
+
+#include <boost/test/detail/enable_warnings.hpp>
+
+#endif // BOOST_TEST_PROD_TOOLS_HPP_122109GER
Modified: trunk/boost/test/progress_monitor.hpp
==============================================================================
--- trunk/boost/test/progress_monitor.hpp	(original)
+++ trunk/boost/test/progress_monitor.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/results_collector.hpp
==============================================================================
--- trunk/boost/test/results_collector.hpp	(original)
+++ trunk/boost/test/results_collector.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/results_reporter.hpp
==============================================================================
--- trunk/boost/test/results_reporter.hpp	(original)
+++ trunk/boost/test/results_reporter.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/test_case_template.hpp
==============================================================================
--- trunk/boost/test/test_case_template.hpp	(original)
+++ trunk/boost/test/test_case_template.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2003-2008.
+//  (C) Copyright Gennadiy Rozental 2003-2010.
 //  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)
Modified: trunk/boost/test/test_exec_monitor.hpp
==============================================================================
--- trunk/boost/test/test_exec_monitor.hpp	(original)
+++ trunk/boost/test/test_exec_monitor.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/test_observer.hpp
==============================================================================
--- trunk/boost/test/test_observer.hpp	(original)
+++ trunk/boost/test/test_observer.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/test_tools.hpp
==============================================================================
--- trunk/boost/test/test_tools.hpp	(original)
+++ trunk/boost/test/test_tools.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
@@ -230,20 +230,20 @@
 //____________________________________________________________________________//
 
 #define BOOST_WARN_CLOSE( L, R, T )         BOOST_TEST_TOOL_IMPL( 0, \
-    ::boost::test_tools::check_is_close, "", WARN, CHECK_CLOSE, (L)(R)(::boost::test_tools::percent_tolerance(T)) )
+    ::boost::test_tools::check_is_close, "", WARN, CHECK_CLOSE, (L)(R)(::boost::math::fpc::percent_tolerance(T)) )
 #define BOOST_CHECK_CLOSE( L, R, T )        BOOST_TEST_TOOL_IMPL( 0, \
-    ::boost::test_tools::check_is_close, "", CHECK, CHECK_CLOSE, (L)(R)(::boost::test_tools::percent_tolerance(T)) )
+    ::boost::test_tools::check_is_close, "", CHECK, CHECK_CLOSE, (L)(R)(::boost::math::fpc::percent_tolerance(T)) )
 #define BOOST_REQUIRE_CLOSE( L, R, T )      BOOST_TEST_TOOL_IMPL( 0, \
-    ::boost::test_tools::check_is_close, "", REQUIRE, CHECK_CLOSE, (L)(R)(::boost::test_tools::percent_tolerance(T)) )
+    ::boost::test_tools::check_is_close, "", REQUIRE, CHECK_CLOSE, (L)(R)(::boost::math::fpc::percent_tolerance(T)) )
 
 //____________________________________________________________________________//
 
 #define BOOST_WARN_CLOSE_FRACTION(L, R, T)  BOOST_TEST_TOOL_IMPL( 0, \
-    ::boost::test_tools::check_is_close, "", WARN, CHECK_CLOSE_FRACTION, (L)(R)(::boost::test_tools::fraction_tolerance(T)) )
+    ::boost::test_tools::check_is_close, "", WARN, CHECK_CLOSE_FRACTION, (L)(R)(T) )
 #define BOOST_CHECK_CLOSE_FRACTION(L, R, T) BOOST_TEST_TOOL_IMPL( 0, \
-    ::boost::test_tools::check_is_close, "", CHECK, CHECK_CLOSE_FRACTION, (L)(R)(::boost::test_tools::fraction_tolerance(T)) )
+    ::boost::test_tools::check_is_close, "", CHECK, CHECK_CLOSE_FRACTION, (L)(R)(T) )
 #define BOOST_REQUIRE_CLOSE_FRACTION(L,R,T) BOOST_TEST_TOOL_IMPL( 0, \
-    ::boost::test_tools::check_is_close, "", REQUIRE, CHECK_CLOSE_FRACTION, (L)(R)(::boost::test_tools::fraction_tolerance(T)) )
+    ::boost::test_tools::check_is_close, "", REQUIRE, CHECK_CLOSE_FRACTION, (L)(R)(T) )
 
 //____________________________________________________________________________//
 
Modified: trunk/boost/test/unit_test.hpp
==============================================================================
--- trunk/boost/test/unit_test.hpp	(original)
+++ trunk/boost/test/unit_test.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/unit_test_log.hpp
==============================================================================
--- trunk/boost/test/unit_test_log.hpp	(original)
+++ trunk/boost/test/unit_test_log.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/unit_test_log_formatter.hpp
==============================================================================
--- trunk/boost/test/unit_test_log_formatter.hpp	(original)
+++ trunk/boost/test/unit_test_log_formatter.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2003-2008.
+//  (C) Copyright Gennadiy Rozental 2003-2010.
 //  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)
Modified: trunk/boost/test/unit_test_monitor.hpp
==============================================================================
--- trunk/boost/test/unit_test_monitor.hpp	(original)
+++ trunk/boost/test/unit_test_monitor.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/unit_test_suite.hpp
==============================================================================
--- trunk/boost/test/unit_test_suite.hpp	(original)
+++ trunk/boost/test/unit_test_suite.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/unit_test_suite_impl.hpp
==============================================================================
--- trunk/boost/test/unit_test_suite_impl.hpp	(original)
+++ trunk/boost/test/unit_test_suite_impl.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/utils/algorithm.hpp
==============================================================================
--- trunk/boost/test/utils/algorithm.hpp	(original)
+++ trunk/boost/test/utils/algorithm.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
+//  (C) Copyright Gennadiy Rozental 2004-2010.
 //  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)
Modified: trunk/boost/test/utils/assign_op.hpp
==============================================================================
--- trunk/boost/test/utils/assign_op.hpp	(original)
+++ trunk/boost/test/utils/assign_op.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/basic_cstring/basic_cstring.hpp
==============================================================================
--- trunk/boost/test/utils/basic_cstring/basic_cstring.hpp	(original)
+++ trunk/boost/test/utils/basic_cstring/basic_cstring.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
+//  (C) Copyright Gennadiy Rozental 2004-2010.
 //  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)
Modified: trunk/boost/test/utils/basic_cstring/basic_cstring_fwd.hpp
==============================================================================
--- trunk/boost/test/utils/basic_cstring/basic_cstring_fwd.hpp	(original)
+++ trunk/boost/test/utils/basic_cstring/basic_cstring_fwd.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
+//  (C) Copyright Gennadiy Rozental 2004-2010.
 //  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)
Modified: trunk/boost/test/utils/basic_cstring/bcs_char_traits.hpp
==============================================================================
--- trunk/boost/test/utils/basic_cstring/bcs_char_traits.hpp	(original)
+++ trunk/boost/test/utils/basic_cstring/bcs_char_traits.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
+//  (C) Copyright Gennadiy Rozental 2004-2010.
 //  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)
Modified: trunk/boost/test/utils/basic_cstring/compare.hpp
==============================================================================
--- trunk/boost/test/utils/basic_cstring/compare.hpp	(original)
+++ trunk/boost/test/utils/basic_cstring/compare.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
+//  (C) Copyright Gennadiy Rozental 2004-2010.
 //  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)
Modified: trunk/boost/test/utils/basic_cstring/io.hpp
==============================================================================
--- trunk/boost/test/utils/basic_cstring/io.hpp	(original)
+++ trunk/boost/test/utils/basic_cstring/io.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
+//  (C) Copyright Gennadiy Rozental 2004-2010.
 //  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)
Modified: trunk/boost/test/utils/callback.hpp
==============================================================================
--- trunk/boost/test/utils/callback.hpp	(original)
+++ trunk/boost/test/utils/callback.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/class_properties.hpp
==============================================================================
--- trunk/boost/test/utils/class_properties.hpp	(original)
+++ trunk/boost/test/utils/class_properties.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/utils/custom_manip.hpp
==============================================================================
--- trunk/boost/test/utils/custom_manip.hpp	(original)
+++ trunk/boost/test/utils/custom_manip.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/fixed_mapping.hpp
==============================================================================
--- trunk/boost/test/utils/fixed_mapping.hpp	(original)
+++ trunk/boost/test/utils/fixed_mapping.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
+//  (C) Copyright Gennadiy Rozental 2001-2010.
 //  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)
Modified: trunk/boost/test/utils/foreach.hpp
==============================================================================
--- trunk/boost/test/utils/foreach.hpp	(original)
+++ trunk/boost/test/utils/foreach.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,5 +1,5 @@
 //  (C) Copyright Eric Niebler 2004-2005
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/iterator/ifstream_line_iterator.hpp
==============================================================================
--- trunk/boost/test/utils/iterator/ifstream_line_iterator.hpp	(original)
+++ trunk/boost/test/utils/iterator/ifstream_line_iterator.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
+//  (C) Copyright Gennadiy Rozental 2004-2010.
 //  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)
Modified: trunk/boost/test/utils/iterator/input_iterator_facade.hpp
==============================================================================
--- trunk/boost/test/utils/iterator/input_iterator_facade.hpp	(original)
+++ trunk/boost/test/utils/iterator/input_iterator_facade.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
+//  (C) Copyright Gennadiy Rozental 2004-2010.
 //  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)
Modified: trunk/boost/test/utils/iterator/istream_line_iterator.hpp
==============================================================================
--- trunk/boost/test/utils/iterator/istream_line_iterator.hpp	(original)
+++ trunk/boost/test/utils/iterator/istream_line_iterator.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
+//  (C) Copyright Gennadiy Rozental 2004-2010.
 //  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)
Modified: trunk/boost/test/utils/iterator/token_iterator.hpp
==============================================================================
--- trunk/boost/test/utils/iterator/token_iterator.hpp	(original)
+++ trunk/boost/test/utils/iterator/token_iterator.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
+//  (C) Copyright Gennadiy Rozental 2004-2010.
 //  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)
Modified: trunk/boost/test/utils/lazy_ostream.hpp
==============================================================================
--- trunk/boost/test/utils/lazy_ostream.hpp	(original)
+++ trunk/boost/test/utils/lazy_ostream.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2008.
+//  (C) Copyright Gennadiy Rozental 2008-2010.
 //  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)
@@ -35,6 +35,8 @@
 
 class lazy_ostream {
 public:
+    virtual                 ~lazy_ostream()                                         {}
+
     static lazy_ostream&    instance()                                              { static lazy_ostream inst; return inst; }
 
     friend std::ostream&    operator<<( std::ostream& ostr, lazy_ostream const& o ) { return o( ostr ); }
@@ -47,12 +49,6 @@
 protected:
     explicit                lazy_ostream( bool empty = true ) : m_empty( empty )    {}
 
-    // protected destructor to make sure right one is called
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
-public:
-#endif
-    BOOST_TEST_PROTECTED_VIRTUAL ~lazy_ostream()                                    {}
-
 private:
     // Data members
     bool                    m_empty;
@@ -60,43 +56,54 @@
 
 //____________________________________________________________________________//
 
-template<typename T>
+template<typename PrevType, typename T>
 class lazy_ostream_impl : public lazy_ostream {
 public:
-    lazy_ostream_impl( lazy_ostream const& prev, T value )
+    lazy_ostream_impl( PrevType const& prev, T const& value )
     : lazy_ostream( false )
     , m_prev( prev )
     , m_value( value )
-    {}
-private:
+    {
+    }
+
     virtual std::ostream&   operator()( std::ostream& ostr ) const
     {
         return m_prev(ostr) << m_value;
     }
-
+private:
     // Data members
-    lazy_ostream const&     m_prev;
-    T                       m_value;
+    PrevType    m_prev;
+    T const&    m_value;
 };
 
 //____________________________________________________________________________//
 
 template<typename T>
-inline lazy_ostream_impl<T const&>
+inline lazy_ostream_impl<lazy_ostream,T>
 operator<<( lazy_ostream const& prev, T const& v )
 {
-    return lazy_ostream_impl<T const&>( prev, v );
+    return lazy_ostream_impl<lazy_ostream,T>( prev, v );
+}
+
+//____________________________________________________________________________//
+
+template<typename PrevPrevType, typename TPrev, typename T>
+inline lazy_ostream_impl<lazy_ostream_impl<PrevPrevType,TPrev>,T>
+operator<<( lazy_ostream_impl<PrevPrevType,TPrev> const& prev, T const& v )
+{
+    typedef lazy_ostream_impl<PrevPrevType,TPrev> PrevType;
+    return lazy_ostream_impl<PrevType,T>( prev, v );
 }
 
 //____________________________________________________________________________//
 
 #if BOOST_TEST_USE_STD_LOCALE
 
-template<typename R,typename S>
-inline lazy_ostream_impl<R& (BOOST_TEST_CALL_DECL *)(S&)>
-operator<<( lazy_ostream const& prev, R& (BOOST_TEST_CALL_DECL *man)(S&) )
+template<typename PrevPrevType, typename TPrev,typename R,typename S>
+inline lazy_ostream_impl<lazy_ostream_impl<PrevPrevType,TPrev>,R& (BOOST_TEST_CALL_DECL *)(S&)>
+operator<<( lazy_ostream_impl<PrevPrevType,TPrev> const& prev, R& (BOOST_TEST_CALL_DECL *man)(S&) )
 {
-    return lazy_ostream_impl<R& (BOOST_TEST_CALL_DECL *)(S&)>( prev, man );
+    return lazy_ostream_impl<lazy_ostream_impl<PrevPrevType,TPrev>,R& (BOOST_TEST_CALL_DECL *)(S&)>( prev, man );
 }
 
 //____________________________________________________________________________//
Modified: trunk/boost/test/utils/named_params.hpp
==============================================================================
--- trunk/boost/test/utils/named_params.hpp	(original)
+++ trunk/boost/test/utils/named_params.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/nullstream.hpp
==============================================================================
--- trunk/boost/test/utils/nullstream.hpp	(original)
+++ trunk/boost/test/utils/nullstream.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2002-2008.
+//  (C) Copyright Gennadiy Rozental 2002-2010.
 //  (C) Copyright Daryle Walker 2000-2001. 
 //  Distributed under the Boost Software License, Version 1.0.
 //  (See accompanying file LICENSE_1_0.txt or copy at 
Modified: trunk/boost/test/utils/rtti.hpp
==============================================================================
--- trunk/boost/test/utils/rtti.hpp	(original)
+++ trunk/boost/test/utils/rtti.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/runtime/argument.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/argument.hpp	(original)
+++ trunk/boost/test/utils/runtime/argument.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/runtime/cla/argument_factory.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/argument_factory.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/argument_factory.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/argv_traverser.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/argv_traverser.cpp	(original)
+++ trunk/boost/test/utils/runtime/cla/argv_traverser.cpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/argv_traverser.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/argv_traverser.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/argv_traverser.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/argv_traverser.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/argv_traverser.ipp	(original)
+++ trunk/boost/test/utils/runtime/cla/argv_traverser.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/basic_parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/basic_parameter.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/basic_parameter.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/char_parameter.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/char_parameter.cpp	(original)
+++ trunk/boost/test/utils/runtime/cla/char_parameter.cpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/char_parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/char_parameter.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/char_parameter.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/char_parameter.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/char_parameter.ipp	(original)
+++ trunk/boost/test/utils/runtime/cla/char_parameter.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/detail/argument_value_usage.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/detail/argument_value_usage.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/detail/argument_value_usage.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Permission to copy, use, modify, sell and distribute this software
 //  is granted provided this copyright notice appears in all copies.
 //  This software is provided "as is" without express or implied warranty,
Modified: trunk/boost/test/utils/runtime/cla/dual_name_parameter.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/dual_name_parameter.cpp	(original)
+++ trunk/boost/test/utils/runtime/cla/dual_name_parameter.cpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/dual_name_parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/dual_name_parameter.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/dual_name_parameter.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/dual_name_parameter.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/dual_name_parameter.ipp	(original)
+++ trunk/boost/test/utils/runtime/cla/dual_name_parameter.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/fwd.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/fwd.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/fwd.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/id_policy.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/id_policy.cpp	(original)
+++ trunk/boost/test/utils/runtime/cla/id_policy.cpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/id_policy.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/id_policy.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/id_policy.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/id_policy.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/id_policy.ipp	(original)
+++ trunk/boost/test/utils/runtime/cla/id_policy.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/iface/argument_factory.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/iface/argument_factory.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/iface/argument_factory.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/iface/id_policy.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/iface/id_policy.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/iface/id_policy.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/modifier.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/modifier.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/modifier.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/named_parameter.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/named_parameter.cpp	(original)
+++ trunk/boost/test/utils/runtime/cla/named_parameter.cpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/named_parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/named_parameter.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/named_parameter.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/named_parameter.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/named_parameter.ipp	(original)
+++ trunk/boost/test/utils/runtime/cla/named_parameter.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/parameter.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/parameter.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/parser.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/parser.cpp	(original)
+++ trunk/boost/test/utils/runtime/cla/parser.cpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/parser.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/parser.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/parser.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/parser.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/parser.ipp	(original)
+++ trunk/boost/test/utils/runtime/cla/parser.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/positional_parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/positional_parameter.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/positional_parameter.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/typed_parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/typed_parameter.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/typed_parameter.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/validation.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/validation.cpp	(original)
+++ trunk/boost/test/utils/runtime/cla/validation.cpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/validation.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/validation.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/validation.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/validation.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/validation.ipp	(original)
+++ trunk/boost/test/utils/runtime/cla/validation.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/value_generator.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/value_generator.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/value_generator.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/cla/value_handler.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/value_handler.hpp	(original)
+++ trunk/boost/test/utils/runtime/cla/value_handler.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/config.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/config.hpp	(original)
+++ trunk/boost/test/utils/runtime/config.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/runtime/configuration.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/configuration.hpp	(original)
+++ trunk/boost/test/utils/runtime/configuration.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/runtime/env/environment.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/env/environment.cpp	(original)
+++ trunk/boost/test/utils/runtime/env/environment.cpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
+//  (C) Copyright Gennadiy Rozental 2004-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/env/environment.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/env/environment.hpp	(original)
+++ trunk/boost/test/utils/runtime/env/environment.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/runtime/env/environment.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/env/environment.ipp	(original)
+++ trunk/boost/test/utils/runtime/env/environment.ipp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/runtime/env/fwd.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/env/fwd.hpp	(original)
+++ trunk/boost/test/utils/runtime/env/fwd.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/runtime/env/modifier.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/env/modifier.hpp	(original)
+++ trunk/boost/test/utils/runtime/env/modifier.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/env/variable.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/env/variable.hpp	(original)
+++ trunk/boost/test/utils/runtime/env/variable.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/runtime/file/config_file.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/file/config_file.cpp	(original)
+++ trunk/boost/test/utils/runtime/file/config_file.cpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/file/config_file.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/file/config_file.hpp	(original)
+++ trunk/boost/test/utils/runtime/file/config_file.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/file/config_file_iterator.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/file/config_file_iterator.cpp	(original)
+++ trunk/boost/test/utils/runtime/file/config_file_iterator.cpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/file/config_file_iterator.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/file/config_file_iterator.hpp	(original)
+++ trunk/boost/test/utils/runtime/file/config_file_iterator.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  Use, modification, and distribution are subject to 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)
Modified: trunk/boost/test/utils/runtime/fwd.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/fwd.hpp	(original)
+++ trunk/boost/test/utils/runtime/fwd.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/runtime/interpret_argument_value.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/interpret_argument_value.hpp	(original)
+++ trunk/boost/test/utils/runtime/interpret_argument_value.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/runtime/parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/parameter.hpp	(original)
+++ trunk/boost/test/utils/runtime/parameter.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/runtime/trace.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/trace.hpp	(original)
+++ trunk/boost/test/utils/runtime/trace.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/runtime/validation.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/validation.hpp	(original)
+++ trunk/boost/test/utils/runtime/validation.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/setcolor.hpp
==============================================================================
--- trunk/boost/test/utils/setcolor.hpp	(original)
+++ trunk/boost/test/utils/setcolor.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2009.
+//  (C) Copyright Gennadiy Rozental 2009-2010.
 //  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)
Modified: trunk/boost/test/utils/trivial_singleton.hpp
==============================================================================
--- trunk/boost/test/utils/trivial_singleton.hpp	(original)
+++ trunk/boost/test/utils/trivial_singleton.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
+//  (C) Copyright Gennadiy Rozental 2005-2010.
 //  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)
Modified: trunk/boost/test/utils/wrap_stringstream.hpp
==============================================================================
--- trunk/boost/test/utils/wrap_stringstream.hpp	(original)
+++ trunk/boost/test/utils/wrap_stringstream.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2002-2008.
+//  (C) Copyright Gennadiy Rozental 2002-2010.
 //  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)
Modified: trunk/boost/test/utils/xml_printer.hpp
==============================================================================
--- trunk/boost/test/utils/xml_printer.hpp	(original)
+++ trunk/boost/test/utils/xml_printer.hpp	2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
+//  (C) Copyright Gennadiy Rozental 2004-2010.
 //  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)