Taking the following example, I wonder whether there is an alternative to boost::mpl::for_each, which does call a Functor without any arguments.
boost::mpl::for_each
You should use the three parameter for_each:
mpl::for_each(Registrator())
Then the instances you get will be of single_view.
single_view