On Thu, Sep 19, 2013 at 01:32:06PM -0700, Walter Bright wrote:
> On 9/19/2013 12:44 PM, Benjamin Thaut wrote:
> >Can't we make the compiler deduce the static attribute? If a template
> >method or a method of a template struct / class does not access any
> >of its members it becomes static automatically?
> 
> static/nonstatic member functions have different ABIs, so no, it would
> not work.

There's also the problem of base class methods turning static where you
didn't intend it to, for example:

        class Base {
                // This method is intended to be overridden by derived
                // classes.
                void method() {
                        // Oops, didn't access 'this', now we're static.
                        assert(0, "Not implemented");
                }
        }
        class Derived : Base {
                int x;
                override void method() { // NG
                        x++;
                }
        }


T

-- 
Computers aren't intelligent; they only think they are.

Reply via email to