On Tue, Mar 06, 2012 at 11:51:05PM +0100, Adam D. Ruppe wrote:
> 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++.

But why can't 'this' be const? For example, why does the compiler reject
this:

        class A {
                int[] data;
                pure const int sum() {
                        return reduce!"a*b"(data);
                }
        }

I'm not modifying data at at all, so why should it be an error?


T

-- 
Don't modify spaghetti code unless you can eat the consequences.

Reply via email to