back down on Earth [was: Re: Constructors...]

spir denis.spir at gmail.com
Fri Jan 21 05:02:00 PST 2011


On 01/21/2011 04:02 AM, Andrei Alexandrescu wrote:
> That being said, it's not difficult to define a generic function that
> copies fields over from one class object to another. Here's a start:
>
> import std.stdio;
>
> void copyMembers(A)(A src, A tgt) if (is(A == class)) {
>      foreach (e; __traits(allMembers, A)) {
>          static if (!is(typeof(__traits(getMember, src, e)) == function)
> && e != "Monitor")
>          {
>              __traits(getMember, tgt, e) = __traits(getMember, src, e);
>          }
>      }
> }

<side-note>
How many programmers in the world consider this kind of code "not 
difficult"? These few lines mix 3 features I personly find, say, 
'special': generics using 'is' constraints, static if, __traits.
<personal> From those 3, static if is not ugly. </personal>

Is code like this supposed to be considered normal? Where is D2 speak 
going to? Merge into this a handful of range/algos, a pinch of happy 
qualifiers here & there, a specimen of... string-mixin ;-)

How to welcome newcomers?
</side-note>

Denis
_________________
vita es estrany
spir.wikidot.com



More information about the Digitalmars-d mailing list