XaeroX писал: Например, всем известный for-loop bug шестёрки:
ну вот когда начинают вспоминать о недостатках шыстёрки, сразу на ум приходит for-loop-bug. Больше ничего.
А то что NULL необъявлен, так я всю жизнь был уверен, что он и не должен.
Дядя Миша
Ну почему же ничего? А как тебе такое - невозможность отделить реализацию шаблонных функций от декларации? Иными словами, если хочешь в шестёрке сделать шаблонные функции или члены класса в хедере, доступные в разных файлах, то и реализация их обязана быть тут же, в этом же хедере. В десятке их уже можно выносить в срр-файлы (вероятно, из-за наличия у компилятора фичи LTCG).
Цитата:
Дядя Миша писал: А то что NULL необъявлен, так я всю жизнь был уверен, что он и не должен.
Нулл-то объявлен, да только в приведённом примере интуитивно ожидаешь вызов перегрузки с указателем (нулевым), а получаешь вызов перегрузки с int (ибо #define NULL 0). В десятке есть nullptr, который имеет тип указателя (а если точнее, то преобразуется к любому типу указателя).
XaeroX писал: невозможность отделить реализацию шаблонных функций от декларации?
Шаблоны, к слову, пользуют не так чтобы активно. Во избежание.
Разве что авторы STL на полную катушку. Ну и этот, Александреску.
Нормальные люди предпочитают не связыватцо.
Цитата:
XaeroX писал: а получаешь вызов перегрузки с int (ибо #define NULL 0)
А. ну это да. Объявляешь как define NULL (void *)0 - начинает орать о неправильном приведении типов в половине мест. ЧСХ в чистом Си таких проблем нет.
thambs макрос - это автозамена. Она работает прозрачно. Как и положено автозамене может налажать, но предсказуемо. Т.е. как говорится следите за тем, что и на что вы меняете. Шаблон - это подсказка для компилятора, по которой он будет генерить код. Что и как он там нагенерит - зависит от компилятора. Особенно если какие-нибудь вложенные шаблоны.
Т.е. этот участок ты принципиально не контролируешь.
Цитата:
nemyax писал: Вы с STL связываетесь или консидерите его хармфулом?
Не припомню ни одной задачи. для которой он бы мог мне понадобиться.
Подозреваю что таких задач просто не существует, а употреблять его начинают как наркотек - чисто па приколу. А потом соскочить не могут.
Может, хватит уже флудить про шаблоны-компиляторы у меня в треде?
Цитата:
Дядя Миша писал: Не припомню ни одной задачи. для которой он бы мог мне понадобиться.
У меня сейчас задача во время парсинга скрипта создать список названий секций скрипта. Я хотел использовать стд::вектор или что-нибудь более подходящее для строк. Что посоветуешь? Писать строковый линкед-лист?
А теперь по теме: WEAPONDATA не отсылается (или не принимается) до первого респауна - хоть убиться! А потом всё равно может приходить битой. Менять дельту.лст на старый пробовал. Вообще много чего пробовал - всё бестолку. Что делать - отказаться от пути к клиентским пушкам!?!