Fixed Intel 7 issue (reported by Daniel Frey)

[SVN r19145]
This commit is contained in:
Peter Dimov 2003-07-16 10:53:06 +00:00
parent 3bd833c8ff
commit d1d0d6b788
2 changed files with 6 additions and 5 deletions

View File

@ -23,9 +23,8 @@ namespace
int main()
{
Incomplete * p;
Incomplete * p = 0;
boost::checked_delete(p); // should cause compile time error
Incomplete ** pa;
boost::checked_array_delete(pa); // should cause compile time error
boost::checked_array_delete(p); // should cause compile time error
return 0;
} // main

View File

@ -26,13 +26,14 @@ namespace boost
template<class T> inline void checked_delete(T * x)
{
typedef char type_must_be_complete[sizeof(T)];
// Intel 7 accepts sizeof(incomplete) as 0 in system headers
typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
delete 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 ];
delete [] x;
}
@ -43,6 +44,7 @@ template<class T> struct checked_deleter
void operator()(T * x) const
{
// boost:: disables ADL
boost::checked_delete(x);
}
};