Meta:
> What's the difference between your proposed "enum precondition"
> and:
>
> void fun(int n)
> in
> {
> static assert(...);
> }
> out
> {
> static assert(...);
> }
> body
> {
> //...
> }
Those static asserts are useless, because the argument n is not a
"static" one.
Bye,
bearophile