Ah, simple solution to unittests inside templates

Timon Gehr via Digitalmars-d digitalmars-d at puremagic.com
Sun Sep 18 16:55:58 PDT 2016


On 18.09.2016 22:10, Jonathan M Davis via Digitalmars-d wrote:
> On Sunday, September 18, 2016 08:02:47 Andrei Alexandrescu via Digitalmars-d
> wrote:
>> > On 9/17/16 5:23 PM, Andrej Mitrovic wrote:
>>> > > I think at some point someone suggested we could implement explicit
>>> > > support for such unittests via `static unittest`:
>> > That suggests the unittest shall be evaluated during compilation. -- Andrei
> How so? At this point, static as a keyword pretty much never means that
> something is compile-time specific. This is using static in pretty much the
> same sense that static constructors do.

No.

> A normal constructor goes with each
> instance of a class or struct whereas a static one goes with the type.

Yes, this is consistent with all other usages of static declarations.

> In
> this case, a non-static unittest block would be compiled into each template
> intsantiation, whereas a static one would be compiled once per template and
> would not require that the template even be instantiated.

Yes, but those are actually not "pretty much the same".

The second feature does not exist for any kind of declaration, and it is 
not 'static'. If it is introduced, why limit it to unittests?


More information about the Digitalmars-d mailing list