(03.04.2012 17:08)Efrit Wrote: Ну и чем твой получившийся код лучше моего?
одной точкой выхода
(03.04.2012 17:08)Efrit Wrote: Тебе приводится вводить не только дополнительную переменную
одна переменная в 4 байта ничего не решает.
(03.04.2012 17:08)Efrit Wrote: но и целый двумерный массив
у тебя он тоже есть, хоть и занимает немного меньше места. и его существование не очевидно.
(03.04.2012 17:08)Efrit Wrote: кстати, нафига он static?
чтобы существовал после выхода из функции
(03.04.2012 17:08)Efrit Wrote: и всё лишь ради того, чтобы избежать дублирования return-ов.
ты поставил задачу - я ее выполнил. нечего ставить задачи в отрыве от контекста
(03.04.2012 17:08)Efrit Wrote: Мне же проще использовать shared_ptr - и создавать ВСЁ в стеке, не парясь про утечки памяти при return-ах.
мне же проще использовать сборщик мусора и создавать ВСЁ в куче, не парясь про утечки памяти при чем-угодно.
(03.04.2012 17:08)Efrit Wrote: в то время как ты узнаешь об ошибке лишь тогда, когда пользователь доберётся до критичной строчки кода.
в отладочной (а может и не только) сборке программа скажет в какой строке какого файла произошло исключение и покажет стек вызовов. более того, в режиме отладки среда отловит исключение и перенесет меня к той строке кода, которая его вызвала.
(03.04.2012 17:08)Efrit Wrote: К тому же - сейчас, даже если вписать на место unsigned-переменной просто int-переменную (не обязательно константу) - то нормальные компиляторы всегда выдадут варнинг.
ты этого никогда не сделаешь в силу своих правил выбора типов переменных. так и кто-либо другой не выберет беззнаковый тип из-за отсутстия у него этих правил. более того, через отрицательный индекс можно реализовать дополнительную функциональность, например доступ к элементу с конца массива.