Макросы C ++, расширяющие n на 1, 2, 3, ... n - PullRequest
0 голосов
/ 22 февраля 2012

Я пытаюсь создать шаблонный класс для матриц / векторов

Я хочу развернуть макрос в нечто вроде следующего

#define ELEMENTS(M, N) expands into

m00, m01, m02, ... , m0N,
m10, m11, m12, ... , m1N,
...
...
...
mm0, mN1, mN2, ... , mMN

Возможно ли это?

1 Ответ

7 голосов
/ 22 февраля 2012

То, что вы хотите, это BOOST_PP_ENUM_PARAMS .

BOOST_PP_ENUM_PARAMS само по себе является лишь оберткой вокруг BOOST_PP_REPEAT.Рассмотрение реализации показывает, что она довольно громоздка и также зависит от некоторых хитрых заголовков, таких как auto_rec.hpp.Реализация чего-то подобного, вероятно, более обременительна, чем ручная работа.Так что, если вы не хотите использовать Boost, я бы предпочел этого не делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...