Make const, immutable, inout, and shared illegal as function attributes on the left-hand side of a function

Iain Buclaw via Digitalmars-d digitalmars-d at puremagic.com
Fri Oct 10 14:40:13 PDT 2014


On 10 October 2014 21:51, Walter Bright via Digitalmars-d
<digitalmars-d at 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;


More information about the Digitalmars-d mailing list