Ah, simple solution to unittests inside templates

John Colvin via Digitalmars-d digitalmars-d at puremagic.com
Sun Sep 18 06:01:38 PDT 2016


On Sunday, 18 September 2016 at 12:02:47 UTC, Andrei Alexandrescu 
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

static as in static function. Not much better  imo.

Your solution with static if is fine (ish) , but ugly and a pain 
for some templates that only accept relatively complicated types. 
Also requires an external unittest to be kept in sync to ensure 
that the template is ever instantiated with a those arguments.

What would be really good would be to have a way to make ddoc 
associate a unittest with a particular symbol, regardless of 
location.

See e.g. https://github.com/dlang/phobos/pull/4043 where I have 
to pull all the unittests out of the template in order to get the 
win 32 tester to pass (fails saying "too many symbols" 
otherwise), but that ruins the documentation.


More information about the Digitalmars-d mailing list