Convert this C define to D

Regan Heath regan at netmail.co.nz
Tue May 22 06:34:08 PDT 2007


Daniel Keep Wrote:
> Regan Heath wrote:
> > Hi all,
> > 
> > I have this C macro:
> > 
> > #define STACK_OF(type) STACK
> > 
> > usage:
> > 
> > struct foo {
> >   STACK_OF(Bob) bobStack;
> > }
> > 
> > lets ignore the fact that the replacement STACK doesn't include with the type it was given, in this case/stage it's not important.
> > 
> > I feel like I should be able to replace this C macro with a template/mixin of some kind but as templates/mixins aren't my strongest d-foo (kungfoo) technique I figured I had best ask for opinions.
> > 
> > Regan
> 
> Assuming that STACK is an actual type...
> 
> template STACK_OF(type)
> {
>     alias STACK STACK_OF;
> }

So, using the above this:

struct foo {
  STACK_OF(Bob) bobStack;
}

results in/becomes/is equivalent to this:

struct foo {
  STACK  bobStack;
}

?

Yes, STACK is a type, a structure which has previously been defined.

Regan


More information about the Digitalmars-d-learn mailing list