Гетерогенная последовательность на основе индекса общего назначения с фиксированной длиной.
Кортеж — это хлеб и масло для статического метапрограммирования. Концептуально он похож на std::tuple; это контейнер, способный удерживать объекты разных типов и размер которого фиксируется в компиляционное время. Тем не менее, набор Hana обеспечивает гораздо больше функциональности, чем его аналог std, и он также намного более эффективен, чем все стандартные реализации библиотеки, протестированные до сих пор.
Трубочки представляют собой индексные последовательности. Если вам нужна ассоциативная последовательность с доступом на основе ключа, вам следует рассмотреть hana::map или hana::set.
Modeled concepts
Последовательность и все понятия, которые она уточняет
Initialize each element of the tuple with the corresponding element from xn.... Only exists when all the elements of the tuple are copy-constructible. More...
Initialize each element of the tuple by perfect-forwarding the corresponding element in yn.... Only exists when all the elements of the created tuple are constructible from the corresponding perfect-forwarded value. More...
Copy-initialize a tuple from another tuple. Only exists when all the elements of the constructed tuple are copy-constructible from the corresponding element in the source tuple.
Move-initialize a tuple from another tuple. Only exists when all the elements of the constructed tuple are move-constructible from the corresponding element in the source tuple.
Assign a tuple to another tuple. Only exists when all the elements of the destination tuple are assignable from the corresponding element in the source tuple.
Move-assign a tuple to another tuple. Only exists when all the elements of the destination tuple are move-assignable from the corresponding element in the source tuple.
Учитывая ноль или более объектов xs..., make<tuple_tag> возвращает новый кортеж, содержащий эти объекты. Элементы удерживаются внутри полученного кортежа, и поэтому они копируются или перемещаются. Это аналогично std::make_tuple для создания канавок Ханы.
Example
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
Эквивалент to<tuple_tag>; предусмотрен для удобства.
template<typename... Xn>
template<typename... T>
constexpr implementation_defined tuple_t {}
related
Создайте кортеж, специализированный для проведения hana::types.
Это функционально эквивалентно make<tuple_tag>(type_c...), за исключением использования tuple_t Это позволяет библиотеке выполнять оптимизацию времени компиляции. Также обратите внимание, что тип объектов, возвращаемых tuple_t и эквивалентный вызов make<tuple_tag>, могут отличаться.
Example
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
Это функционально эквивалентно make<tuple_tag>(integral_c...), за исключением использования tuple_c Это позволяет библиотеке выполнять оптимизацию времени компиляции. Также обратите внимание, что тип объектов, возвращаемых tuple_c и эквивалентный вызов make<tuple_tag>, могут отличаться.
Example
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
Инициировать каждый элемент кортежа с соответствующим элементом из xn.... Существует только тогда, когда все элементы кортежа являются копируемыми.
Note
Unlike the corresponding constructor for std::tuple, this constructor is not explicit. This allows returning a tuple from a function with the brace-initialization syntax.
Инициализируйте каждый элемент кортежа, передав соответствующий элемент в yn.... Существует только тогда, когда все элементы созданного кортежа конструируются из соответствующего совершенного переднего значения.
Note
Unlike the corresponding constructor for std::tuple, this constructor is not explicit. This allows returning a tuple from a function with the brace-initialization syntax.
Статья Boost.Hana: boost::hana::tuple< Xn > Struct Template Reference раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.