So, User-Defined Attributes
Philippe Sigaud
philippe.sigaud at gmail.com
Fri Jan 4 09:10:54 PST 2013
Max:
> transferAttributes attaches the attributes to the local declaration. I'd
> be surprised if they were copied to the outer declaration. Or did you mean
> attributing the return *type*?
The declaration. The type, I guess I'd use an alias. Though, I guess the
alias syntax limitations would probably forbid that.
So yes, the local declaration is attributed, that works. How do I propagate
the attribute to the returned value?
Also, dropping the auto return is not accepted by the compiler, even though
>> it seems natural for me:
>>
>> @(__traits(getAttributes, origin)) To transferAttributes(alias origin,
>> To)(To t)
>> {
>> @(__traits(getAttributes, origin)) To temp = t;
>> ...
>>
>> 'origin' is a template parameter and should be reachable to determine the
>> return type.
>>
>
> That's a bug.
Already filed?
> Anyway, you are attributing the function declaration here, not the return
> type
Hmm. Would @(attr) { ReturnType } functionName (...) work?
> , which is another problem as it looks we do not have a syntax for that
> and "auto" is required:
>
> auto foo()
> {
> @attr struct S {}
> return S.init;
> }
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20130104/f50cf844/attachment.html>
More information about the Digitalmars-d
mailing list