#include struct foo {}; namespace boost { namespace hof { template<> struct unpack_sequence { template constexpr static auto apply(F&&, S&& s) BOOST_HOF_RETURNS(s.bar); }; } int main() { boost::hof::unpack(boost::hof::always(1))(foo{}); }