Source code annotations alla Java
    Jacob Carlborg 
    doob at me.com
       
    Thu Jan 20 12:43:21 PST 2011
    
    
  
On 2011-01-20 20:10, Trass3r wrote:
>> class Foo
>> {
>> int x;
>> int y;
>> int z;
>>
>> mixin NonSerialized!(z);
>> }
>
> Had a quick look at
> http://dsource.org/projects/orange/browser/orange/serialization/Serializable.d
>
> 1. How come it works without 'mixin' in the template declaration (mixin
> template NonSerialized)?
I think it's optional, it works with DMD 2.052
> 2. What if several fields need to be tagged?
You use the mixin several times.
> 3. Is there a reason to use a struct instead of e.g. __nonSerialized =
> ["field1", "field2", ...]?
Hmm, I think I had a good reason. First it needs to be const so it works 
during compile time. But I think I used  a struct because I used that on 
another project which required more data than just then name the field. 
If I would store it in an array you could only do the mixin once, I 
think. And that would require you to use strings instead of aliases, I 
think.
template foo (args...) {}
Does that work with aliases?
> 4. Couldn't that field be static to save space or maybe even enum?
That field should absolutely be static, I'm currently working on fixing 
that. I didn't think of that when I implemented it. This will also only 
work with one mixin (see the answer for the third comment).
-- 
/Jacob Carlborg
    
    
More information about the Digitalmars-d-learn
mailing list