$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Angel Tsankov (fn42551_at_[hidden])
Date: 2008-07-21 05:52:28
Hello,
Is there any interest in a class template which acts like a pointer and
guarantees at compile time and at no CPU or memory cost (except when a
call to any of its methods is not inlined) that the pointer is not null?
One of the applications that I have found for this template is in
defensive programming to eliminate the chances that dereferencing a
pointer will result in undefined behaviour (when the pointer is null).
Using this template is superior to any alternative method (that I know)
to achieve the same result, since:
(*) it consumes no CPU (in contrast to null checks);
(*) the class template instances are copy constructible and copy
assignable (in contrast to references which can also be used to
guarantee unnullability);
(*) it is natively supported by the language and provides a 'real'
guarantee (in contrast to 'design by contract');
(*) supports the natural syntax for access to the wrapped resource (in
constrast to boost::ref).
Regards,
Angel Tsankov