Boost препроцессорная библиотека

У меня возникли проблемы с расширением до базового значения

# include <boost/preprocessor/cat.hpp>

#define REL_ITERATION_1 1
#define REL_FRAME_ITERATION(i) BOOST_PP_CAT(REL_ITERATION_, i)
#define REL_ITERATION_PARAMS_2 REL_FRAME_ITERATION(1)
#define REL_FRAME1(i)           BOOST_PP_CAT(REL_ITERATION_PARAMS_, i)
#define REL_FRAME2(i)           REL_ITERATION_PARAMS_##i
REL_FRAME1(2)
REL_FRAME2(2)

Вот вывод.

BOOST_PP_CAT(REL_ITERATION_, 1)
1

У кого-нибудь есть идеи, почему первый звонок не совпадает со вторым? Я думал, что справляюсь с использованием препроцессора, но я просто не понимаю этого. 🙁

1

Решение

Не берите в голову. Я пропустил ту часть в документации, где говорится, что если она расширяется до макроса BOOST_PP_CAT (), она не будет расширяться.

Doh!

0

Другие решения

Других решений пока нет …