Freelists and clear/emplace

Timon Gehr timon.gehr at gmx.ch
Sat Jun 16 13:02:28 PDT 2012


On 06/16/2012 09:55 PM, F i L wrote:
> Timon Gehr wrote:
>> 'typeof(this)' can be used to avoid stuttering the type at the mixin
>> location.
>>
>> mixin template Pool() { mixin Pool!(typeof(this)); }
>>
>> class MyOtherClass {
>>     mixin Pool;
>> }
>
> For some reason I was under the impression that typeof(this) couldn't be
> resolved in this situation (no 'this' value),

It is indeed special cased.

class S{
     pragma(msg, typeof(this)); // ok
     pragma(msg, this.stringof);
  // Error: 'this' is only defined in non-static member functions, not S
}

> but I'm sure you're
> correct here. Which of course means you'd need to "static
> if(isValueType!typeof(this)) { ... } else { ... }" to make it work with
> structs.
>
>



More information about the Digitalmars-d mailing list