Re: How can I do that in @nogc?

2015-02-25 Thread Ivan Timokhin via Digitalmars-d-learn
On Wed, Feb 25, 2015 at 07:32:48PM +, Namespace wrote: void glCheck(lazy void func, string file = __FILE__, uint line = __LINE__) { func(); glCheckError(file, line); } How can I specify that 'func' is @nogc? Or can define the function otherwise? Try void

Re: DList.Range magically becomes empty.

2015-02-25 Thread Ivan Timokhin via Digitalmars-d-learn
Tobias Pankrath wrote: writefln(stack: %s, stack[]); //fine This call consumes all ranges stored in stack, so they're empty afterwards.

Re: Alias delegates and @nogc

2015-02-18 Thread Ivan Timokhin via Digitalmars-d-learn
ketmar wrote: On Wed, 18 Feb 2015 19:09:50 +0300, Ivan Timokhin wrote: Is there any way to pass a delegate that: 1. avoids indirect calls (like alias); 2. does not allocate (like scope delegate); 3. captures local variables? i don't think that you can do it. but what is wrong with

Alias delegates and @nogc

2015-02-18 Thread Ivan Timokhin via Digitalmars-d-learn
With dmd 2.066.1, this compiles: void bar(scope int delegate() a) @nogc {} void foo(int x) @nogc { bar(() = x); } but this doesn't: void bar(alias a)() {} void foo(int x) @nogc { bar!(() = x)(); } Fails with Error: function test.foo @nogc function allocates a closure with the GC Is

Re: Explicit Interface Implementation

2015-02-14 Thread Ivan Timokhin via Digitalmars-d-learn
ref2401 wrote: Does D provide a way for explicit interface implementation? [C#] https://msdn.microsoft.com/en-us/library/ms173157.aspx Not exactly, but you may try something like this: interface A { void foo(); } interface B { void foo(); } class C : A { class Nested : B {

Re: Get operator overloads

2014-09-03 Thread Ivan Timokhin via Digitalmars-d-learn
02.09.2014 23:21, Marc =?UTF-8?B?U2Now7x0eiI=?= schue...@gmx.net пишет: On Tuesday, 2 September 2014 at 18:55:50 UTC, Ivan Timokhin wrote: Is it possible to get all overloads of an operator for a particular type? I.e., having this struct definition, is it possible to tell at compile time that

Get operator overloads

2014-09-02 Thread Ivan Timokhin via Digitalmars-d-learn
Is it possible to get all overloads of an operator for a particular type? I.e., having this struct definition, is it possible to tell at compile time that it can be added with double and int[]? struct S { void opBinary(string op : +)(double); void opBinary(string op : +)(int[]); } To