boost/mpl/list.hpp
has the following code:
#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
When I tried compiling it with the Vivado HLS C++ compiler, I get an error:
/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)
I concluded that the preprocessor appends the empty comment /**/
to the filename being included. Removing it (with the preceding line's backslash \
) solves the issue, although there are many other such empty comments causing new errors.
Why does the AUX778076_LIST_HEADER
macro have this empty comment to begin with? Is it correct to expect BOOST_PP_STRINGIZE
to remove it?