void apply(Source&& src, Destination& dest, boost::mpl::false_) const { try { dest.set_result(src.get()); } catch (...) { dest.set_exception(boost::current_exception()); } }
void apply(Source&& src, Destination& dest, boost::mpl::true_) const { try { src.get(); dest.set_result(util::unused); } catch (...) { dest.set_exception(boost::current_exception()); } }