Pure, Nothrow in Generic Programming

dsimcha dsimcha at yahoo.com
Fri Nov 27 07:19:23 PST 2009


== Quote from Walter Bright (newshound1 at digitalmars.com)'s article
> dsimcha wrote:
> > I would say that @safe doesn't make much sense.  What if you're implementing your
> > comparison function using memcmp() or something else that involves a bunch of
> > pointers?  If you pass memcmp() invalid parameters, it can segfault, and would
> > therefore have to be marked as unsafe, meaning that safe functions couldn't
call it.
> A safe function is only safe if the parameters passed to it are valid.
> memcmp() cannot be safe as it does pointer arithmetic.

I think you misunderstood the argument.  memcmp() could be @trusted if functions
only need to be safe when passed valid parameters, though I don't necessarily
agree that this makes sense.  I was thinking memcmp() shouldn't even be marked
@trusted because it's so easy to invoke undefined behavior by passing incorrect
parameters.  This would mean that, if opCmp() uses it, opCmp() couldn't be marked
as @safe.



More information about the Digitalmars-d mailing list