On Tuesday, 16 May 2017 at 19:18:43 UTC, Ola Fosheim Grøstad
wrote:
On Tuesday, 16 May 2017 at 18:57:37 UTC, H. S. Teoh wrote:
this ugly verbosity, but imagine how much better it would be
if we could write something like this instead:
int foo(T, U)(T t, U u)
if (sigConstraints!T && sigConstraints!U)
in (t > 0 && u < 10)
out(foo > 1 && foo < 5 )
{
// function body here
}
This is just tentative example syntax, of course.
Why not just use the terminology the rest of the world has
landed on?
int foo(T, U)(T t, U u)
if (sigConstraints!T && sigConstraints!U)
requires(t > 0 && u < 10)
ensures(foo > 1 && foo < 5 )
{
// function body here
}
Or is there some value in being cryptic?
What about error messages. With asserts I get the line where the
assert failed. Can I get an information which condition failed
(sorry for the question, I don't know how it works in other
languages)?