Описание тега boost-hana
Boost.Hana - это библиотека метапрограммирования на основе C++14. Он предоставляет высокоуровневые алгоритмы для управления гетерогенными последовательностями, позволяет записывать вычисления на уровне типов с естественным синтаксисом, предоставляет инструменты для самоанализа определяемых пользователем типов и многое другое.
1
ответ
Как можно изменить член структуры Boost Hana?
Я могу видеть, как можно легко прочитать интроспективную структуру hana-структуры в общем случае по полю / значению, но я не могу найти какой-либо способ записи в структуру в общем. В основном я хотел бы иметь возможность сделать что-то вроде: boost…
14 сен '18 в 16:25
1
ответ
Обрабатывать частичный тип с помощью Boost Hana
То, что я называю частичным типом, выглядит примерно так: template < template <typename ...> typename Skeleton, template <typename ...> typename WrapperType, typename ... Pölicies > struct MetaStorage { template < typename ... T…
06 апр '17 в 10:30
1
ответ
Почему набор boost::hana не может быть создан по умолчанию?
Сегодня я обнаружил, что boost::hana"s map а также set не могут быть построены по умолчанию, в то время как tuple является. Есть ли какая-то особая причина для этого, потому что это довольно раздражает. это #include <boost/hana/set.hpp> // ^^^…
30 ноя '15 в 01:22
1
ответ
Взятие адреса boost::hana:: частичного::operator()
Предположим, у меня есть лямбда, которая делает что-то: auto thing = [](int x){ /* Stuff */ }; Я хочу сохранить значение "х" и вызвать его позже, поэтому я делаю: auto other = boost::hana::partial(thing, 42); Теперь, потому что я хочу сделать какое-…
11 авг '18 в 14:01
4
ответа
Как написать цикл для последовательности Hana?
У меня есть последовательность Boos.Hana, и я хотел бы распечатать ее на экране, разделенные запятыми. Однако запятые разделяют только элементы, поэтому я должен проверить, нахожусь ли я на последнем элементе. В настоящее время мой хак довольно плох…
10 янв '16 в 06:17
1
ответ
hana::second не может вывести тип
Я пытаюсь получить доступ к hana::type из пары, использующей hana::second... namespace hana = boost::hana; using namespace hana::literals; struct Key {}; struct Foo {}; int main() { auto test = hana::make_tuple( hana::make_pair( hana::type_c<Key&…
25 апр '17 в 18:09
1
ответ
Как преобразовать hana::tuple_t с мета-функцией произвольного типа?
Допустим, у меня есть два типа, каждый из которых имеет внутренний тип: struct A1{ using type = int; }; struct B1{ using type = double; }; Я создал hana::tuple_t из моих занятий (например, auto Types = hana::tuple_t<A1, B1>) и хотелось бы полу…
14 дек '18 в 03:41
2
ответа
Как назначить членам объекта структуры?
Я делаю свои первые шаги с Boost. Хана, поэтому, пожалуйста, потерпите меня. я имею #include <boost/hana.hpp> namespace hana = boost::hana; using namespace hana::literals; #include <string> struct A { int integer; std::string string; }; …
16 янв '19 в 22:33
3
ответа
C++14 Метапрограммирование: автоматическое построение списка типов во время компиляции / инициализации
Использование C++14 и некоторая комбинация шаблонов любопытных повторений (CRTP) и, возможно, Boost.Hana (или boost::mpl если хотите), могу ли я создать список типов во время компиляции (или статической инициализации) без явного объявления? Как прим…
06 фев '17 в 20:51
3
ответа
Хана: Как мне создать кортеж типов из варианта?
Если у меня есть вариант, вот так: using my_variant = boost::variant<int, bool, std::string>; Есть ли простой способ извлечь типы, которые вариант может содержать в кортеже Boost.Hana, так что выполняется следующее: using boost::hana::type; st…
12 ноя '15 в 18:56
1
ответ
Используйте hana::transform для преобразования типов внутри кортежа в C++14
Я пытаюсь использовать Boost's hana::transform изменить типы внутри hana::tuple, В качестве примера скажу, что у меня есть constexpr auto some_tuple = hana::tuple_t<int, char *, bool>; и я хочу произвести constexpr auto transformed_tuple = han…
11 апр '18 в 14:23
1
ответ
Как я могу использовать Boost.Hana, чтобы определить, есть ли у функтора оператор вызова, который может быть вызван с определенным аргументом шаблона?
В моем приложении я хочу во время компиляции определить, является ли произвольный тип функтора Func имеет нулевой оператор вызова, который может быть вызван с заданным явным аргументом шаблона T, Основываясь на предыдущем ответе SO, который я нашел,…
11 апр '17 в 17:17
1
ответ
Преобразовать `hana::string` в`constexpr const char (&)[]`
У меня есть старый код, который использует что-то очень похожее на str_const описано здесь и здесь, чтобы сделать некоторые манипуляции строк constexpr. str_const литеральный тип, описанный Скоттом Шурром, который может быть построен из строкового л…
26 июл '17 в 00:49
1
ответ
Увеличить размер хана типа кортежа
Я знаю, как я могу получить размер объекта кортежа в boost::hana как это: auto tupleSize = hana::size(hana::make_tuple(1,2,3)) Но как насчет размера типа кортежа? Stl уже предоставляет следующую черту типа кортежа: constexpr size_t tupleSize = std::…
26 сен '15 в 21:12
3
ответа
Почему тип boost::hana::tuple_c определяется реализацией?
Документация Boost.Hana для tuple_c состояния: Также обратите внимание, что тип объектов, возвращаемых tuple_c и эквивалентный вызов make<tuple_tag> может отличаться сопровождается следующим фрагментом: BOOST_HANA_CONSTANT_CHECK( hana::to_tupl…
30 апр '18 в 13:50
1
ответ
Определение сопоставимых объектов во время компиляции с Boost.Hana
Я борюсь с наличием пользовательских типов в качестве ключей в hana::map, Я сталкиваюсь с static_assert говоря, что сравнение должно быть возможным во время компиляции. Я реализовал constexpr bool operator== для сочетания (я считаю) всех из них. В ч…
19 окт '15 в 17:24
1
ответ
Рекурсивное посещение `std::variable` с использованием лямбда-выражений и комбинаторов с фиксированной запятой
Я хотел бы посетить "рекурсивный" std::variant использование лямбда-выражений и функций, создающих перегрузки (например, boost::hana::overload ) Давайте предположим, что у меня есть вариант типа с именем my_variant который может хранить один int,flo…
02 окт '16 в 17:20
1
ответ
Фильтрация списка по типам с использованием boost::hana
Я пытаюсь отфильтровать список с типами, но это не похоже на работу. Я уверен, что я делаю что-то не так, вот тест, который я создал, чтобы воспроизвести это: #include <iostream> #include <boost/hana.hpp> #include <boost/hana/ext/std/…
12 сен '16 в 09:24
1
ответ
Clang 3.6.0 падает, пытаясь скомпилировать "hana/example/core/is_a.cpp"
Попытка скомпилировать библиотеку Boost.Hana из последних источников https://github.com/ldionne/hana (на сегодняшний день). Получение аварии во время make examples, Это проблема с последней комбинацией исходников и компилятора, или я действительно н…
19 окт '14 в 02:34
1
ответ
Увеличить хана на две последовательности в карту
static constexpr auto type_tuple_c = hana::tuple_t<T...>; static constexpr auto idx_tuple_c = hana::tuple_c<std::size_t, 0, sizeof...(T)>; Я хотел бы сопоставить эти две последовательности одинаковых размеров друг с другом. Тем не менее,…
10 апр '16 в 21:05