$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Jason Hise (chaos_at_[hidden])
Date: 2005-07-30 12:01:27
Anis Benyelloul wrote:
> I just had a quick look! I seems that their concern was about
> redefining NULL
> itself, not about a NULL replacement as such. By the way, I didn't
> redefine
> NULL.
The problem was indeed mostly about me redefining NULL (which I admit
now was a bad idea), but there is still a problem with the template
based null that was shown to me by Eric Niebler (edited to make it look
more like a real world example):
template < typename Type >
struct SmartPtr
{
SmartPtr ( Type * )
{
}
};
void Bar ( SmartPtr < int > )
{
}
void Test ( )
{
Bar ( boost::null ); // fails, requires two user defined conversions
}
I suppose SmartPtr could add a constructor taking boost::null_type, but
that seems horribly redundant, especially when passing 0 for null would
still work perfectly without the need for another constructor. Any
ideas for solving this use case?
-Jason