Сообщение Re[2]: C++ идея для стандарта. от 02.03.2018 13:35
Изменено 22.04.2019 9:18 deleted2
Re[2]: C++ идея для стандарта.
Здравствуйте, rean, Вы писали:
pkl>>Жопа ли это? Я тупой наркоман? Можно ли это сделать уже щас без вундервафлинга?
R>А три итератора и использование обычного while цикла и трех проверок на end() уже не C++? Надо обязательно стандарт менять?
Посмотрел, насколько сложно получается. Получается не сложно и вполне читаемо:
Вывод:
Большая часть сложностей из-за std::cout, а проверять где находишься внутри векторов и проверять не закончилось ли неожиданно в любом месте, все равно придется. Никакого синтаксического сахара сделать не получится. Только все усложнит.
pkl>>Жопа ли это? Я тупой наркоман? Можно ли это сделать уже щас без вундервафлинга?
R>А три итератора и использование обычного while цикла и трех проверок на end() уже не C++? Надо обязательно стандарт менять?
Посмотрел, насколько сложно получается. Получается не сложно и вполне читаемо:
std::vector<int> a = {1, 2, 3};
std::vector<std::string> b = {"hello", "world", "foo", "bar"};
std::vector<int> c = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
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;
};
Вывод:
1, hello, 9
2, world, 8
3, foo, 7
-, bar, 6
-, -, 5
-, -, 4
-, -, 3
-, -, 2
-, -, 1
-, -, 0
Большая часть сложностей из-за std::cout, а проверять где находишься внутри векторов и проверять не закончилось ли неожиданно в любом месте, все равно придется. Никакого синтаксического сахара сделать не получится. Только все усложнит.
Re[2]: C++ идея для стандарта.
deleted