On Thursday, 31 October 2019 at 13:34:35 UTC, Tobias Pankrath wrote:
I was confused at first by the trailing

if (!is(T == struct) && !is(T == interface) && !is(T == class) && !__traits(isStaticArray, T));

I understood your question different from what Dennis answered. At least I was confused by similar lines, when I was a beginner and did not know much about template constraints. What I would have needed to know at that time is, that template constraints limit the situations, where the template can be used. Here for example, this destroy template can only be used, when the type T is neither struct, interface nor class (these three have separate instances, probably because they need different treatment) and it's also not a static array, for unknown reasons.

What I don't understand is the 4th version with two extra parameters. Here the documentation lacks an explanation, what this is good for.

Reply via email to