I have a feature request: "Named enum scope inference"
Mehrdad
wfunction at hotmail.com
Sat Sep 29 16:54:41 PDT 2012
On Saturday, 29 September 2012 at 02:57:42 UTC, David Piepgrass
wrote:
>> I have a feature request: "Named enum scope inference"
>>
>> The idea is, that whenever a named enum value is expected, you
>> don't need to explicitly specify the scope of the enum value.
>> This would reduce redundancy in typing, just like automatic
>> type inference does.
>>
>> Examples:
>> ---------
>>
>> enum MyDirection { forward, reverse }
>> struct MyIterator(MyDirection dir)
>> {
>> ...
>> }
>>
>> int forward = 42; // Doesn't interfere with the next line...
>> auto itr = MyIterator!forward(); // Infers MyDirection.forward
>
> I like the spirit of this feature, but as Alex pointed out,
> ambiguity is possible (which could theoretically cause errors
> in existing code) and while I'm not familiar with how the
> compiler is implemented, my spidey-sense thinks that what
> you're asking for could be tricky to implement (in a language
> that already has a very large amount of rules and features.)
> Plus, I don't like the fact that when you see something like
> "MyIterator!forward" by itself in code, there is no obvious
> clue that forward is an enum value and not a class name or a
> variable. So there is a sort of decrease in clarity of the
> entire language by increasing the total number of possible
> meanings that an identifier can have.
>
> So I think this feature would need a more clear syntax,
> something to indicate that the value is an enum value. I don't
> currently have a really good counterproposal though....
+1
More information about the Digitalmars-d
mailing list