Re[5]: C++ идея для стандарта.
От: rg45 СССР  
Дата: 02.03.18 17:41
Оценка:
Здравствуйте, rean, Вы писали:

R>Да вообще не надо такое писать. Разве что ради стеба.


Этот пример, на самом деле состоит из двух частей. Первая часть — библиотечная — она пишется один раз, тестируется и спокойно лежит и ждет своего часа. Это как разумная альтернатива тому, чтоб встраивать такую возможность в язык, как это предлагает ТС. И когда она понадобится, мои программы будут получаться вот такими:

   for (auto&& entry : make_zip_range(a, b, c))
   {
      std::cout << std::get<0>(entry) << ", " << std::get<1>(entry) << ", " << std::get<2>(entry) << std::endl;
   }


а твои вот такими: http://rsdn.org/forum/cpp/7069883.1
Автор: rean
Дата: 02.03.18


    auto ia = a.begin();
    auto ib = b.begin();
    auto ic = c.begin();

    for (;;) {
        bool in_a = ia != a.end();
        bool in_b = ib != b.end();
        bool in_c = ic != c.end();
        if (!(in_a || in_b || in_c)) break;

        if (in_a)
            std::cout << *ia;
        else
            std::cout << "-";

        if (in_b)
            std::cout << ", " << (*ib).c_str();
        else
            std::cout << ", -";

        if (in_c)
            std::cout << ", " << *ic;
        else
            std::cout << ", -";

        std::cout << std::endl;

        if (in_a) ++ia;
        if (in_b) ++ib;
        if (in_c) ++ic;
    };


Если тебе твоя программа нравится больше, пожалуйста, я тебе ничего не навязываю. Мне же, извини, это напоминает рецепт какого-то борща.

R>Оно скорей всего у меня даже не откомпилируется на VC++, а boost так это еще + 300 мегабайт в проект.


Спокойно компилируется, можешь проверить.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 02.03.2018 17:48 rg45 . Предыдущая версия . Еще …
Отредактировано 02.03.2018 17:42 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.