On 10 October 2014 21:51, Walter Bright via Digitalmars-d <digitalmars-d@puremagic.com> wrote: > On 10/10/2014 10:31 AM, Iain Buclaw via Digitalmars-d wrote: >> >> You shouldn't be blaming C++ for mistakes that D made. > > > I meant when perceptions about what something means are carried over from > one language to another. > > >> Equally, static does not have a double-meaning. > > > static famously in C++ has multiple meanings :-) and does so in D as well. >
I meant in the sense that it has a consistent meaning on its own, there is no difference between the following declarations. static int foo; static int foo() { }; struct S { static int foo; } struct S { static int foo() { } } And it does not take much to explain the difference between static alone versus static when paired with a second keyword. static this() { } static ~this() { } static assert() { } static if() { } static import foo;