Lars T. Kyllingstad wrote:
Jacob Carlborg wrote:
On 11/10/09 01:27, Bill Baxter wrote:
On Mon, Nov 9, 2009 at 4:09 PM, Walter Bright
<newshou...@digitalmars.com>  wrote:
Looks like Bill Baxter is giving a presentation on D Nov. 18!

http://www.nwcpp.org/

Yep, that's right, and I'd be quite grateful to you smart folks here
if you could share your meta-programming favorites with me!   If
you've got a real-world example of meta-programming in D that you
think is particularly handy, then please send it my way

I'm looking for small-but-useful things that are easy to explain, and
make something easier than it would be otherwise.  Things like places
where static if can save your butt,  or loop unrolling,  and passing
code snippets to functions like in std.algorithm.

Things like a compile-time raytracer or regexp parser (though quite
cool!) are not what I'm after.  Too involved for a short talk.

--bb

This is invaluable to me, which makes it possible to do some form of duck typing at compile time:

static if (is(typeof({
/* does this compile */
})))

There are forces at work (Don, that is) attempting to get rid of that very construct and replace it with something better:

http://www.digitalmars.com/d/archives/digitalmars/D/Proposal_Replace_traits_and_is_typeof_XXX_with_a_magic_namespace_._99914.html

In my humble opinion, is(typeof({...})) is an ugly creature. I really don't think it should be put under a spotlight as a good example of D metaprogramming. If anything, please use __traits(compiles, {...}) instead.

Who cares about "ugly" syntax, if the idea is bad in the first place?

-Lars

Reply via email to