Как правило, я использовал бы boost::mpl::for_each<>()
для перемещения по boost::mpl::vector
, но для этого требуется функтор с функцией шаблона, объявленной следующим образом:
template<typename T> void operator()(T&){T::staticCall();}
Моя проблема заключается в том, что я не хочу, чтобы объект T был создан for_each<>
. Мне вообще не нужен параметр T в operator()
. Есть ли способ выполнить это или альтернативу for_each<>
, которая не передает объект типа T функции шаблона?
Оптимально, я хотел бы, чтобы определение operator() выглядело так:
template<typename T> void operator()(){T::staticCall();}
И, конечно же, я не хочу, чтобы T был создан вообще до вызова. Любые другие советы/предложения также приветствуются.