Описание тега boost-mpl
Библиотека Boost.MPL - это универсальная высокоуровневая среда метапрограммирования шаблонов C++ для алгоритмов, последовательностей и метафункций времени компиляции. Он обеспечивает концептуальную основу и обширный набор мощных и согласованных инструментов, которые делают выполнение явного метапрограммирования на C++ максимально простым и приятным в рамках текущего языка.
0
ответов
C++ Boost MPL / Fusion векторов динамического push_back
Я новичок в мире TMP, и мне нужна помощь относительно использования векторов в boost mpl или fusion. Итак, вот ситуация: У меня есть API для асинхронных вызовов функций в многопоточной среде, который реализован как библиотека времени выполнения, нап…
22 мар '12 в 19:06
2
ответа
Ошибка компиляции на boost:: mpl:: tag<T>:: type
Я недавно попробовал boost:: mpl, и он кажется потрясающим и ужасным. Иногда информация об ошибке компиляции довольно запутанная. На этот раз я получаю проблемы на следующий код: #include <iostream> #include <boost/type_traits/is_same.hpp&g…
27 май '13 в 07:30
1
ответ
Условные операторы C++ во время компиляции
Есть ли способ во время компиляции выбрать один из двух путей кода во время выполнения? Я знаю, что перегрузка функций может быть использована для выполнения этого подвига, но затем размер кода увеличивается, потому что обе мои функции скомпилирован…
04 апр '12 в 12:56
6
ответов
Слабосвязанное неявное преобразование
Неявное преобразование может быть действительно полезным, когда типы семантически эквивалентны. Например, представьте две библиотеки, которые реализуют тип одинаково, но в разных пространствах имен. Или просто тип, который в основном идентичен, за и…
15 янв '11 в 20:37
1
ответ
Мне нужна реализация boost::mpl функции exp()
Кто-нибудь знает, где я могу найти это? В противном случае мне придется написать это самому. Благодарю.
07 янв '11 в 19:13
1
ответ
Boost MPL интегрального типа накапливать
Как мне добавить цифры? typedef boost::mpl::vector< boost::mpl::int_<1>, boost::mpl::int_<2>, boost::mpl::int_<3>, boost::mpl::int_<4>, boost::mpl::int_<5>, boost::mpl::int_<6> > ints; typedef boost::mpl::ac…
16 апр '12 в 09:04
2
ответа
boost-mpl, fold и placeholder, выбрать класс из вектора
Я пытаюсь изучить метапрограммирование шаблона C++. Учитывая boost::mpl::vector классов, я хочу вычислить индекс этого класса, где статическая переменная-член имеет определенное значение. Я нашел решение, которое, кажется, работает. Однако для прави…
05 июн '13 в 12:47
1
ответ
В boost MPL, как я могу проверить, работает ли операция, как задумано?
Обычно, когда я пишу код, я часто проверяю, что то, что я делаю, работает, но используя какую-то операцию подтверждения: std::vector<int> a(1, 1); std::vector<int> b = {1}; assert(a == b); // this either works, or breaks in a helpful man…
30 сен '14 в 06:09
1
ответ
Использование boost mpl lambda с классом шаблонов variadic
Мне трудно понять, почему следующая простая программа не скомпилируется. У меня есть шаблон класса Variadic (my_type ниже), который я хочу использовать для преобразования вектора mpl. Следующий фрагмент кода приводит к ошибке компиляции "/boost/mpl/…
07 дек '16 в 00:05
3
ответа
Проверьте наличие глобального оператора << в C++
Здравствуйте, я хочу написать две реализации функции-члена to_string следующим образом: template <typename T0> class foo { public: std::string to_string(); public: T0 m_Value; }; template <typename T0> std::string foo<T0>::to_strin…
04 сен '13 в 05:41
0
ответов
Увеличить последовательность MPL и определяет: Как превратить последовательность MPL в строку определения?
Я понимаю, что мы можем печатать элементы в определения один за другим, зная общее количество (псевдокод): // For the sake of simplicity, I assume the Sequence passed is a boost::mpl::vector #define seq_to_array_str \ < typename boost::mpl::at<…
06 дек '11 в 06:36
0
ответов
C++ время компиляции для цикла над целочисленной константой
Я работал над переносом некоторого кода Windows C++ на linux, который включает специализацию шаблонов и boost::mpl. Моя проблема в том, что (1) не удается получить компиляцию частичной специализации шаблона класса (из-за зависимости аргумента), (2) …
23 июл '15 в 21:56
1
ответ
Заголовок Boost 1.61 пытается переопределить mpl_::bool_
Я на Boost 1.61 и компилирую clang 4.0.1, и я компилирую для linux-gnu Ранее я был на Boost 1.52 и не имел этой проблемы. Просто изменяя версии, я получаю ошибку компилятора о переопределении mpl_::bool_ Я не использую никаких предварительно скомпил…
11 дек '18 в 20:31
1
ответ
Условное сопоставление типов времени компиляции на основе параметра шаблона
Как мне во время компиляции проверить, имеет ли параметр шаблона конкретное перечисление, и если это правда, получить это значение перечисления. Я ищу что-то подобное для параметра шаблона T который может (или не может) иметь тип enum NeedsToAlign: …
01 май '14 в 02:36
1
ответ
Boost.MPL преобразовать с состоянием?
У меня есть следующая последовательность mpl boost::mpl::vector_c<std::size_t, 0, 1, 2, 0, 1, 0> и мне нужно преобразовать его в соответствии со следующим алгоритмом (версия времени выполнения): i=0 output_sequence=[] for k in (0,...,len(input…
28 май '12 в 23:46
1
ответ
Повысить сериализацию mpl::list варианта check_const_loading() ошибка компиляции
Следующее использует mpl::list для инициализации варианта наддува. Затем он сериализует вариант. Он компилируется и отлично работает при сохранении, но не при загрузке. Компиляция даже не удалось загрузить. Кто-нибудь знает в чем проблема? Спасибо A…
16 июл '13 в 11:44
1
ответ
Получение индекса boost::fusion::vector из boost::mpl::vector
Я начал играть с библиотекой boost fusion и mpl и столкнулся с довольно простой проблемой. Я объявил следующие типы: typedef boost::mpl::vector<char, int, long> TypeVector; typedef boost::fusion::vector<char, int, long> FusionVector_t; Т…
01 окт '10 в 17:01
1
ответ
Ошибка обёртывания типа с boost::mpl::for_each (раздел 9.1.1 из книги Абрахамса и Гуртовой)
Следующий код почти дословно скопирован из раздела 9.1.1 книги "Метапрограммирование шаблонов на С ++: концепции, инструменты и методы Boost and Beyond" Дэвида Абрахамса и Алексея Гуртового. Единственное изменение заключается в том, что я хочу иметь…
27 сен '11 в 19:04
2
ответа
Может ли кто-нибудь помочь мне создать контейнер переменных, используя Boost::MPL?
Я создал физическую систему, которая обрабатывает любой объект столкновения с любым объектом столкновения следующим образом: namespace Collision { template <typename T, typename U> inline void Check(T& t, U& u) { if(u.CheckCollision(t.…
26 апр '11 в 07:16
1
ответ
Как получить тип члена boost::mpl для заполнения
Скажем, есть два класса: struct A { using Key = int; using Value = char; }; struct B { using Key = char; using Value = float; }; Я хочу использовать их типы членов для определения карты Fusion: typedef boost::fusion::map < boost::fusion::pair<…
01 ноя '17 в 19:16