On 9/26/14, 2:50 PM, Dmitry Olshansky wrote:
24-Sep-2014 18:55, Andrei Alexandrescu пишет:
On 9/24/14, 3:31 AM, Dmitry Olshansky wrote:
23-Sep-2014 19:13, Andrei Alexandrescu пишет:
On 9/23/14, 12:17 AM, Dmitry Olshansky wrote:
In my imagination it would be along the lines of
@ARC
struct MyCountedStuff{ void opInc(); void opDec(); }

So that would be a pointer type or a value type? Is there copy on write
somewhere? -- Andrei

It would be an intrusively counted type with pointer somewhere in the
body. To put it simply MyCountedStuff is a kind of smart pointer.

Then that would be confusing seeing as structs are value types. What
you're saying is that a struct with opInc() and opDec() has pointer
semantics whereas one with not has value semantics. That design isn't
going to fly.

Read that as
struct RefCounted(T){

     void opInc();
     void opDec();
}

Consider:

struct MyRefCounted
    void opInc();
    void opDec();
    int x;
}

MyRefCounted a;
a.x = 42;
MyRefCounted b = a;
b.x = 43;

What is a.x after this?


Andrei

Reply via email to