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?