Terje Slettebų wrote: > > >From: "Jason House" <[EMAIL PROTECTED]> > > > I had 2 thoughts today... > > > > 1. Is it at all useful/possible to use a lambda-like notation? > > In what way? Could you have given a rough syntax-example? > > An example in BLL is: > > std::for_each(v.begin(), v.end(), std::cout << _1 << '\n');
Thinking about it more, I don't know how doable it is for the first 3 parameters... But what about: /* brain dead function to serve as example */ std::string printable(char z) {return z=0?"\0":std::string(z);} char x[7] = "foobar"; std::cout << io_format<char[N]>("{", "}", ", ", "'" << printable(_1) << "'") << "x = " << x; output: x = {'f', 'o', 'o', 'b', 'a', 'r', '\0'} alternates like (printable(_1) or just "'" << _1 << "'" would also work. That makes the visitor possible, but also makes the inspiring case for the extra inputs to io_format be a little more readable... My original thoughts for the first 3 parameters was something like io_format<_>("start" << _1 << "middle" << _2 << "end") But I think that deciphering that properly in code would be tough, and might not actually provide any extra power (for the first 3 parameters). The only way that I see to get extra power would probably require making first, middle, last seperate inputs, but then you come right back to the "start, end, middle" verses "start, middle, end" ordering... :( > > 2. Why are we restricting the output to strings? > > That _is_ a natural question, isn't it? :) > > > Couldn't the types of the 3 delimiter strings actually be > > implicit template parameters? > > (the char/wchar versions made me think of that) > > Yes, that is how it currently works; Looks like I should read your code more thoroughly. I asked because I didn't remember any conclusion like that in the list discussion. Sorry about the stupid question :P _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost