$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: ahd6974-boostorg_at_[hidden]
Date: 2008-01-02 10:31:47
Author: andreas_huber69
Date: 2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
New Revision: 42414
URL: http://svn.boost.org/trac/boost/changeset/42414
Log:
- Removed all permanent warning suppressions from library headers and avoided the resulting warnings with other means
- Updated acknowledgments
Text files modified: 
   trunk/boost/statechart/detail/rtti_policy.hpp             |     9 ---------                               
   trunk/boost/statechart/detail/state_base.hpp              |     9 ---------                               
   trunk/boost/statechart/event_processor.hpp                |     3 +++                                     
   trunk/boost/statechart/fifo_worker.hpp                    |     2 ++                                      
   trunk/boost/statechart/processor_container.hpp            |     3 +++                                     
   trunk/boost/statechart/simple_state.hpp                   |     3 +++                                     
   trunk/boost/statechart/state_machine.hpp                  |    31 ++++++++++++++++++++++---------         
   trunk/libs/statechart/Statechart.sln                      |    19 +++++++++++++++++++                     
   trunk/libs/statechart/doc/acknowledgments.html            |    14 ++++++++------                          
   trunk/libs/statechart/doc/future_and_history.html         |    13 +++++++++++--                           
   trunk/libs/statechart/doc/reference.html                  |    28 +++++++++++++++++++---------            
   trunk/libs/statechart/example/Performance/Performance.cpp |    29 +++++++++++++++++------------           
   trunk/libs/statechart/example/PingPong/PingPong.cpp       |     3 +++                                     
   trunk/libs/statechart/test/FifoSchedulerTest.cpp          |     9 +++++++--                               
   trunk/libs/statechart/test/TuTest.hpp                     |    11 ++++++++++-                             
   15 files changed, 127 insertions(+), 59 deletions(-)
Modified: trunk/boost/statechart/detail/rtti_policy.hpp
==============================================================================
--- trunk/boost/statechart/detail/rtti_policy.hpp	(original)
+++ trunk/boost/statechart/detail/rtti_policy.hpp	2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
@@ -16,15 +16,6 @@
 
 
 
-#ifdef BOOST_MSVC
-// We permanently turn off the following level 4 warnings because users will
-// have to do so themselves anyway if we turn them back on
-#  pragma warning( disable: 4511 ) // copy constructor could not be generated
-#  pragma warning( disable: 4512 ) // assignment operator could not be generated
-#endif
-
-
-
 namespace boost
 {
 namespace statechart
Modified: trunk/boost/statechart/detail/state_base.hpp
==============================================================================
--- trunk/boost/statechart/detail/state_base.hpp	(original)
+++ trunk/boost/statechart/detail/state_base.hpp	2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
@@ -34,15 +34,6 @@
 
 
 
-#ifdef BOOST_MSVC
-// We permanently turn off the following level 4 warnings because users will
-// have to do so themselves anyway if we turn them back on
-#  pragma warning( disable: 4511 ) // copy constructor could not be generated
-#  pragma warning( disable: 4512 ) // assignment operator could not be generated
-#endif
-
-
-
 namespace boost
 {
 namespace statechart
Modified: trunk/boost/statechart/event_processor.hpp
==============================================================================
--- trunk/boost/statechart/event_processor.hpp	(original)
+++ trunk/boost/statechart/event_processor.hpp	2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
@@ -70,6 +70,9 @@
     virtual void process_event_impl( const event_base & evt ) = 0;
     virtual void terminate_impl() = 0;
 
+    // avoids C4512 (assignment operator could not be generated)
+    event_processor & operator=( const event_processor & );
+
     Scheduler & myScheduler_;
     const processor_handle myHandle_;
 };
Modified: trunk/boost/statechart/fifo_worker.hpp
==============================================================================
--- trunk/boost/statechart/fifo_worker.hpp	(original)
+++ trunk/boost/statechart/fifo_worker.hpp	2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
@@ -26,6 +26,8 @@
 #    pragma warning( disable: 4244 )
      // "... needs to have dll-interface to be used by clients of class ..."
 #    pragma warning( disable: 4251 )
+     // "... assignment operator could not be generated"
+#    pragma warning( disable: 4512 )
      // "Function call with parameters that may be unsafe" in
      // condition_variable.hpp
 #    pragma warning( disable: 4996 )
Modified: trunk/boost/statechart/processor_container.hpp
==============================================================================
--- trunk/boost/statechart/processor_container.hpp	(original)
+++ trunk/boost/statechart/processor_container.hpp	2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
@@ -70,6 +70,9 @@
       private:
       #endif
 
+        // avoids C4512 (assignment operator could not be generated)
+        processor_context & operator=( const processor_context & );
+
         Scheduler & scheduler_;
         const processor_handle handle_;
 
Modified: trunk/boost/statechart/simple_state.hpp
==============================================================================
--- trunk/boost/statechart/simple_state.hpp	(original)
+++ trunk/boost/statechart/simple_state.hpp	2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
@@ -128,6 +128,9 @@
     }
 
   private:
