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

Как я могу использовать boost::mpl::fold с boost::fusion::map?
Когда я пытаюсь скомпилировать это: #include <boost/fusion/container/map.hpp> #include <boost/mpl/fold.hpp> int main(int argc, char** argv) { typedef boost::fusion::map < boost::fusion::pair<int, const...
1265 просмотров
schedule 31.10.2022

Boost.MPL и генерация списка типов
Фон Это для менеджера памяти в игровом движке. У меня есть freelist , и я хотел бы иметь список времени компиляции, если они. (например, вектор MPL или Fusion). freelist соответствуют размерам выделения, и при выделении/освобождении объектов...
4242 просмотров

Преобразование вектора MPL в статический массив
Я написал некоторый код для создания boost::mpl::vector для использования в качестве таблицы поиска для факториальной функции, в качестве теста для более общей библиотечной функции, с помощью которой разработчик может создать таблицу поиска в виде...
1133 просмотров

Как получить тип относительно индекса времени выполнения?
Допустим, у меня есть boost::mpl::list< A, B, C ...> . Как получить доступ к одному из этих типов, получив значение индекса во время выполнения ? Это вообще возможно?
204 просмотров
schedule 23.03.2023

С++ запрещает перезаписывать виртуальную функцию
Я использую класс A из библиотеки и хочу добавить к нему некоторую функциональность через собственный класс B. Пользователь класса B должен быть производным от него, как если бы он производился от класса A. class A { public: virtual...
812 просмотров
schedule 08.04.2022

Boost MPL Placeholders и Lambda
В настоящее время я делаю некоторые доказательства на концептуальных примерах с boost::mpl, и у меня есть некоторые трудности с пониманием того, как лямбда-функция позволяет использовать заполнители. Я понимаю, что могу обернуть метафункции в...
1612 просмотров

Неоднозначная метафункция или неопределенный тип
Я новичок в метафункциях. Я хочу написать функцию, которая заменяет все совпадения определенного типа в составном типе на какой-то другой тип. Например: replace<void *, void, int>::type должно быть int * , replace<void, void,...
261 просмотров

оценка метапрограммирования шаблона
Итак, у меня есть класс шаблона, который я хотел бы принять std::map, где тип данных является либо необработанным указателем, либо std::unique_ptr. Затем в этом классе я хотел бы получить тип базового указателя: typedef typename...
1246 просмотров

Различное поведение boost::mpl::or_ и boost::mpl::and_?
Код ниже пытается проверить поведение короткого замыкания boost::mpl::or_ и boost::mpl::and_ : #include <vector> #include <boost/mpl/eval_if.hpp> #include <boost/mpl/identity.hpp> #include <boost/mpl/or.hpp> #include...
700 просмотров

Как оптимизировать код boost::mpl::vector?
Добавьте момент, когда я играю с boost::mpl::*, и попробуйте расширить пример физического устройства. На данный момент у меня есть следующий код: Простое физическое базовое измерение, представленное mpl::vector: template < int Mass, int...
167 просмотров
schedule 29.08.2022

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

Почему Boost MPL имеет интегральные константы?
Поскольку вы можете использовать целочисленные значения в качестве параметров шаблона и выполнять над ними арифметические действия, какова мотивация boost::mpl::int_‹> и других целочисленных констант? Применяется ли эта мотивация в С++ 11?
1671 просмотров
schedule 15.09.2023

boost::mpl::map не работает boost::mpl::equal?
В документации Boost MPL указано, что boost::map::equal "Возвращает интегральную константу с истинным значением, если две последовательности Seq1 и Seq2 идентичны при сравнении _element_ по _element_ . но похоже, что карта ассоциативной...
394 просмотров
schedule 17.05.2022

Метафункция шаблона С++ для созданного объекта класса шаблона
Я надеюсь, что этот вопрос не слишком запутанный. Я понимаю, что метапрограммирование воздействует на типы, а не на объекты этих типов; тем не менее, я все еще пытаюсь добиться того же результата, 1) извлекая информацию о типе из класса, а затем 2)...
220 просмотров

Как реализовать boost MPL FOLD в С++ 11 только с использованием пакета параметров?
У boost mpl более распространенный алгоритм — fold . Этот алгоритм является базовым для многих других алгоритмов. template< typename Seq, typename State, typename Op> struct fold { ... } //Here Seq is <T0,T1,...,Tn> any sequence. //...
832 просмотров

Классификация типов в варианте Boost с использованием посетителя не компилируется
Я использую boost-variant во всех своих проектах. В одном сценарии мне нужно классифицировать типы, содержащиеся в моем boost-variant , на несколько классов. Так как у меня довольно много типов в моем варианте, я пришел к идее определить...
343 просмотров