[boost] DRYing BOOST_FUSION_ADAPT_STRUCT with decltype/Boost.TypeOf ?