boost :: mpl :: for_each sin instanciar

Tomando el siguiente ejemplo, me pregunto si hay una alternativa aboost::mpl::for_each, que llama a un Functor sin ningún argumento.

#include <boost/mpl/vector.hpp>
#include <boost/mpl/for_each.hpp>

struct EasyFixEngineA { static const char* const name() { return "a"; } };
struct EasyFixEngineB { static const char* const name() { return "b"; } };

struct Registrator {
    // Would prefer a template<class T> void operator()()
    template<class T> void operator()(T t) {
        RegisterInFactory<EasyFixEngine, T> dummy(T::name());
    }
};

// ...
typedef boost::mpl::vector<EasyFixEngineA,EasyFixEngineB> Engines;
boost::mpl::for_each<Engines>(Registrator());

Parece quefor_each está instanciando por defecto los tipos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta