Why is std.algorithm.reduce impure?
Adam D. Ruppe
destructionator at gmail.com
Tue Mar 6 14:51:05 PST 2012
On Tuesday, 6 March 2012 at 22:48:30 UTC, H. S. Teoh wrote:
> Oh? what's wrong with the const?
test10.d(3): Error: function test10.product without 'this' cannot
be const/immutable
It works if you put parens on it:
pure const(int) product(int[] args) {
Without the parenthesis, D wants to apply it to this,
like if you write void foo() const {} in C++.
The reason here is most the attributes are at the
beginning, which is cool because this works:
const {
void foo() {}
int bar() {}
}
etc.
But if you put parens on it, it specifically applies
to the int.
More information about the Digitalmars-d-learn
mailing list