Use boost/assert.hpp to check (at runtime) if the int passed to Boost.Function's

clearing constructor is zero


[SVN r16614]
This commit is contained in:
Douglas Gregor
2002-12-15 14:54:32 +00:00
parent da9d12d1b9
commit 450959d0d7
2 changed files with 7 additions and 2 deletions

View File

@ -21,6 +21,7 @@
#include <memory>
#include <new>
#include <boost/config.hpp>
#include <boost/assert.hpp>
#include <boost/type_traits/arithmetic_traits.hpp>
#include <boost/type_traits/composite_traits.hpp>
#include <boost/type_traits/is_stateless.hpp>

View File

@ -296,7 +296,10 @@ namespace boost {
#ifndef BOOST_FUNCTION_NO_ENABLE_IF
BOOST_FUNCTION_FUNCTION(clear_type*) : function_base(), invoker(0) {}
#else
BOOST_FUNCTION_FUNCTION(int) : function_base(), invoker(0) {}
BOOST_FUNCTION_FUNCTION(int zero) : function_base(), invoker(0)
{
BOOST_ASSERT(zero == 0);
}
#endif
BOOST_FUNCTION_FUNCTION(const BOOST_FUNCTION_FUNCTION& f) :
@ -351,8 +354,9 @@ namespace boost {
return *this;
}
#else
BOOST_FUNCTION_FUNCTION& operator=(int)
BOOST_FUNCTION_FUNCTION& operator=(int zero)
{
BOOST_ASSERT(zero == 0);
this->clear();
return *this;
}