On 8/30/13 11:20 AM, Namespace wrote:
Typedef was useful not for poking around new type with same properties - new name of existing type, but for non-trivial default value:typedef int myint = 1; void main() { myint my; assert(my is 1); } Alias does not provide this feature, so D hadn't become better with this depreciation (actually the opposite). Nor it had with delete operator depreciation for the replacement of destroy, which like in case with typedef, does not cover full old feature functionality (and functionality what destroy() does provide is useless in many cases). I consider both depreciations as mistakes.Thanks for explanation. I agree that the deprecation of typedef and delete is/was a mistake, and IMO the deprecation of scope and the library fix scoped is the same mistake.
* typedef: it was so ill defined, bringing it any closer to sanity would've broken someone's code.
* delete: a festering dung of unsafety straight in the middle of the language. If there's enough argument that the functionality of delete is actually desirable we can always add a function for that.
* scope: cute and dangerous in equal proportions - great for a movie character, terrible for language design.
Andrei
