[webkit-dev] NeverNull<T>

Maciej Stachowiak mjs at apple.com
Tue Jul 28 16:19:14 PDT 2009


On Jul 28, 2009, at 3:59 PM, Peter Kasting wrote:

> On Tue, Jul 28, 2009 at 3:55 PM, Oliver Hunt <oliver at apple.com> wrote:
> Personally i like the idea of having type system/compiler enforced  
> null checking.
>
> Note that eseidel's proposal is still a runtime check.  One could  
> use template specialization to write a class that gives a compile- 
> time error if you try to assign NULL directly to a pointer, but I'm  
> not enough of a template wizard to know if it could be made to catch  
> all types of assignment (e.g. if you could catch that when a  
> NeverNull<Foo> is initialized by an existing Foo*, that existing  
> pointer must not contain NULL).

I don't think you can make the C++ type system prevent pointers from  
having null values without a runtime check. Any raw pointer expression  
could have a null value and this is not visible at compile time. It  
might be possible to prevent direct assignment of 0, which would  
provide at least a little bit of static checking.

Regards,
Maciej

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20090728/49935376/attachment.html>


More information about the webkit-dev mailing list