modified boost::fusion::for_each