Denis Koroskin wrote:
On Thu, 14 Jan 2010 21:28:42 +0300, Andrei Alexandrescu <[email protected]> wrote:

Pelle Månsson wrote:
On 01/14/2010 03:55 PM, Leandro Lucarella wrote:
What is @disable supposed to be for?
http://www.dsource.org/projects/dmd/changeset/336

Thanks.

#define STCdisable 0x2000000000LL // for functions that are not callable

The main idea is to allow creation of noncopyable types by marking this(this) as @disable.

Noncopyable types are pivotal for a number of idioms important in concurrency and elsewhere.


Andrei

Why not just make it final abstract instead? For example, the following works now:

// class can not be instantiated, serves just like a namespace
abstract final class Namespace
{
    static void foo() { ... }
}

It's about a struct, and it can be instantiated so it's not abstract even in principle.

Andrei

Reply via email to