Я пытаюсь создать шаблонный класс для матриц / векторов
Я хочу развернуть макрос в нечто вроде следующего
#define ELEMENTS(M, N) expands into m00, m01, m02, ... , m0N, m10, m11, m12, ... , m1N, ... ... ... mm0, mN1, mN2, ... , mMN
Возможно ли это?
То, что вы хотите, это BOOST_PP_ENUM_PARAMS .
BOOST_PP_ENUM_PARAMS само по себе является лишь оберткой вокруг BOOST_PP_REPEAT.Рассмотрение реализации показывает, что она довольно громоздка и также зависит от некоторых хитрых заголовков, таких как auto_rec.hpp.Реализация чего-то подобного, вероятно, более обременительна, чем ручная работа.Так что, если вы не хотите использовать Boost, я бы предпочел этого не делать.
BOOST_PP_ENUM_PARAMS
BOOST_PP_REPEAT
auto_rec.hpp