Proposal: user defined attributes
Jacob Carlborg
doob at me.com
Tue Mar 20 01:54:31 PDT 2012
On 2012-03-19 22:00, Andrei Alexandrescu wrote:
> I salute creative uses of the language over defining new features.
>
> Andrei
The actual point of user defined attributes it to be able to create
domain specific attributes so we don't have to add new features to the
language. This is also to have a sane syntax for the attributes.
I think in several cases D could have chose to implement a more general
feature but instead implemented a very specific feature or hack.
Example:
If D supported passing delegates to a function after the function call
several language features could have been implemented in the library
instead.
void synchronized (void delegate () dg)
{
try
{
lock();
dg();
}
finally
unlock();
}
synchronized {
// do something
}
In the same way foreach can be implemented in a library function:
void foreach (T) (T[] arr, void delegate (T) dg)
{
for (size_t i = 0; i < arr.length; i++)
dg(arr[i]);
}
auto arr = [3, 4, 5];
foreach (arr ; e // this is the parameter to the delegate) {
writeln(e);
}
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list