- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
char *ptr1;
char *ptr2;
//...
try {
throw ptr2 - ptr1;
}
catch (int e) {
std::cout << "exception addr dif" << e << std::endl;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+165
char *ptr1;
char *ptr2;
//...
try {
throw ptr2 - ptr1;
}
catch (int e) {
std::cout << "exception addr dif" << e << std::endl;
}
TarasB 13.06.2010 21:33 # 0
Говногость 13.06.2010 22:41 # +1
Webkill 13.06.2010 21:37 # −6
guest 14.06.2010 03:07 # −3
Причем тут это? Ты глупый чтоли?
Webkill 14.06.2010 04:33 # −4
guest 14.06.2010 08:00 # −2
legolegs 13.06.2010 23:35 # 0
В целом говнокод, но в лёгкой форме. Работает и в целом понятно как.
pushkoff 14.06.2010 12:04 # 0
guest 14.06.2010 12:43 # +2
pushkoff 14.06.2010 12:50 # −2
#ifndef _PTRDIFF_T_DEFINED
#ifdef _WIN64
typedef __int64 ptrdiff_t;
#else
typedef _W64 int ptrdiff_t;
#endif
#define _PTRDIFF_T_DEFINED
#endif
извиняйся!!!
guest 14.06.2010 13:08 # −1
pushkoff 14.06.2010 13:42 # −1
blackhearted 16.06.2010 16:35 # +5
Webkill 16.06.2010 16:39 # 0
guest 16.06.2010 16:57 # +1
pushkoff 16.06.2010 17:28 # 0
в данный момент я пишу игры на iPhone, когда-то писал под PS3...
guest 16.06.2010 17:31 # +1
Webkill 16.06.2010 20:46 # 0
Зачем тебе тогда с++? Юзай obj-c.
pushkoff 16.06.2010 21:35 # 0
ну и наши проекты портируются еще на десяток платформ, исправляя код в десятке файлов...
Webkill 16.06.2010 23:25 # +2
а что не так?
pushkoff 17.06.2010 00:35 # −1
ну и с памятью уже не поработаешь как в С++...
Webkill 17.06.2010 01:47 # +1
а насчёт "вывалится по обработке" - юзай юнит-тесты, что ли
> ну хотя бы то, что любому объекту можно послать любое сообщение и никто нечего не скажет пока программа не вывалится на его обработке
с++ не меньше падает с сегфолтами
pushkoff 17.06.2010 02:13 # −1
лучше выбрать язык который будет искать ошибки на этапе компиляции, тем более что такой выбор есть...
Webkill 17.06.2010 02:18 # 0
то-то с++-поделия постоянно вылетают, оказца с++ники не любят юнит-тесты.
проверка ошибок времени компиляции не спасает от ошибок логических, от человеческого фактора (т.е. когда синактически легитимное являеся семантически ошибочным) - поэтому всегда нужно юзать юнит-тесты, какой бы язык не был. а раз ты УЖЕ юзаешь юнит-тесты, то как бы нет смысла пиздеть о том, что методы диспатчатся и вылетают в рантайме - это всё ловится юнит-тестами
pushkoff 17.06.2010 02:26 # −2
сам часто думаю об юнит тестах, но еще не слышал о случаях успешного применения в геймдеве...
да и сроки обычно не позволяют... в бизнес софте функцию на 10 строк могут полгода писать и тестировать, в геймдеве за полгода нужно выдать игру на бетатест...
> это всё ловится юнит-тестами
но все же вопрос остается открытым, зачем выбирать язык который не может отлавливать простейшие синтаксические ошибки??
Webkill 17.06.2010 02:57 # 0
я сам на нём не кодил, но подозреваю, что по уму можно было бы решить проверкой ИДЕ кода на ввод методов, которых нет в базе ("интеллисенсе") и выводом предупреждений...
pushkoff 17.06.2010 11:47 # −2
Webkill 17.06.2010 14:29 # 0
с чего это компилятор бракованный? такова сущность языков с динамическим диспатчингом
> ты реально не в теме... причем тут ввод?
я бы тоже спросил, при чём тут ввод. про какой ты ввод? ввод чего и ккуда?
pushkoff 17.06.2010 15:11 # 0
Webkill 17.06.2010 15:23 # 0
pushkoff 17.06.2010 15:41 # +1
потому как цена ошибки в рантайме в десятки раз больше...
guest 17.06.2010 16:00 # 0
pushkoff 17.06.2010 16:11 # 0
guest 17.06.2010 16:14 # 0
Webkill 17.06.2010 03:01 # 0
сам часто думаю об юнит тестах, но еще не слышал о случаях успешного применения в геймдеве...
тебе не нравятся вылеты в рантайме... а ассерты как раз и есть вылеты в райнтайме... в случае с юнитами иначе - ты изменил код, затем запустил тест на эту часть кода - и сразу же видишь, успешно код изменён, или есть регрессии... а в случае с ассертами надо полностью загружать программу, с ней работать, ждать пока обвалится, решать всё вручную силами живых бета-тестеров...
в случае геймдева сложным на такую проверку является интеракция человека (движение там)... а так типа код нахождения пути или АИ можно вполне покрывать юнит-тестами
pushkoff 17.06.2010 11:58 # 0
ну и у игр своя специфика, проект пишется сдается откладывается (часто просто забывается), переписывание любой части (допустим с целью оптимизации или просто рефакторинг) обычно задевает код окружающих... те кто пытался внедрить, быстро отказывались, так как они не являются серебряной пулей, а времени на поддержание их актуальности нужно не меньше чем на написание кода...
но я все равно жду удачного опыта внедрения, чтоб потом попробовать самому...
Webkill 16.06.2010 23:44 # +1
после си++ с его кривыми инклюдами я думал тебе ничего не должно страшно
guest 17.06.2010 00:51 # +1
С с++ также.
pushkoff 16.06.2010 21:35 # −1
legolegs 14.06.2010 12:49 # 0
pushkoff 14.06.2010 12:51 # 0
legolegs 14.06.2010 14:04 # +3
guest 14.06.2010 14:22 # −3
guest 16.06.2010 02:11 # +1
guest 16.06.2010 06:26 # +1
guest 16.06.2010 07:00 # 0
guest 16.06.2010 07:17 # 0
pushkoff 14.06.2010 16:40 # 0
guest 16.06.2010 06:54 # 0
guest 16.06.2010 07:01 # +2
guest 16.06.2010 07:08 # +2
я вот, дрочу на С++ и ничего не могу с собой поделать. уже мозоли и волдыри. одна рука накаченая, а другая тощая. а в глазах то как темнеет в пиковые моменты. и каждый день себя карю в этом... а ещё стыдно перед мамой. но ничего сделать с собой немогу...
guest 16.06.2010 07:20 # +3
guest 16.06.2010 08:34 # 0
guest 17.06.2010 00:00 # 0
guest 14.06.2010 20:24 # −7
guest 14.06.2010 21:27 # −3
guest 14.06.2010 23:19 # −7
guest 16.06.2010 07:20 # −1
guest 16.06.2010 08:33 # −1
Мистер Хэнки 16.06.2010 20:13 # +1
guest 17.06.2010 18:14 # +1
Говногость 30.06.2010 23:59 # 0