This commit was manufactured by cvs2svn to create tag

'merged_to_RC_1_30_0'.

[SVN r19627]
This commit is contained in:
nobody
2003-08-16 01:05:44 +00:00
parent 56acf9c325
commit 0acded863c

View File

@@ -1,8 +1,8 @@
#ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED #ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED
#define BOOST_CHECKED_DELETE_HPP_INCLUDED #define BOOST_CHECKED_DELETE_HPP_INCLUDED
#if _MSC_VER >= 1020 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once # pragma once
#endif #endif
// //
@@ -10,6 +10,8 @@
// //
// Copyright (c) 1999, 2000, 2001, 2002 boost.org // Copyright (c) 1999, 2000, 2001, 2002 boost.org
// Copyright (c) 2002, 2003 Peter Dimov // Copyright (c) 2002, 2003 Peter Dimov
// Copyright (c) 2003 Daniel Frey
// Copyright (c) 2003 Howard Hinnant
// //
// Permission to copy, use, modify, sell and distribute this software // Permission to copy, use, modify, sell and distribute this software
// is granted provided this copyright notice appears in all copies. // is granted provided this copyright notice appears in all copies.
@@ -26,13 +28,16 @@ namespace boost
template<class T> inline void checked_delete(T * x) template<class T> inline void checked_delete(T * x)
{ {
typedef char type_must_be_complete[sizeof(T)]; // intentionally complex - simplification causes regressions
typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
(void) sizeof(type_must_be_complete);
delete x; delete x;
} }
template<class T> inline void checked_array_delete(T * x) template<class T> inline void checked_array_delete(T * x)
{ {
typedef char type_must_be_complete[sizeof(T)]; typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
(void) sizeof(type_must_be_complete);
delete [] x; delete [] x;
} }
@@ -43,6 +48,7 @@ template<class T> struct checked_deleter
void operator()(T * x) const void operator()(T * x) const
{ {
// boost:: disables ADL
boost::checked_delete(x); boost::checked_delete(x);
} }
}; };