need clarification: will typedef, C struct initialization, etc.
Justin Spahr-Summers
Justin.SpahrSummers at gmail.com
Mon May 31 21:05:47 PDT 2010
On Mon, 31 May 2010 23:31:18 -0300, Leandro Lucarella <llucax at gmail.com>
wrote:
>
> Justin Spahr-Summers, el 31 de mayo a las 16:41 me escribiste:
> > On Tue, 01 Jun 2010 06:05:50 +0800, Lionello Lunesu
> > <lio at lunesu.remove.com> wrote:
> > >
> > > On 1-6-2010 5:38, Andrei Alexandrescu wrote:
> > > > On 05/31/2010 03:54 PM, bearophile wrote:
> > > >> Andrei Alexandrescu:
> > > >>> typedef is gone.
> > > >>
> > > >> *mewls* I have shown here some examples of typedef usage, and I'll
> > > >> keep posting few more in future. I'd like to pull it back from the
> > > >> grave and keep it :-)
> > > >
> > > > It's wasted time. typedef is gone.
> > > >
> > > > Andrei
> > >
> > > :((
> > >
> > > I also miss typedef. I thought D had a great opportunity to fix it.
> > >
> > > Take something like the Windows headers. It mostly consists of typedefs
> > > for handles and whatnot. Without typedef you'd have to use alias and
> > > type safety is out of the windows.
> > >
> > > So what would be the way to translate those Windows headers? Create a
> > > unique struct for each old typedef? With alias this, and a ctor? Well,
> > > if that's the way to do it now, why not make typedef a shortcut for
> > > exactly that!?
> >
> > I'm a fan of typedef, personally, but the example you mentioned *would*
> > be solved using just an alias. 'alias' provides the same functionality
> > as C/C++'s 'typedef' and more.
>
> I think he talks about this difference:
>
> alias int a1;
> alias int a2;
> typedef int t1;
> typedef int t2;
>
> void fa(a2 a) {}
> void ft(t2 t) {}
>
> void main() {
> a1 a = 5;
> fa(a); // <--- compiles fine
> t1 t = 10;
> ft(t); // <--- error
Understood, but he mentioned translating C headers. D's 'typedef' has no
ready equivalent in C or C++.
More information about the Digitalmars-d
mailing list