Terje Slettebų <[EMAIL PROTECTED]> writes: >>From: "David Abrahams" <[EMAIL PROTECTED]> > >> Aleksey and I are trying to think of a simple metaprogramming >> problem which we could use as a sort of "Hello World" example for >> the MPL. This seems to be a rather hard problem. Aside from being >> short, a C++ "hello, world" introduces only two library components, >> cout and endl (three if you count operator<<), the problem it >> solves, "printing something", is most programmers will want to do, >> and it gives a small rush of excitement when you see it work. >> >> However, it's hard to "see a metaprogram work" except by >> error/warning, and it's hard to demonstrate much of any practical >> use with a very small number of library components. Some of the >> simplest jobs involve numerical computation at compile-time, but I >> don't really want to show that right off the bat because: >> >> a) of the syntactic/mental overhead of using the type wrappers >> >> b) The eye is easily confused by code which mixes placeholders (e.g. >> "_1") in expressions with numeric constants (e.g. "2"). >> >> Thoughts? > > How about implementing one of the "classic" metaprograms, such as > factorial, or prime number finding (in credit to Erwin Unruh, who > had a compile-time prime number program as one of the first ever > metaprograms in C++. :) ), using MPL idioms? The results don't > necessarily have to be printed out at compile-time (Erwin Unruh > printed the results using compiler-warnings, but that is of course > highly implementation dependent).
I just got finished saying that we'd like to avoid anything which does primarily numerical computation. > > "Hello, world" in compile-time programming doesn't necessarily have > to be the same kind of program as in run-time programming, since the > way it works is different. Of course. We just want the example to have most of the attractive properties of "hello, world" that I listed in my first paragraph. -- David Abrahams [EMAIL PROTECTED] * http://www.boost-consulting.com Boost support, enhancements, training, and commercial distribution _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost