Передача комментариев в макрос BOOST_PP_STRINGIZE

boost/mpl/list.hpp имеет следующий код:

#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
#   define AUX778076_LIST_HEADER \
BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE).hpp \
/**/
#else
#   define AUX778076_LIST_HEADER \
BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE)##.hpp \
/**/
#endif

#   include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_LIST_HEADER)
#   undef AUX778076_LIST_HEADER
#endif

Когда я пытался скомпилировать его с помощью компилятора Vivado HLS C ++, я получал сообщение об ошибке:

/usr/include/boost/mpl/list.hpp:36:13: fatal error: 'boost/mpl/list/list20.hpp /**/' file not found
#   include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_LIST_HEADER)

Я пришел к выводу, что препроцессор добавляет пустой комментарий /**/ к имени файла, включаемого. Удаление (с обратной косой чертой предыдущей строки \) решает проблему, хотя есть много других пустых комментариев, вызывающих новые ошибки.

Почему AUX778076_LIST_HEADER у макроса есть этот пустой комментарий для начала? Правильно ли ожидать BOOST_PP_STRINGIZE убрать это?

0

Решение

Задача ещё не решена.

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

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

По вопросам рекламы [email protected]