- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
enum IsHaveItem{
//...
switch(Havelo)
{
case IsHaveItem::Have: have();
case IsHaveItem::Havent: haveOrNotHave();break;
default:assert(false&&"Признай, что ты идиот и это не лечится!");
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 188
+1000
enum IsHaveItem{
//...
switch(Havelo)
{
case IsHaveItem::Have: have();
case IsHaveItem::Havent: haveOrNotHave();break;
default:assert(false&&"Признай, что ты идиот и это не лечится!");
}
Нашёл в проекте. Нет, ни тогда, когда сработал ассерт.
+142
enum IsHaveItem
//...
switch(Havelo)
{
case IsHaveItem::Have: have();
case IsHaveItem::Havent: haveOrNotHave();break;
default:assert(false&&"Признай, что ты идиот и это не лечится!");
}
+142
enum class TClockWise
{
CW=true,
CCW=false
};
template<class T>
std::ostream& operator<<(std::ostream &out, const TClockWise Cow)
{
switch(Cow)
{
case TClockWise::CW: out << "CW"; break;
case TClockWise::CCW: out << "CCW"; break;
default: MUST_NEVER_CAL_THAT;
}
return out;
}
+996
abstractObject=abstractObject;
Когда я это обнаружила в коде, то упала со стула.
+989
char* mData=new char[MAX_STRING_LENGTH+1];
Кто сможет перечислить все ошибки в этом говнокоде?
+167
for(byte i = 3;i<129;++i)
(state.programImpl[i])(state);
Мне достался на поддержку этот проект. Это основной цикл программы, хотя их несколько. Есть некоторый массив, заполненный алгоритмом программыфункциями через
PI programImpl= {
beginPrg,
//...
};
В зависимости от выполнения различных условий state.programImpl самомодифицируется во время выполнения этого цикла. Мне хочется сказать: "Возьми Lisp и никогда более не берись за С++!". А вообще, в этом проекте эта самомодификация просто не нужна. А теперь вопрос: "Что у человека с головой?"
+136
eax = esp;
if (gB(eax + 0x19) == 0) {
uint edx = gD(eax + 8);
if (gB(edx + 0x19) == 0) {
eax = gD(edx);
if (gB(eax + 0x19) == 0) {
do {
edx = eax;
eax = gD(edx);
}
while (gB(eax + 0x19) == 0);
}
esp = edx;
//ret
}
else {
eax = gD(eax + 4);
if (gB(eax + 0x19) == 0) {
do {
edx = esp;
if (edx != gD(eax + 8)) break;
esp = eax;
eax = gD(eax + 4);
}
while (gB(eax + 0x19) == 0);
}
esp = eax;
}
}
eax = esp;
X: я занялся написанием научной фантастики)
Y: АИ? ИИ?
X: /*код!!!111*/
Y: декомпилятор пишешь?
X: декомпилятор это не фантастика
это реальность
Y: А что пишешь?
X: а это я сам не знаю что это)
вообщем, в игре на земле валяются предметы
нужно найти как они расположены в памяти
Y: Это результат декомпиляции или что это?
X: обычно это либо eax, [eax + idi * 4]
или что то в этом духе
просто постраничное считывание
типа eax, [eax]
eax, [eax]
eax, [eax]
а тут ни то ни другое)
сама игра ищет предметы по какой то безумной логике
Y: Это ты написал программы и обозвал так свои переменные?
X: да)
вообщем
мне стало лень разбираться
что и как делает игрушка
и я просто скопировал код
из дизасма
в С№
и перебил под синтаксис)
на удивление четко работает)
+165
int excpt[]={03, 03, 03, 00};
//...
typedef int tex[sizeof(excpt)/sizeof(excpt[0])];
typedef tex& texr;
//...
throw texr(excpt);
Уж сразу массив кидали, как исключение. Зря мелочились...
+165
std::cout << [&i](){return i;}();
И вот ещё одна жертва стандарта. На этот раз она в пасть лезет добровольно.
+167
return parse(
str,
( ( lexeme_d[+alnum_p][assign_a(key)] >> ':' >> lexeme_d[ '"' >> ( *~ch_p('"') )[insert_at_a(mp,key)] >> '"' ] ) % ',' ),
space_p
).full;