Re: Choosing between __traits(compiles, { ... } ) and is(typeof( { ... } ))

2017-09-20 Thread Nordlöw via Digitalmars-d-learn
On Wednesday, 20 September 2017 at 12:20:18 UTC, Stefan Koch wrote: Yes there are. Prefer __traits(compiles) it includes stricter visibility checks then is() does. 1. Can you give example of such visibility checks? 2. If so, should `isCopyable` (along with more defs in std.traits) be

Re: Choosing between __traits(compiles, { ... } ) and is(typeof( { ... } ))

2017-09-20 Thread Stefan Koch via Digitalmars-d-learn
On Wednesday, 20 September 2017 at 12:01:21 UTC, Nordlöw wrote: When is __traits(compiles, { ... } ) preferred over is(typeof( { ... } )) and vice versa when writing stuff like enum isCopyable(S) = is(typeof( { S foo = S.init; S copy = foo; } )); ? Further, are there cases

Choosing between __traits(compiles, { ... } ) and is(typeof( { ... } ))

2017-09-20 Thread Nordlöw via Digitalmars-d-learn
When is __traits(compiles, { ... } ) preferred over is(typeof( { ... } )) and vice versa when writing stuff like enum isCopyable(S) = is(typeof( { S foo = S.init; S copy = foo; } )); ? Further, are there cases where the two idioms aren't exchangable?