Вопросы по теме 'boost-preprocessor'
Макросы препроцессора C: проверьте, был ли объявлен токен
Это для экспертов по препроцессорам C :
Как я могу объявить enum со списком некоторых идентификаторов, а затем во время оператора switch проверить, был ли идентификатор включен в список?
Пример того, что мне нужно:
typedef enum { e1, e2,...
1880 просмотров
schedule
06.05.2022
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 просмотров
schedule
14.08.2022
Пропустить препроцессор 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 просмотров
schedule
11.03.2024
Использование препроцессора boost для преобразования кортежа в строку
Я новичок в использовании препроцессора boost. Я хочу использовать эту библиотеку для создания имени из кортежа, например, у меня есть такой кортеж (float, string, int, bool) , и я хочу построить что-то вроде этого "Foo<float, string, int,...
904 просмотров
schedule
21.07.2022
Генерация шаблонного кода путем преобразования аргументов в строковые литералы.
В одном из своих проектов я пытаюсь реализовать более общий подход к написанию наших собственных упрощенных XML-файлов. Для этого я успешно использовал boost-fusion .
Для каждого нового формата файла XML клиент должен написать следующее. Просто...
264 просмотров
schedule
20.04.2024
Как выполнить итерацию двух последовательностей препроцессора Boost одновременно?
Мне было интересно, можно ли сделать следующее с помощью последовательностей препроцессора Boost. (В большинстве вопросов SO, а также в примерах препроцессора Boost говорится только об одной последовательности)
#define seq1 (a)(b)(c)
#define seq2...
888 просмотров
schedule
05.06.2023