|
Boost-Commit : |
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
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk