Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Tuples

Boost , ,

Tuples

Трубы являются самой базовой инфраструктурой, с которой строится структура. Эта подбиблиотека обеспечивает механизм связки объектов произвольных типов в единую структуру. Трубки удерживают разнородные типы до заданного максимума.

Предоставляются только самые необходимые функциональные возможности. Это прямолинейная и чрезвычайно бережливая и подлая библиотека. В отличие от других рекурсивных реализаций, подобных списку, в этой реализации библиотеки связки используются простые структуры, похожие на std::pair со специализацией для элементов связки от 0 до N, где N является предопределенной константой. Есть только 4 операции, чтобы узнать:

1) Строительство

Вот примеры того, как строить канавки:

    typedef tuple<int, char> t1_t;
    typedef tuple<int, std::string, double> t2_t;
    //  this tuple has an int and char members
    t1_t t1(3, 'c');
    //  this tuple has an int, std::string and double members
    t2_t t2(3, "hello", 3.14);

2) Доступ членов

Член в кортеже может быть доступен с помощью оператора кортежа, указав Nth tuple_index. Вот несколько примеров:

    tuple_index<0> ix0; // 0th index == 1st item
    tuple_index<1> ix1; // 1st index == 2nd item
    tuple_index<2> ix2; // 2nd index == 3rd item
    //  Note zero based indexing. 0 = 1st item, 1 = 2nd item
    t1[ix0] = 33;       // sets the int member of the tuple t1
    t2[ix2] = 6e6;      // sets the double member of the tuple t2
    t1[ix1] = 'a';      // sets the char member of the tuple t1

Доступ к несвязанным индексам возвращает значение nil_t.

3) Вопрос о типе члена

Тип отдельного члена может быть запрошен. Пример:

    tuple_element<1, t2_t>::type

Относится к типу второго члена (опять примечание нулевой индексации, следовательно, 0 = 1-й элемент, 1 = 2-й элемент) кортежа.

Доступ к несвязанным индексам возвращает тип nil_t.

4) Длина трубы

Количество элементов в кортеже можно запросить. Пример:

    int n = t1.length;

Получает количество элементов в кортеже t1.

Длина является статической постоянной. Таким образом, TupleT::length также работает. Пример:

    int n = t1_t::length;


Статья Tuples раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 21:59:02/0.027911901473999/1