+    // avoids C4512 (assignment operator could not be generated)
+    transition_function & operator=( const transition_function & );
+
     void ( TransitionContext::*pTransitionAction_ )( const Event & );
     const Event & evt_;
 };
Modified: trunk/boost/statechart/state_machine.hpp
==============================================================================
--- trunk/boost/statechart/state_machine.hpp	(original)
+++ trunk/boost/statechart/state_machine.hpp	2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
@@ -57,15 +57,6 @@
 
 
 
-#ifdef BOOST_MSVC
-// We permanently turn off the following level 4 warnings because users will
-// have to do so themselves anyway if we turn them back on
-#  pragma warning( disable: 4511 ) // copy constructor could not be generated
-#  pragma warning( disable: 4512 ) // assignment op could not be generated
-#endif
-
-
-
 namespace boost
 {
 namespace statechart
@@ -98,6 +89,9 @@
 
   private:
     //////////////////////////////////////////////////////////////////////////
+    // avoids C4512 (assignment operator could not be generated)
+    send_function & operator=( const send_function & );
+
     StateBaseType & toState_;
     const EventBaseType & evt_;
     IdType eventType_;
@@ -220,6 +214,9 @@
     {
     }
 
+    // avoids C4512 (assignment operator could not be generated)
+    history_key & operator=( const history_key & );
+
     const typename RttiPolicy::id_type historyContextType_;
     const orthogonal_position_type historizedOrthogonalRegion_;
 };
@@ -720,6 +717,10 @@
 
       private:
         //////////////////////////////////////////////////////////////////////
+        // avoids C4512 (assignment operator could not be generated)
+        initial_construct_function & operator=(
+          const initial_construct_function & );
+
         state_machine & machine_;
     };
     friend class initial_construct_function;
@@ -739,6 +740,9 @@
 
       private:
         //////////////////////////////////////////////////////////////////////
+        // avoids C4512 (assignment operator could not be generated)
+        terminate_function & operator=( const terminate_function & );
+
         state_machine & machine_;
     };
     friend class terminate_function;
@@ -814,6 +818,10 @@
 
       private:
         //////////////////////////////////////////////////////////////////////
+        // avoids C4512 (assignment operator could not be generated)
+        exception_event_handler & operator=(
+          const exception_event_handler & );
+
         state_machine & machine_;
         state_base_type * pCurrentState_;
     };
@@ -822,6 +830,7 @@
     class terminator
     {
       public:
+        //////////////////////////////////////////////////////////////////////
         terminator( state_machine & machine ) :
           machine_( machine ), dismissed_( false ) {}
         ~terminator()
@@ -831,6 +840,10 @@
         void dismiss() { dismissed_ = true; }
 
       private:
+        //////////////////////////////////////////////////////////////////////
+        // avoids C4512 (assignment operator could not be generated)
+        terminator & operator=( const terminator & );
+
         state_machine & machine_;
         bool dismissed_;
     };
