__traits so long and ugly, what about ::?
KennyTM~
kennytm at gmail.com
Wed Mar 30 19:38:35 PDT 2011
On Mar 31, 11 09:42, Ary Manzana wrote:
> I just hate it when you have to write too much to get simple things
> done.
>
> Does this type have a member? Current approach:
>
> 1. import std.traits;
> 2. invoke hasMember!(S, "m")
>
> Another approach:
>
> 1. I have the type, let's ask it: S::hasMember("m")
>
> Map's thought to code.
>
> My problem is that when you start using D's cool features you end up
> with a really hard to understand and obscure code...
How often do you really needs feature in __traits? I've grepped my code
which uses a lot of templates and CTFE, and it only appears in 2 lines
else static if (__traits(isScalar, T)) {
static if (__traits(compiles, T.init.re))
Therefore I oppose the use of :: just for __traits, because it's so rare.
Now I have a counter-proposal,
T::ident(x, y, z, ...) <=> ident!(T, x, y, z, ...)
then hasMember can be invoked as
import std.traits;
...
S::hasMember("m")
Isn't it better than reserving :: just for __traits?
More information about the Digitalmars-d
mailing list