- 1
- 2
- 3
- 4
- 5
- 6
#define TRUE (1)
#define FALSE (0)
#define internal protected:
#define external public:
#define declareSuper(superClass) protected: typedef superClass super
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+24
#define TRUE (1)
#define FALSE (0)
#define internal protected:
#define external public:
#define declareSuper(superClass) protected: typedef superClass super
Оттуда.
bormand 17.11.2012 16:44 # +7
defecate-plusplus 17.11.2012 18:12 # +3
LispGovno 17.11.2012 18:14 # +2
bormand 17.11.2012 19:02 # +3
test 1: std::vector time milisec 9.14
test 2: std::vector reserve time milisec 4.30
test 3: dynArray time milisec 5218.74
test 4: dynArrayT time milisec 40157.38
Ну чтож, автор - адекватный человек, который признал свой велосипед говном, и не постеснялся об этом рассказать.
bormand 17.11.2012 19:09 # +4
> Обрати внимание - моя реализация близка std::vector (там чуток хуже, но мне подходит)
Внимание, вопрос: зачем использовать свой вектор, если он медленнее стандартного?
guest 17.11.2012 20:19 # −2
bormand 17.11.2012 21:01 # +1
guest 17.11.2012 21:32 # +1
А не писать крестоблядства:
Надеюсь в последнем я нигде не ошибся, тк это для меня сложно. Если второй вариант кому-то показался удобнее первого, то я, как и Понтий Пилат, умываю руки.
guest 17.11.2012 21:56 # −1
guest 17.11.2012 22:01 # −1
Блять, да кто это придуман? Назовите имя этого человека? Я трижды кину в него камень.
guest 17.11.2012 22:13 # −1
guest 17.11.2012 22:27 # −1
А вы ведь посмотрите насколько это не оптимально, относительно первоначального варианта. Типичное квадратичное говно.
defecate-plusplus 17.11.2012 22:41 # +4
перепиши в виде императивного цикла
тебе скажет спасибо тот программист, который будет поддерживать твой говнокод после того, как тебя уволят
guest 17.11.2012 22:43 # −3
guest 17.11.2012 22:45 # −3
defecate-plusplus 17.11.2012 22:46 # +7
раздел хаскел прямо и направо
guest 17.11.2012 22:49 # −3
defecate-plusplus 17.11.2012 22:53 # +3
но подозреваю, что тебе вдруг понадобился boost::filter_iterator
guest 17.11.2012 22:56 # −3
defecate-plusplus 17.11.2012 23:00 # +8
поведай нам больше, как собственный контейнер еще больше приблизил тебя к завершению проекта в срок
guest 17.11.2012 23:02 # −2
defecate-plusplus 17.11.2012 23:03 # +6
guest 17.11.2012 23:17 # −4
defecate-plusplus 17.11.2012 23:28 # +6
если так жжотса в причинном месте, что из крестов делаешь сишарпик, зачем тебе кресты?
guest 17.11.2012 23:29 # −3
нужны быстрые высокоуровневые кресты, а не тот детский сад, что ты видел выше.
defecate-plusplus 17.11.2012 23:39 # +5
если ты думаешь, какой ты крутой обдурил систему, сэкономив на конструкторах копирования/перемещения, написав memmove, то ты жестоко ошибся
нормальные программисты используют вектор так, для чего он предназначен - хранение массива неразрывно
и говнооптимизацией реаллоцирования не получают даже 0.1% ускорения, потому что это действительно редкая операция ;)
guest 17.11.2012 23:49 # −3
Эта оптимизация уменьшает фрагментацию кучи. А ещё для больших векторов (больше страницы или нескольких) будет использоваться оптимальное, для данного случая, страничное перемещение (просто замена значений в таблице страниц). Ты похоже нуб не в теме?
defecate-plusplus 18.11.2012 00:12 # +8
и поспешу тебя удивить, в нормальных реализациях stl вектор умеет отличать pod от не-pod, используя где нужно memcpy, но гораздо важнее сделать #define TRUE 1, это так проффессионнально, куда уж нам, нубам
и да, не нубам еще известны специфичные вызовы типа _expand/mremap, позволяющие иногда вырасти существующему выделенному блоку
ты ведь понимаешь, что вся дополнительная эффективность вектора - в его яйце аллокаторе?
guest 17.11.2012 22:47 # −1
Ну вот приехали, крестовики не понимаю код на крестах. Туда куда вели стандарт, туда и пришли.
TarasB 18.11.2012 17:20 # +2
Только крестоблядский стл - это не струасиный понос, а степашкин.
И это не понос, а удобная библиотека. Конечно, бывают и поудобнее, но СТЛ наиболее убедителен.
LispGovno 18.11.2012 17:26 # −1
TarasB 18.11.2012 17:34 # +3
И если бы из крестов вообще выпилили шаблоны и автодеструкторы, кроме стл, и вшили бы стл в язык, сделав удобную поддержку со стороны синтаксиса, то для 99% задач кресты от этого только бы стали удобнее.
Впизду универсальность, возможность "нопейсать свой язык на этом языка" итд, это только мешает писать код блеать.
bormand 18.11.2012 22:04 # +3
Ну и само собой new, delete и всю адресную арифметику. Ибо нехуй.
defecate-plusplus 18.11.2012 22:11 # +1
спасибо, не надо
TarasB 18.11.2012 22:30 # +1
Именно, вы прочитали между строк мой тонкий намёк!
Как я сказал ранее, фишки С++, которых не было в Дельфи-7, не дают видимого ускорения разработки, зато дают +100 к пустомыслию на тему "а правильно ли я сделал, ведь есть какой-то хитровыебанный паттерн, который сделает этот участок кода типобезопасным и без копипасты 5 строчек, и похеру, что это 100 строк нечитаемого шаблонного говна, которые надо ещё неделю отлаживать, читая простыни компилятора, извесного невменяемостью на тему чётко указать, где именно ошибка".
defecate-plusplus 18.11.2012 22:56 # +4
если писать однопоточное приложение с глобальными объектами на 10-20к строк, то достаточно и С, даже не дельфи, представь себе
так что если тебе не пригодились шаблоны, раии, перегрузка операторов и ничего кроме стл (а ведь для своего андроид-ндк ты даже не пытался выйти за рамки стл), если тебе достаточно 2003 студии - так это не значит, что ты есть 99% всех разработчиков
вот как то так
TarasB 18.11.2012 23:00 # 0
А тот эпичный тред?
> если тебе достаточно 2003 студии - так это не значит, что ты есть 99% всех разработчиков
Ну я как бы примерно сужу по отголоскам того, что я слышу. Хитрожопых шаблонистов не любят.
absolut 19.11.2012 12:28 # +2
Хитрожопых ВООБЩЕ не любят.
PascalGovno 19.11.2012 19:41 # +2
И IDE не работает на системе с DEP, что очень символизирует.
bormand 19.11.2012 19:46 # −1
Происки майкрософта. Решили устранить конкурирующую IDE под прикрытием внедрения DEP.
PascalGovno 19.11.2012 21:01 # +1
bormand 19.11.2012 21:22 # +1
TarasB 19.11.2012 19:52 # +1
eth0 19.11.2012 21:07 # +1
Fai 20.11.2012 10:41 # +1
Steve_Brown 20.11.2012 09:58 # +1
bormand 20.11.2012 10:09 # +1
bormand 20.11.2012 10:19 # +1
TarasB 20.11.2012 17:15 # 0
roman-kashitsyn 20.11.2012 17:17 # +3
Это ещё первые виндовсы умели (BitBlt)