On Sunday, June 23, 2013 12:02:42 Namespace wrote: > > I don't see what's so terrible about it > > It's bug prone. > > class Foo { > public: > static void test1() { } > void test2() { } > } > > Foo f; > f.test1(); /// Oh nice, that works, f is not null. > f.test2(); /// WTF? f is null?
I fail to see what's bug-prone about that. It's confusing, but it's not causing any bugs. > Also I don't know why I should call static methods from an > instance. What's the purpose? It's stupid and pointless as far as I can tell, but I believe that C++, Java, C#, and D all do it, so as stupid as it is, it's a common stupidity. I certainly wish that we could change it, but I wouldn't expect Walter to agree to the change, since it would break at least some existing code, and I suspect that he doesn't consider the fact that you can call static functions on instances to be a problem. That's not the sort of thing that he generally seems to think is an issue. It's almost always stuff that causes actual bugs that he agrees to change and not things that are aesthetically displeasing or which could theoretically cause bugs. - Jonathan M Davis