Size: a a a

2020 September 12

АТ

Александр Тужик... in Alprog I/O
C++ Russia?
источник

АТ

Александр Тужик... in Alprog I/O
Я собирался в конце весны/начале лета посетить. Там огненный лайнап собирался, но потом корона и всё поотменялось.
источник

a

ayaal in Alprog I/O
Ага
источник

АТ

Александр Тужик... in Alprog I/O
ayaal
Ага
это я по Полухину понял
источник

a

ayaal in Alprog I/O
источник

S

Sergey in Alprog I/O
источник

S

Sergey in Alprog I/O
Скучаю по плюсам, ребята. Теперь только пет проджекты на них
источник

P

Pavel in Alprog I/O
Александр Тужик
"Статья" — это громко сказано. Там вообще много чего нет. Только то, что пришло на ум в процессе написания. Я настрочил текст особо не думая. Но касательно ренджей — мне как-то по фиг на них.

Я так понимаю это линкоподобная специальная библиотека со всякими фильтрами/адапторами. Такими вещами надо заниматься только если у тебя какие-то замутные правила доступа к данным. Что-то на уровне SQL запросов. Но если у тебя такая муть, то ты в любом случае пользовался бустовыми ренджами или чем-то подобным. Добавление стандартных особо для тебя ничего не поменяло. И наоборот, если ты писал простой код, то лучше его оставить без ренджей.

Чую погорит немало пуканов, когда восторженные джуны на ровном месте, где простой обход массива с предикатом, нагородят какую-то инопланетную конструкцию на ренджах, которая хрен пойми во что разворачивается.
Ну у ренджей есть плюс для всех разрабочиков, это то что они позволят наконец упростить вызов многих алгоритмов работающих с итераторами при вызове алгоритмов на целом контейнере.
Ну и всякие трансформации данных будет чуть проще писать. Не то чтобы редкая задача.
источник

P

Pavel in Alprog I/O
хотя ладно, сейчас попробовал ради интереса переписать пару кусочков кода с транформацией которые я думал улучшат ренджи, стало только сложнее
источник

P

Pavel in Alprog I/O
в общем, согласен по этому поводу с Алпрогом
источник

S

Sergey in Alprog I/O
А покажи, как было и как стало?
источник

P

Pavel in Alprog I/O
void transformRangeOld(std::vector<int>& outResult, const std::map<int, bool>& filters)
{
 for (const auto [typeID, isEnabled] : filters)
 {
   if (isEnabled)
   {
     outResult.push_back(typeID);
   }
 }
}

void transformRangeNew(std::vector<int>& outResult, const std::map<int, bool>& filters)
{
 std::ranges::copy(
   std::ranges::views::transform(
     filters | std::views::filter([](auto pair){ return pair.second; }),
     [](auto pair){ return pair.first; }),
   std::back_inserter(outResult)
 );
}
источник

P

Pavel in Alprog I/O
на улучшение этого кода я надеялся больше всего
возможно можно написать лучше, но я не нахожу способа
источник

Л

Лишний in Alprog I/O
Pavel
void transformRangeOld(std::vector<int>& outResult, const std::map<int, bool>& filters)
{
 for (const auto [typeID, isEnabled] : filters)
 {
   if (isEnabled)
   {
     outResult.push_back(typeID);
   }
 }
}

void transformRangeNew(std::vector<int>& outResult, const std::map<int, bool>& filters)
{
 std::ranges::copy(
   std::ranges::views::transform(
     filters | std::views::filter([](auto pair){ return pair.second; }),
     [](auto pair){ return pair.first; }),
   std::back_inserter(outResult)
 );
}
Как я всё-таки иногда радуюсь тому, что я админ и мои задачи решаются языками попроще.)
источник

P

Pavel in Alprog I/O
ну это простая задача :)
источник

Л

Лишний in Alprog I/O
С другой стороны, я бы с удовольствием решал их языками посложнее, но есть нюанс, меня в этом никто не поддерживает.
источник

Л

Лишний in Alprog I/O
Pavel
ну это простая задача :)
Да не в этом дело. Дело в индустриальных стандартах. Я ради продолжения писал первую часть.
источник
2020 September 22

VK

Viacheslav Kozikhin in Alprog I/O
@alprog spam?
источник

АТ

Александр Тужик... in Alprog I/O
да
источник

Л

Лишний in Alprog I/O
А кто как относится к курсам по игроделу для полных или неполных нулей? Вообще имеет смысл тратить время и деньги? Много вы знаете ребят, которые прошли какие-то курсы и после попали в какие-то команды?
источник