December 03, 2005Re: DMD 0.140: Pure magic!
Posted in reply to Don Clugston
Don Clugston wrote: > By presenting members (of modules, templates, classes and structs, maybe even functions) as an array of constant char  identifiers and char  mangled typenames, you could have *full* compile-time reflection. > Compile-time reflection was something I was thinking about too, as it would be very useful. For instance one could make a generic Serialize mixin template that would save any class/struct to a certain media (like a file, or stream). However, from what I understand from your example above, that method would only give "read-only" reflection as you would only have available the member's names/signature, and, at least for fields (and virtual functions too, I think?), that would not be enough to access it (you would need offset info, right?). > I suspect this would be by far the easiest way of implementing it, too. > Although walking the syntax tree before compilation is complete sounds perilous. Could it ever be done safely? (I wonder if any other languages have done it successfully?) Sounds perilous? Why? And I wouldn't call it "walking the syntax-tree", it's not that permissive. -- Bruno Medeiros - CS/E student "Certain aspects of D are a pathway to many abilities some consider to be... unnatural."