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

Завершен ли препроцессор Тьюринга C99?
Обнаружив возможности препроцессора Boost , я обнаружил, что интересно: препроцессор C99 Тьюринг завершен? Если нет, то чего ему не хватает, чтобы не соответствовать требованиям?
18340 просмотров

Препроцессор Boost - странный результат
Проверьте следующий макрос: #define INPUT (char, "microsecond", "us")(int, "millisecond", "ms")(int, "second", "s")(int, "minute", "min")(float, "hour", "h") Цель состоит в том, чтобы добавить двойные скобки вокруг каждого кортежа, в...
327 просмотров

Руководство по усилению защиты BOOST (макросы препроцессора)
Мне трудно определить, какие макросы препроцессора я должен использовать с Boost для (1) инструментов отладки (таких как проверенные итераторы) и (2) элементов, связанных с безопасностью. Все, что я могу найти, это метапрограммирование...
343 просмотров
schedule 21.11.2022

Библиотека препроцессора Boost
У меня возникли проблемы с расширением до базового значения # include <boost/preprocessor/cat.hpp> #define REL_ITERATION_1 1 #define REL_FRAME_ITERATION(i) BOOST_PP_CAT(REL_ITERATION_, i) #define REL_ITERATION_PARAMS_2...
735 просмотров
schedule 13.04.2022

Генерация LUT BitCount во время компиляции
Допустим, мне нужно создать LUT, содержащую предварительно вычисленные значения счетчика битов (счетчик 1 бит в числе) для значений 0...255: int CB_LUT[256] = {0, 1, 1, 2, ... 7, 8}; Если я не хочу использовать жестко закодированные значения,...
458 просмотров
schedule 01.10.2022

Создание списка строковых аргументов макроса с вариативными параметрами и поздними расширениями
У меня следующая проблема - задано переменное количество аргументов макроса argX для создания списка строковых аргументов #argX Пример: LIST(A, B) -> "A", "B" LIST(A, B, C) -> "A", "B", "C" Я использую Boost, поэтому приведенный выше...
209 просмотров

Программа препроцессора Boost не будет компилироваться после перехода с Boost 1.55 на 1.57
Я написал несколько директив препроцессора для генерации функций для класса. С Boost 1.55 все работает нормально. Когда я пытаюсь перейти на Boost 1.57, у меня возникают странные ошибки компиляции. Программа: #include <iostream>...
759 просмотров
schedule 11.01.2024

Удалить пробелы из символа
Я использую последовательности препроцессора Boost для генерации enum s, поэтому, например, у меня есть такое определение, как #define DESERTS (Cheesecake)(Apple Pie)(Merengue) Теперь я хочу сгенерировать оба разумные enum class , а также...
123 просмотров
schedule 02.10.2022

Препроцессор: как использовать список для определения переменных и ввода функций
У меня есть три списка: один с целочисленными переменными (ilist), один с двойными переменными (dlist) и один с переменными std::string (slist) с определенными начальными значениями. Пример: ilist=(ilist1=init_val_1)(ilist2=init_val_2) Может ли...
33 просмотров
schedule 04.03.2024

Создать путь для директивы #include с помощью макроса
Я хотел бы включить пути к файлам, динамически создаваемые макросом для части моей программы, зависящей от целевой конфигурации. например, я хотел бы создать макрос, который будет вызываться следующим образом: #include TARGET_PATH_OF(header.h)...
7042 просмотров
schedule 18.12.2022

Условное расширение препроцессора C ++ на основе параметра
У меня есть макрос, который создает для меня класс. Я хочу предоставить конструктор, который принимает int , если сам класс не имеет int , указанного в качестве его типа. Макрос выглядит примерно так: CLASS_DECLARE(NAME, TYPE)\ class NAME {...
600 просмотров

Использование препроцессора boost для итеративного вызова шаблона с переменным числом аргументов
Предположим, у меня есть вариативный шаблон: template<typename... Args> class Foo; Этот вариативный шаблон рекурсивно генерирует другой шаблон, пока не достигнет одного аргумента Foo на последнем уровне. Теперь я хочу иметь макрос,...
623 просмотров
schedule 09.09.2023

Как перебирать индексы контейнера Boost Multi_index?
У меня есть контейнер boost::multi_index::multi_index_container с шестью разными индексами ordered_non_unique . Идея состоит в том, чтобы иметь возможность сортировать данные по этим шести индексам (как средство ранжирования решений с...
670 просмотров

Макросы с переменным числом аргументов: повторное использование аргументов с переменным числом аргументов (Boost.Fusion)
Я работаю над своего рода фреймворком "данные-переменные". Здесь структуры определены и адаптированы как последовательности Boost.Fusion с использованием макроса BOOST_FUSION_DEFINE_ASSOC_STRUCT . Краткий контекст: Чтобы определить две...
164 просмотров

Кормление boost::format с вариативными параметрами
Я пытаюсь написать функцию ведения журнала, которая принимает список аргументов с переменным числом аргументов и печатает в безопасном месте. vprintf кажется очевидным ответом, но я не могу найти безопасный способ обработки, когда строка формата...
350 просмотров