Am 06.11.2012 17:50, schrieb Walter Bright:
On 11/6/2012 8:42 AM, dennis luehring wrote:
Am 06.11.2012 16:18, schrieb Walter Bright:> On 11/6/2012 6:30 AM, dennis
luehring wrote:
 >   > Am 06.11.2012 14:14, schrieb Adam D. Ruppe:
 >   >> On Tuesday, 6 November 2012 at 07:55:51 UTC, Walter Bright wrote:
 >   >>> User Defined Attributes (UDA) are compile time expressions that
 >   >>> can be attached to a declaration.
 >   >>
 >   >> Hmmm, it didn't work on the most important place for my use case,
 >   >> function parameters:
 >   >>
 >   >> void a(["test"] int foo) {
 >   >>       pragma(msg, __traits(getAttributes, foo));
 >   >> }
 >   >
 >   > sad - but its still very young feature :)
 >   >
 >   > im using something like an description on my methods to describe 
parameter
 >   > "features" for an resource manager - something like "read", "write", 
"copy",
 >   > "read_write" etc.
 > But there's already out=write, read=all of them, read_write=ref, copy=not a 
ref
 > or an out.

and now expand that to an higher level manager that use such information for
implementing(generating) runtime loading and locking strategies in a tree/graph
based environment - based on the parameters needs ... i've got something like
that in C++ using its own interface description language and an generator

But D already has parameter attributes that cover those bases. What would UDAs
add to that? (I know C++ is deficient in this, which is why IDL was invented,
but I don't see what UDAs add to what D already provides - no IDL is needed for 
D).


just 2 questions:

1. what if my needs are beyond D?

for example my idl allows me to define a type based query source for parameters

CalculateStuff( TypeX [source="\\placement\(typeA|typeB|typeC)"] my_usage )

this defines the source of assignable objects to this method

2. what is the reason for stopping right before parameters? (except less coding on your side)


Reply via email to