Class Type Parameters
Hans-Eric Grönlund
hasse42g at gmail.com
Mon Jan 21 01:32:11 PST 2008
Ah, you're right. I should have been more specific.
What I wanted to do was to imitate a ruby-method that accepts a code block, runs it and retries n times if an exception is thrown. Like the ruby-method, I wanted to let the user decide what type of exception to catch by giving it as an argument. I explain it in more detail on my weblog:
http://www.hans-eric.com/2008/01/17/loop-abstractions-in-d/
For that reason, I guess the compile time solution (templates) is to prefer in this case, although as a user of the function, I would have preferred a non-template syntax.
Like this
retryable(SomeExceptionClass, args...);
over this
retryable(SomeExceptionClass)!(args...);
Cheers!
Jarrett Billingsley Wrote:
> "Hans-Eric Grönlund" <hasse42g at gmail.com> wrote in message
> news:fmnv6b$1hi6$1 at digitalmars.com...
> > Cool, not exactly what I was looking for, but I can use it to solve the
> > problem - a little differently than I'd expected.
> >
> > Just out of curiosity: In Delphi (Object Pascal) one can assign a class
> > type to a variable, like so:
> >
> > type
> > TAClass = class
> > ...
> > end;
> >
> > TAClassClass = class of TAClass;
> >
> > procedure do_something_with_class(AClass: TAClassClass);
> > begin
> > ...
> > end;
> >
> > Can something similar be done in D?
>
> Depends on what you want to do. Do you want to do compile-time stuff? Then
> templates are the way to go. Do you want to something at runtime with the
> class? Then RTTI is the way to go. typeid(AnyTypeReally) gets you an
> instance of the TypeInfo class which is automatically generated for every
> type in your program. Runtime introspection and stuff is currently really
> weak in D, since the compile-time stuff is (usually) sufficient, more
> expressive, and faster.
>
> "What do you want to _do_?" is probably the most important question here.
> Asking how to mechanically translate a piece of code from another language
> into D is not necessarily the best way to go about it, especially if the
> source language is one that not many people have experience with (Delphi is
> _reasonably_ popular but I doubt many people here have used it).
>
>
More information about the Digitalmars-d-learn
mailing list