Size: a a a

2020 August 12

CC

Cool Cooler in C++ Together 2.0
Evgeniy Pichuzhkin
Ебать ты странный
Не хотел бы я писать с тобой один и тот же код
Ну я-то так пишу для оптимизации
Которой, как мне всегда казалось, быть по дефолту не должно
А оно вот так оказалось
источник

EP

Evgeniy Pichuzhkin in C++ Together 2.0
No offence, просто я реально не понимаю в чем прикол этой ерунды с проверками, которые при своем вызове меняют глобальный стейт
источник

CC

Cool Cooler in C++ Together 2.0
Evgeniy Pichuzhkin
No offence, просто я реально не понимаю в чем прикол этой ерунды с проверками, которые при своем вызове меняют глобальный стейт
Ну могут быть такие юз кейсы
источник

CC

Cool Cooler in C++ Together 2.0
Даже если трудно их придумать
источник

EP

Evgeniy Pichuzhkin in C++ Together 2.0
Могут быть, но я могу припомнить только один случай за всю свою практику программирования, когда я застрелился оптимизацией булевых выражений
источник

CC

Cool Cooler in C++ Together 2.0
Cool Cooler
Ну могут быть такие юз кейсы
Обычно просто везёт и такую вещь никто не делает
Но такие юз кейсы вполне могут быть
источник

🦊

🦊fox.cpp in C++ Together 2.0
Cool Cooler
И попасться
Код в условиях по возможности не должен иметь сайд-эффектов, это контор-интуитивно. /тред
источник

CC

Cool Cooler in C++ Together 2.0
Нельзя сказать, что это всегда не правильно
источник

🦊

🦊fox.cpp in C++ Together 2.0
🦊fox.cpp
Код в условиях по возможности не должен иметь сайд-эффектов, это контор-интуитивно. /тред
Кстати, short-circuit evaluation можно обойти используя | вместо ||
источник

🦊

🦊fox.cpp in C++ Together 2.0
🦊fox.cpp
Код в условиях по возможности не должен иметь сайд-эффектов, это контор-интуитивно. /тред
Код, который предназначен для определения состояния не должен его менять. Я кучу раз отстреливал себе так конечности, иногда очень больно.
источник

🦊

🦊fox.cpp in C++ Together 2.0
В особенности, код для определения состояния должен быть thread-safe по отношению к себе
источник

CC

Cool Cooler in C++ Together 2.0
🦊fox.cpp
Код в условиях по возможности не должен иметь сайд-эффектов, это контор-интуитивно. /тред
Я согласен, что это в большинстве случаев так
Но я допускаю, что в некоторых случаях, сайд-эффекты могут быть как-либо удобны или полезны

Да, да, я пока не могу привести такие случаи
Но это не значит, что их нет
источник

CC

Cool Cooler in C++ Together 2.0
🦊fox.cpp
Код, который предназначен для определения состояния не должен его менять. Я кучу раз отстреливал себе так конечности, иногда очень больно.
Ммм
А у меня никогда не было такого, чтобы я менял состояние для определения состояния
Но быть могло!
источник

CC

Cool Cooler in C++ Together 2.0
Мне просто везло
источник

🦊

🦊fox.cpp in C++ Together 2.0
Cool Cooler
Ммм
А у меня никогда не было такого, чтобы я менял состояние для определения состояния
Но быть могло!
Вот такой случай: есть тупля (fmt, raw), есть GetValue, возвращает fmt если есть, если нет - генерирует из raw.
источник

CC

Cool Cooler in C++ Together 2.0
🦊fox.cpp
Вот такой случай: есть тупля (fmt, raw), есть GetValue, возвращает fmt если есть, если нет - генерирует из raw.
Тупля?
источник

EP

Evgeniy Pichuzhkin in C++ Together 2.0
Evgeniy Pichuzhkin
Могут быть, но я могу припомнить только один случай за всю свою практику программирования, когда я застрелился оптимизацией булевых выражений
Мне нужно было зачистить мапу от пачки возможно присутствующих объектов, и для это предусматривался метод типа
bool delete(const Key&)

Я хотел заодно дешево определить изменилось ли состояние объекта после зачистки, поэтому добавил свою булеву переменную при вызовах

bool isChanged = false;
for (const auto &key : keys) {
 isChanged = isChanged || map.delete(key);
}


Как можно догадаться, дальше одного успешного удаления дело не заходило >_<
источник

🦊

🦊fox.cpp in C++ Together 2.0
🦊fox.cpp
Вот такой случай: есть тупля (fmt, raw), есть GetValue, возвращает fmt если есть, если нет - генерирует из raw.
Если fmt нет, то он задаётся из результата вычисления для ускорения следующего вызова
источник

🦊

🦊fox.cpp in C++ Together 2.0
Найди баг
источник

🦊

🦊fox.cpp in C++ Together 2.0
Cool Cooler
Тупля?
Ну, структура, скажем
источник