Modified: trunk/libs/statechart/Statechart.sln
==============================================================================
--- trunk/libs/statechart/Statechart.sln	(original)
+++ trunk/libs/statechart/Statechart.sln	2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
@@ -78,6 +78,22 @@
                 test\Jamfile.v2 = test\Jamfile.v2
         EndProjectSection
 EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Documentation", "Documentation", "{FF998410-FD7E-4B0E-8754-20003E19F51D}"
+	ProjectSection(SolutionItems) = preProject
+		doc\acknowledgments.html = doc\acknowledgments.html
+		doc\configuration.html = doc\configuration.html
+		doc\contact.html = doc\contact.html
+		doc\definitions.html = doc\definitions.html
+		doc\faq.html = doc\faq.html
+		doc\future_and_history.html = doc\future_and_history.html
+		doc\index.html = doc\index.html
+		doc\performance.html = doc\performance.html
+		doc\rationale.html = doc\rationale.html
+		doc\reference.html = doc\reference.html
+		doc\tutorial.html = doc\tutorial.html
+		doc\uml_mapping.html = doc\uml_mapping.html
+	EndProjectSection
+EndProject
 Global
         GlobalSection(SolutionConfigurationPlatforms) = preSolution
                 Debug|Win32 = Debug|Win32
@@ -306,4 +322,7 @@
         GlobalSection(SolutionProperties) = preSolution
                 HideSolutionNode = FALSE
         EndGlobalSection
+	GlobalSection(NestedProjects) = preSolution
+		{FF998410-FD7E-4B0E-8754-20003E19F51D} = {3D7ED412-11AE-4AE7-8258-0FF6CF8BD11C}
+	EndGlobalSection
 EndGlobal
Modified: trunk/libs/statechart/doc/acknowledgments.html
==============================================================================
--- trunk/libs/statechart/doc/acknowledgments.html	(original)
+++ trunk/libs/statechart/doc/acknowledgments.html	2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
@@ -84,12 +84,14 @@
 
   <p>Thanks for feedback and/or encouragement go to:</p>
 
-  <p>Bardur Arantsson, Robert Bell, Bohdan, Wayne Chao, Topher Cooper, Peter
-  Dimov, Reece Dunn, John Fuller, Jeff Garland, Eugene Gladyshev, David A.
-  Greene, Douglas Gregor, Gustavo Guerra, Aleksey Gurtovoy, Iain K. Hanson,
-  David B. Held, Jürgen Hunold, Oliver Kowalke, Simon Meiklejohn, Johan
-  Nilsson, Matthieu Paindavoine, Chris Russell, Rob Stewart, Kwee Heong Tan,
-  Marcin Tustin, Vincent N. Virgilio, Gang Wang and Scott Woods.</p>
+  <p>Bardur Arantsson, Robert Bell, Bohdan, Wayne Chao, Topher Cooper,
+  Philippe David, Peter Dimov, Reece Dunn, John Fuller, Jeff Garland, Eugene
+  Gladyshev, David A. Greene, Douglas Gregor, Gustavo Guerra, Aleksey
+  Gurtovoy, Federico J. Fernández, Iain K. Hanson, David B. Held,
+  Jürgen Hunold, Oliver Kowalke, Simon Meiklejohn, Jiang Miao, Johan
+  Nilsson, Matthieu Paindavoine, Chris Paulse, Yuval Ronen, Chris Russell,
+  Rob Stewart, Kwee Heong Tan, Marcin Tustin, Vincent N. Virgilio, Gang Wang,
+  Steven Watanabe and Scott Woods.</p>
   <hr>
 
   <p><a href="http://validator.w3.org/check?uri=referer"><img border="0" src=
