Вопросы по теме 'boost-preprocessor'

Макросы препроцессора C: проверьте, был ли объявлен токен
Это для экспертов по препроцессорам C : Как я могу объявить enum со списком некоторых идентификаторов, а затем во время оператора switch проверить, был ли идентификатор включен в список? Пример того, что мне нужно: typedef enum { e1, e2,...
1880 просмотров

X-Macros с Boost.Preprocessor?
Отделив это от моего вопроса о добавлении к макросам CPP : Кто-нибудь здесь использовал типы данных библиотеки Boost.Preprocessor для реализации чего-то вроде X-macro?
978 просмотров
schedule 03.07.2022

Следите за расширением макросов
Я хочу отслеживать расширение макроса - сколько раз макрос был расширен и каковы аргументы, когда произошло расширение. Например, У меня макрос может выглядеть так: #define mymacro(x) int x и в моем коде есть что-то вроде этого:...
449 просмотров
schedule 12.05.2024

Генерация массива препроцессора
Я пытаюсь создать макрос для замены определения функции. Этот макрос должен прописать имя функции в каком-то массиве, чтобы какой-то другой макрос мог что-то сделать с элементами массива. Я хотел бы сделать это, чтобы иметь список функций, которые...
1947 просмотров
schedule 14.04.2023

С++ 11, как проксировать функцию класса, имеющую только свое имя и родительский класс?
Интересно, можно ли с помощью boost::mpl/preprocessor или некоторых функций noce C++11 создать прокси-функцию из типа класса и имени функции. Скажем, у нас было: inline void set_email(const ::std::string& value); inline void...
883 просмотров

Пропустить препроцессор Boost, если переменная пуста
У меня есть следующий макрос препроцессора повышения для создания функции extern "C" EXPORT out name(BOOST_PP_SEQ_FOR_EACH_I(PARAMETER_LIST, 0, BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__))) Это прекрасно работает, если только __VA_ARGS__ не пуст....
1318 просмотров
schedule 01.06.2022

почему этому макросу PP_ARG_COUNT нужен PP_EXPAND?
#include <type_traits> #include <iostream> using namespace std; // Expand #define PP_EXPAND(X) X // Counter Arguments count #define PP_ARG_COUNT(...) PP_EXPAND( PP_ARG_POPER(__VA_ARGS__, 5, 4, 3, 2, 1, 0) ) #define PP_ARG_COUNT2(...)...
74 просмотров
schedule 13.02.2023

Можем ли мы реализовать макрос max или min, который может принимать переменные аргументы (более двух параметров)
Я хочу реализовать новый макрос max/min, который может принимать более двух параметров, например: #define max( ... ) ... а затем я могу использовать его так: max( p0, p1, p2, p3 ) max( 2, 4, 100 ) max( 1,2,3,4,5,6,7 ) -> 7 может...
1857 просмотров
schedule 04.01.2023

Создание элементов из аргументов макроса с переменным числом аргументов
Я пытаюсь создать структуры вершин в OpenGL, используя макросы для определения основ вершин, и макрос в конечном итоге генерирует шаблонный код, необходимый для использования с OpenGL ( glGetAttribLocation , glEnableVertexAttribArray ,...
218 просмотров
schedule 24.08.2023

Возможны ли двумерные последовательности с помощью Boost.Preprocessor?
Последовательности Boost.PP ограничены 256 элементами. Чтобы обойти это, я хочу использовать двумерные последовательности или последовательность последовательностей, которые будут определены следующим образом: ((0)(1)(2)...(255))((256)(257))...
444 просмотров

Использование препроцессора boost для преобразования кортежа в строку
Я новичок в использовании препроцессора boost. Я хочу использовать эту библиотеку для создания имени из кортежа, например, у меня есть такой кортеж (float, string, int, bool) , и я хочу построить что-то вроде этого "Foo<float, string, int,...
904 просмотров
schedule 21.07.2022

Генерация шаблонного кода путем преобразования аргументов в строковые литералы.
В одном из своих проектов я пытаюсь реализовать более общий подход к написанию наших собственных упрощенных XML-файлов. Для этого я успешно использовал boost-fusion . Для каждого нового формата файла XML клиент должен написать следующее. Просто...
264 просмотров

Как выполнить итерацию двух последовательностей препроцессора Boost одновременно?
Мне было интересно, можно ли сделать следующее с помощью последовательностей препроцессора Boost. (В большинстве вопросов SO, а также в примерах препроцессора Boost говорится только об одной последовательности) #define seq1 (a)(b)(c) #define seq2...
888 просмотров