>From: "Yitzhak Sapir" <[EMAIL PROTECTED]>

> I think storing the text "Hello world!" in a vector
>
> typedef vector13_c<char,
>     'H','e','l','l','o',' ',
>     'w','o','r','l','d','!','\n'> hello_world;
>
> And then using functors to print it such as:
>
> template <class Prev, class T> struct print
> {
>     static void eval()
>     {
>         Prev::eval();
>         std::cout.put(T::value);
>     }
> };
>
> fold<vector,...>::type::eval();
>
> would work as an hello world.  It introduces two main concepts (fold,
> vector), shows how MPL can be used for loop unrolling (on proper
> compilers, the entire Hello world text would be unrolled into
> successive calls cout.put), and makes sense for most people as an "Hello
> world".

I was thinking of something like this, too, before I sent the first posting.
However, I wondered if it might be too "far out" :) as an example, i.e. fun,
but perhaps not much practical use. For fun, I posted a program that did
something similar, a few months ago. I didn't find it in the archive, now,
but from my own copy, the main() looked like this:

int main()
{
typedef String<'H','e','l','l','o',',',' '>::Result Str1; // Str1="Hello,"
typedef String<'w','o','r','l','d','!'>::Result Str2; // Str2="world!"

typedef Loki::TL::Append<Str1,Str2>::Result Text; // Text = Str1 + Str2

insert<Text>(); // Write the characters in the typelist to the string "str"

std::cout << str << '\n'; // Prints "Hello, world!"
}



Regards,

Terje

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to