Modified: trunk/libs/statechart/doc/future_and_history.html
==============================================================================
--- trunk/libs/statechart/doc/future_and_history.html	(original)
+++ trunk/libs/statechart/doc/future_and_history.html	2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
@@ -139,12 +139,21 @@
 
   <p>(<font color="#FF0000">red</font> = points raised during formal
   review)</p>
+  <p>Unreleased (commited to the SVN trunk)</p>
+  <ul>
+    <li>Removed all permanent warning suppressions from library headers
+      and avoided the resulting warnings with other means (suggested by
+      Steven Watanabe; thanks to Peter Dimov and Yuval Ronen for insight
+      into when C4511 & C4512 are issued)</li>
+  </ul>
 
   <p>1.35.0</p>
 
   <ul>
-    <li>Added placement new overload to <code>event<></code></li>
-    <li>Made <code>event<></code> copy-assignable</li>
+    <li>Added placement new overload to <code>event<></code> (due to
+    feedback from Federico J. Fernández)</li>
+    <li>Made <code>event<></code> copy-assignable (Federico J.
+    Fernández)</li>
   </ul>
 
   <p>1.34.0</p>
Modified: trunk/libs/statechart/doc/reference.html
==============================================================================
--- trunk/libs/statechart/doc/reference.html	(original)
+++ trunk/libs/statechart/doc/reference.html	2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
@@ -2524,9 +2524,11 @@
 
   <p><b>Requires</b>: If called from a constructor of a direct or indirect
   subtype then the most-derived type must directly or indirectly derive from
-  the <code>state</code> class template<b><br>
-  Returns</b>: A reference to the outermost context, which is always the
-  state machine this state belongs to</p>
+  the <code>state</code> class template. If called from a destructor of a
+  direct or indirect subtype then the <code>state_machine<></code> subclass
+  portion must still exist<br>
+  <b>Returns</b>: A reference to the outermost context, which is always the
+  state machine this state belongs to<br></p>
   <pre>
 const outermost_context_type & <a name="outermost_contextconst" id=
 "outermost_contextconst">outermost_context() const</a>;
@@ -2534,8 +2536,10 @@
 
   <p><b>Requires</b>: If called from a constructor of a direct or indirect
   subtype then the most-derived type must directly or indirectly derive from
-  the <code>state</code> class template<b><br>
-  Returns</b>: A reference to the const outermost context, which is always
+  the <code>state</code> class template. If called from a destructor of a
+  direct or indirect subtype then the <code>state_machine<></code> subclass
+  portion must still exist<br>
+  <b>Returns</b>: A reference to the const outermost context, which is always
   the state machine this state belongs to</p>
   <pre>
 template< class OtherContext >
@@ -2544,8 +2548,11 @@
 
   <p><b>Requires</b>: If called from a constructor of a direct or indirect
   subtype then the most-derived type must directly or indirectly derive from
-  the <code>state</code> class template<b><br>
-  Returns</b>: A reference to a direct or indirect context</p>
+  the <code>state</code> class template. If called from a destructor of a
+  direct or indirect subtype with a <code>state_machine<></code> subtype as
+  argument then the <code>state_machine<></code> subclass portion must still
+  exist<br>
+  <b>Returns</b>: A reference to a direct or indirect context</p>
   <pre>
 template< class OtherContext >
 const OtherContext & <a name="contextconst" id=
@@ -2554,8 +2561,11 @@
 
   <p><b>Requires</b>: If called from a constructor of a direct or indirect
   subtype then the most-derived type must directly or indirectly derive from
-  the <code>state</code> class template<b><br>
-  Returns</b>: A reference to a const direct or indirect context</p>
+  the <code>state</code> class template. If called from a destructor of a
+  direct or indirect subtype with a <code>state_machine<></code> subtype as
+  argument then the <code>state_machine<></code> subclass portion must still
+  exist<br>
+  <b>Returns</b>: A reference to a const direct or indirect context</p>
   <pre>
 template< class Target >
 Target <a name="simple_state::state_cast" id=
Modified: trunk/libs/statechart/example/Performance/Performance.cpp
==============================================================================
--- trunk/libs/statechart/example/Performance/Performance.cpp	(original)
+++ trunk/libs/statechart/example/Performance/Performance.cpp	2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
@@ -443,19 +443,24 @@
 template< class NoOfBits >
 struct PerfResultBackInserter
 {
-  PerfResultBackInserter( PerfResultList & perfResultList ) :
-    perfResultList_( perfResultList )
-  {
-  }
-
-  template< class FirstTransitionBit >
-  void operator()( const FirstTransitionBit & )
-  {
-    perfResultList_.push_back(
-      PerformanceTester< NoOfBits, FirstTransitionBit >::Test() );
-  }
+  public:
+    PerfResultBackInserter( PerfResultList & perfResultList ) :
+      perfResultList_( perfResultList )
+    {
+    }
+
+    template< class FirstTransitionBit >
+    void operator()( const FirstTransitionBit & )
+    {
+      perfResultList_.push_back(
+        PerformanceTester< NoOfBits, FirstTransitionBit >::Test() );
+    }
+
+  private:
+    // avoids C4512 (assignment operator could not be generated)
+    PerfResultBackInserter & operator=( const PerfResultBackInserter & );
 
-  PerfResultList & perfResultList_;
+    PerfResultList & perfResultList_;
 };
 
 template< class NoOfBits >
Modified: trunk/libs/statechart/example/PingPong/PingPong.cpp
==============================================================================
--- trunk/libs/statechart/example/PingPong/PingPong.cpp	(original)
+++ trunk/libs/statechart/example/PingPong/PingPong.cpp	2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
@@ -213,6 +213,9 @@
       return terminate();
     }
 
+    // avoids C4512 (assignment operator could not be generated)
+    Waiting & operator=( const Waiting & );
+
     unsigned int noOfReturns_;
     const boost::intrusive_ptr< BallReturned > pBallReturned_;
 };
Modified: trunk/libs/statechart/test/FifoSchedulerTest.cpp
==============================================================================
--- trunk/libs/statechart/test/FifoSchedulerTest.cpp	(original)
+++ trunk/libs/statechart/test/FifoSchedulerTest.cpp	2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
@@ -31,8 +31,13 @@
 
 struct EvCheckCtorArgs : sc::event< EvCheckCtorArgs >
 {
-  EvCheckCtorArgs( int expectedArgs ) : expectedArgs_( expectedArgs ) {}
-  const int expectedArgs_;
+  public:
+    EvCheckCtorArgs( int expectedArgs ) : expectedArgs_( expectedArgs ) {}
+    const int expectedArgs_;
+
+  private:
+    // avoids C4512 (assignment operator could not be generated)
+    EvCheckCtorArgs & operator=( const EvCheckCtorArgs & );
 };
 
 struct EvTerminate : sc::event< EvTerminate > {};
Modified: trunk/libs/statechart/test/TuTest.hpp
==============================================================================
--- trunk/libs/statechart/test/TuTest.hpp	(original)
+++ trunk/libs/statechart/test/TuTest.hpp	2008-01-02 10:31:45 EST (Wed, 02 Jan 2008)
@@ -31,7 +31,13 @@
 
 namespace sc = boost::statechart;
 
-
+#ifdef BOOST_MSVC
+#  pragma warning( push )
+   // class X needs to have dll-interface to be used by clients of class Y
+#  pragma warning( disable: 4251 )
+   // non dll-interface class X used as base for dll-interface class
+#  pragma warning( disable: 4275 )
+#endif
 
 struct BOOST_STATECHART_DECL EvX : sc::event< EvX > {};
 struct BOOST_STATECHART_DECL EvY : sc::event< EvY > {};
@@ -43,6 +49,9 @@
   void unconsumed_event( const sc::event_base & );
 };
 
+#ifdef BOOST_MSVC
+#  pragma warning( pop )
+#endif
 
 
 #endif