--- Comment #10 from Brad Roberts <>  2009-06-11 09:47:11 
PDT ---
(In reply to comment #8)
> char* str1=obj.str1;
> const char* str2=obj.str2;
> auto len1=strlen(str2);
> str1[0]=0;
> auto len2=strlen(str2);
> assert(str1!=str2,"pwnd");
> GCC has stricter definition of pure function - a function whose arguments are
> contained in the stack (no reference types), in D this definition is extended
> to include immutable reference types, because they effectively behave as value
> types.

That's fine.  That's not a violation of purity as D has defined it.  Purity is
defined, roughly, as:

  1) does not mutate global state
  2) does not depend on global state

  Depends only on it's inputs and mutates only its output.

strlen is a classic example of a pure function.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to