Сообщение Re[5]: C++ идея для стандарта. от 02.03.2018 17:41
Изменено 02.03.2018 17:42 rg45
Re[5]: C++ идея для стандарта.
Здравствуйте, rean, Вы писали:
R>Да вообще не надо такое писать. Разве что ради стеба.
Этот пример, на самом деле состоит из двух частей. Первая часть — библиотечная — она пишется один раз, тестируется и спокойно лежит и ждет своего часа. А когда понадобится, мои программы будут получаться вот такими:
а твои вот такими:
Если тебе твоя программа больше нравится, пожалуйста, я тебе ничего не навязываю. Мне же, извини, это напоминает рецепт какого-то борща.
R>Оно скорей всего у меня даже не откомпилируется на VC++, а boost так это еще + 300 мегабайт в проект.
Спокойно компилируется, можешь проверить.
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;
}
а твои вот такими:
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 мегабайт в проект.
Спокойно компилируется, можешь проверить.
Re[5]: C++ идея для стандарта.
Здравствуйте, rean, Вы писали:
R>Да вообще не надо такое писать. Разве что ради стеба.
Этот пример, на самом деле состоит из двух частей. Первая часть — библиотечная — она пишется один раз, тестируется и спокойно лежит и ждет своего часа. А когда понадобится, мои программы будут получаться вот такими:
а твои вот такими: http://rsdn.org/forum/cpp/7069883.1
Если тебе твоя программа больше нравится, пожалуйста, я тебе ничего не навязываю. Мне же, извини, это напоминает рецепт какого-то борща.
R>Оно скорей всего у меня даже не откомпилируется на VC++, а boost так это еще + 300 мегабайт в проект.
Спокойно компилируется, можешь проверить.
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
Дата: 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 мегабайт в проект.
Спокойно компилируется, можешь проверить.