example for compile time function execution
    eao197 
    eao197 at intervale.ru
       
    Thu May  3 05:13:47 PDT 2007
    
    
  
On Sat, 28 Apr 2007 00:21:44 +0400, Walter Bright  
<newshound1 at digitalmars.com> wrote:
> I keep racking my brain trying to come up with a short, pithy example of  
> CTFE that uses AAs or struct literals. It should be just a few lines,  
> and make it clear why CTFE is a great thing. I want to use it in  
> presentations.
>
> Any ideas?
Can I try? ;)
Some languages have special syntax sugar for declaring attributes and  
getters/setters methods for them. For example, in Scala we can write:
   class Demo( a: int, b: String, c: List[int] ) {}
and class Demo would have attributes a, b, c, and getters/setters for  
them. Or in Ruby:
   class Demo
     attr_accessor :a, :b, :c
   end
But if I want to define attribute and getter/setter property for it I need  
to write a lot of code (in comparision with Ruby or Scala). So I offer a  
simple CTFE function for attributes and propeties generation (see attach).
For example:
   class Demo {
     mixin( implementAttrs(
       [ Attribute( "a", "int" ),
         Attribute( "b", "char[]" ),
         Attribute( "c", "int[]" ) ] ) );
   }
instead of:
   class Demo {
     int a_;
     public int a() { return a_; }
     public void a( int v ) { a_ = v; }
     ...
   }
Disclaimer: it is not a production ready solution -- just an example :)
-- 
Regards,
Yauheni Akhotnikau
-------------- next part --------------
A non-text attachment was scrubbed...
Name: implement_attrs.d
Type: application/octet-stream
Size: 1216 bytes
Desc: not available
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20070503/277e273d/attachment.obj>
    
    
More information about the Digitalmars-d
mailing list