map kinds of Ranges
Don
nospam at nospam.com
Wed May 25 08:45:30 PDT 2011
Steven Schveighoffer wrote:
> On Wed, 25 May 2011 10:59:46 -0400, Don <nospam at nospam.com> wrote:
>
>> Robert Clipsham wrote:
>>> On 24/05/2011 04:28, Jonathan M Davis wrote:
>>>>> Thoughts on this?
>>>>
>>>> I believe that the best and most likely to be implemented syntax
>>>> which has
>>>> been suggested (it was Andrei's idea IIRC) is to simply add optional
>>>> clauses
>>>> to attributes. So, instead of pure, you'd do pure(condition). If the
>>>> condition
>>>> is true, the templated function it's on is pure. If the condition is
>>>> false,
>>>> then the function isn't pure. Don't expect pure to become @pure or
>>>> nothrow to
>>>> become @nothrow though. I think that at this point, any attribute
>>>> which is a
>>>> keyword is going to stay one, and any attribute that has @ on the
>>>> front of it
>>>> is going to stay that way as well.
>>>>
>>>> - Jonathan M Davis
>>> Wouldn't it make sense to follow the same syntax as auto ref? auto
>>> pure, auto nothrow, auto @safe etc? (Although I guess that doesn't
>>> allow for conditions, nevermind :<)
>>
>> 'auto ref' is one of worst syntax anomalies in the language. It should
>> be a single keyword -- eg, 'autoref' -- it has nothing in common with
>> the other use of 'auto', and it's not necessarily 'ref'.
>
> The current implementation is incorrect. In a correct implementation
> auto ref *is* always ref.
>
> -Steve
You're saying this example from the spec shouldn't compile?
auto ref foo() { return 3; } // value return
More information about the Digitalmars-d
mailing list