File preprocessor.hpp¶
File List > backends > cxx > include > zmbt > core > preprocessor.hpp
Go to the documentation of this file
#ifndef ZMBT_CORE_PREPROCESSOR_HPP_
#define ZMBT_CORE_PREPROCESSOR_HPP_
#include <boost/preprocessor.hpp> // IWYU pragma: export
#define ZMBT_PP_NS_OPEN(s, state, ns) namespace ns {
#define ZMBT_PP_NS_CLOSE(s, state, ns) }
#define ZMBT_PP_NS_OPEN_ALL(...) BOOST_PP_SEQ_FOR_EACH(ZMBT_PP_NS_OPEN, , BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__))
#define ZMBT_PP_NS_CLOSE_ALL(...) BOOST_PP_SEQ_FOR_EACH(ZMBT_PP_NS_CLOSE, , BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__))
#define ZMBT_PP_INJECT_CODE_INTO_NS(code, ...) \
ZMBT_PP_NS_OPEN_ALL(__VA_ARGS__) \
code \
ZMBT_PP_NS_CLOSE_ALL(__VA_ARGS__)
#endif // ZMBT_CORE_PREPROCESSOR_HPP_