id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 7633,Wanted: a way to force a nested result_type,Dave Abrahams,Thomas Heller,"For example, I had to use this: {{{#!c++ template struct void_function : F { typedef void result_type; void_function(F x) : F(x) {} }; template void_function make_void(F x) { return void_function(x); } }}} in order to get the following to work: {{{#!c++ inline std::ostream& operator<<(std::ostream& s, my_variant const& x) { using namespace boost::phoenix::placeholders; using namespace boost::phoenix; boost::apply_visitor( make_void(s << arg1), x ); // ^^^^^^^^^ HERE return s; } }}} Some libraries, like Boost.Variant, don't follow the {{{result_of}}} protocol.",Bugs,new,To Be Determined,phoenix,Boost 1.52.0,Problem,,,