const property don't wont return const reference to value
Monarch Dodra
monarchdodra at gmail.com
Mon Dec 24 08:25:05 PST 2012
On Monday, 24 December 2012 at 15:52:01 UTC, Jonathan M Davis
wrote:
> On Monday, December 24, 2012 14:32:55 monarch_dodra wrote:
>> "ref" is a function qualifier, not a type qualifier, so you
>> could
>> even write it as:
>> "const(ReturnType) foo() const ref;"
>>
>> So technically, it is symetric.
>
> I'm pretty sure that ref is nonsensical in that example. What
> would ref on a
> function even mean? It could be used on a function pointer, but
> then you'd
> have to have the function keyword in there. It makes no sense
> on a function
> prototype like you have there. If that compiles, it's because
> dmd allows you
> to put all kinds of modifiers on symbols where the modifier has
> no effect and
> arguably shouldn't be legal.
Wait, never mind that. I thought that was legal.
I was mentioning the fact that if you want to know if a function
returns ref, you have check that function's attributes:
http://dlang.org/phobos/std_traits.html#FunctionAttribute
>> I for one don't think this is a huge problem. There is *some*
>> confusion for those comming from C++, but they (we) have to
>> learn
>> D is not C++. Besides, I like the liberty of putting all
>> qualifiers on the line before the types, including const.
>>
>> If anything "const" *itself* is VERY confusing for new commers.
>> WAY more than the syntax used to qualify a function with it.
>
> You're likely to be told to move the const to the right if one
> of us notices
> it on the left in a pull request. I believe that quite a few of
> us consider it
> to be bad practice to put it on the left.
>
> - Jonathan M Davis
That's the way the ddoc is generated anyways: Everything on the
left.
More information about the Digitalmars-d-learn
mailing list