On Monday, 7 May 2012 at 19:29:26 UTC, Steven Schveighoffer wrote:
I think it was more that the whole concept was flawed -- typedef int myint never really did exactly what you wanted it to.

For example:

myint m = 1; // ok
m += 5; // ok
m = m + 5; // error?

It's definitely an error, because 5 isn't myint.
Of course, it wouldn't be an error in C code, but keeping source compatibility isn't a goal either.

Wouldn't a global search-and-replace that replaced "typedef" with "alias" when porting C code have fixed 99% of this issue, practically speaking?

Things got even worse when you weren't typedef'ing a basic type.

It sounds so trivial to fix though (especially since it's not silent breakage)... Would you mind giving another (actual) example (perhaps with a custom type?) that came up, and which shows the extent of the problem and why it was difficult to solve without disallowing typedef entirely? I'm having a hard time seeing why the problem was so difficult (or tedious) to fix... a search/replace for typedef/alias would've fixed all (or almost) all the cases when porting C code, right?

I think the advents in type construction in D2 have made typedef almost completely implementable as a library type, and we can do it the way it was intended! Don't forget, typedef was there when we had no "alias this" and no blanket operator overloading.

Well, I'll have to try it and see -- I neither agree nor disagree.
Right now I'm just trying to understand the problems it was causing, though.

When all you want is an opaque type that just can't be implicitly cast from something else (such as HANDLE) typedef is a crude and inaccurate method to do that.

I don't really agree with that (though an example as I asked for above^ could definitely make me agree)

Maybe it wasn't you, let me check...

http://forum.dlang.org/post/jnueti$1opd$1...@digitalmars.com

OK, it was you, but under a different context, and I actually don't see you mentioning C there. Sorry for the confusion/accusation. I have a hard time keeping track of all these different threads in my head :(

Haha no worries. :)

Seriously though, I get what you are saying. [...] The chances of your pull request being validated and pulled -- if it makes a good improvement to phobos -- are much much higher than they used to be.

Awesome, I'll probably try my hand at it (probably around next week). :)

Reply via email to