On 2010-12-12 19:37, Nick Sabalausky wrote:
"Nick Sabalausky"<a...@a.a> wrote in message
news:ie34p4$dg...@digitalmars.com...
"Adam D. Ruppe"<destructiona...@gmail.com> wrote in message
news:ie2sv2$2th...@digitalmars.com...
We already have a D block syntax!
=====
void myfun(void delegate() lol) {
lol();
}
void main() {
myfun = {
assert(0, "lol");
};
}
======
Totally compiles. :-P
It works with delegate arguments too!
========
void myfun(void delegate(string) lol) {
lol("say it ");
}
void main() {
myfun = (string what) {
assert(0, what ~ " lol");
};
}
==========
Whoa.
(note that while I'm only a little serious here - that actually
looks fine to me - I don't think the language needs a change
here. }); doesn't bother me one bit.)
I'm sure that's going to disappear when D's properties get implemented as
intended.
And FWIW, it looks like operator-overload-abuse to me.
This is operator overload abuse:
myfun in (string what) {
assert(0, what ~ " lol")
};
"myfun" would return a struct that has defined an opIn method.
--
/Jacob Carlborg