I don't have a strong opinion on the question but I tend to agree with the current behavior because it's easy to add the attributes anyway.

Going off topic, I want to mention that the 'in' and 'out' contracts have a simpler syntax now and that the 'do' (or 'body') keyword is optional in that place:

struct Dummy
{
// ...

  this(int memberInt, string memberStr) nothrow
  in (memberInt > MAX_MEMBER_INT, "You can put a message here")
  out (; this.memberInt == memberInt, "etc.")
  out (; this.memberStr == memberStr, "etc.")
  {
    this.memberInt = memberInt;
    this.memberStr = memberStr;
  }
}

I am reminded that the semicolons in the 'out' contracts are necessary even for a function that does not return a value (like a constructor does not).

Ali

Reply via email to