//[hello_world_redux #include #include template struct stream_expr { static const boost::yap::expr_kind kind = Kind; Tuple elements; template decltype(auto) operator<< (T && x) { return boost::yap::value(*this) << std::forward(x); } }; int main () { auto cout = boost::yap::make_terminal(std::cout); cout << "Hello" << ',' << " world!\n"; return 0; } //]