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

Является ли MPL pos недокументированной метафункцией?
В документации BOOST MPL есть следующий пример кода. алгоритма find : typedef vector<char,int,unsigned,long,unsigned long> types; typedef find<types,unsigned>::type iter; ... BOOST_MPL_ASSERT_RELATION( iter::pos::value, ==, 2 );...
282 просмотров
schedule 25.04.2023

Проблема с метафункцией для определения класса-в-шаблоне-класса
У меня есть код со следующей структурой: template <typename T> struct Foo { struct Bar { int data; }; }; Я хочу написать метафункции, которые сообщат мне, является ли тип Foo или Bar. Первый простой: template <typename...
302 просмотров

ошибка аргумента метафункции операции преобразования boost::mpl
В веб-документации Boost MPL , в нем говорится о передаче классов метафункций в качестве аргументов для boost::mpl::transform. Аргумент метафункции в этом случае должен быть какой-то операцией, выполняемой над mpl::ForwardSequence. Однако при...
784 просмотров

Проверить наличие глобального оператора‹‹ в C++
Здравствуйте, я хочу написать две реализации функции-члена to_string следующим образом: template <typename T0> class foo { public: std::string to_string(); public: T0 m_Value; }; template <typename T0> std::string...
705 просмотров
schedule 11.02.2022

шаблон С++: boost::mpl::transform с параметром шаблона шаблона
Теперь, когда на мой предыдущий вопрос есть решение, возникает больше вопросов. Я хочу использовать метафункцию wrap_into_container с boost::mpl::transform, например: #include <vector> #include <list> #include...
577 просмотров
schedule 29.04.2024

С++ Зарегистрируйте переменные члена класса во время компиляции
Я пытаюсь реализовать систему аннотаций в стиле Java, используя boost MPL и fusion. Зачем это нужно: мне нужно аннотировать переменные-члены, чтобы иметь некоторые специальные функции времени выполнения. Я регистрирую их во время компиляции в моем...
596 просмотров

Время выполнения находит первое совпадение в boost::mpl::vector
У меня есть boost::mpl::vector , и теперь мне нужен шаблон (функция), который "перебирает" типы до тех пор, пока не будет найдено первое совпадение (во время выполнения). Что-то похожее на boost::fusion::find_if , но без sequence , являющегося...
449 просмотров
schedule 29.05.2022

Как я могу реализовать вложенный boost::mpl::fold
Как я могу реализовать вложенный boost::mpl::fold ? namespace mpl=boost::mpl; typedef mpl::vector_c<int,1,1,1> vec1; typedef mpl::vector_c<int,2,2,2> vec2; typedef mpl::vector_c<int,3,3,3> vec3; typedef...
246 просмотров
schedule 18.10.2022

Списки типов С++ 14, есть ли причина предпочесть «свободные функции» «методам» или наоборот?
Я вижу два возможных стиля реализации списков типов в C++ 11/14, и мне было любопытно, есть ли какая-то причина предпочесть один другому. Первый метод описан здесь и основан на библиотеке Boost MPL. В этом стиле вы определяете мета «свободные...
1217 просмотров

Получить индекс типа boost::variant с помощью boost::mpl
boost::variant имеет элементы types , которые представляют собой структуру boost::mpl. Есть ли способ получить индекс типа в этой структуре во время компиляции, так что во время выполнения я мог бы сделать if(myVariantInstance.which() ==...
995 просмотров
schedule 16.03.2023

boost accumulator_set: ожидать первичного выражения
Я новичок в библиотеке Boost. Мне нужна программа, которая могла бы вычислять минимальное, максимальное, среднее значение и дисперсию вектора расстояния (типа std::vector < double > ), и я написал следующий код std::vector < double >...
109 просмотров

Размер структуры во время компиляции минус заполнение
Я пытаюсь использовать Boost MPL и Fusion для расчета размера структуры без учета каких-либо дополнений. Это моя текущая лучшая попытка: Живой пример template<class T> constexpr std::size_t sizeof_members(void) { using namespace...
111 просмотров