Re[32]: собеседование
От: elmal  
Дата: 11.02.10 08:51
Оценка:
Здравствуйте, LordMAD, Вы писали:

LMA>Если ты и типы с плавающей точкой сравниваешь через operator== — да, ты сравниваешь неправильно.

Мы говорили о целочисленных типах. И avg было для целочисленных типов. Как сравнивать результат? Всегда целые числа сравнивались через ==, ты первый, кто мне говорит обратное. Относительно температуры — мы либо не используем == вообще, так как погрешность может быть, либо == допустимо. Если датчик температуры целые числа возвращает, а не с плавающей точкой, естественно.

LMA>Какая к черту библиотека? Мы обсуждаем задание на собеседовании!

avg — библиотечная функция. Она должна быть именно в либах. И должна не содержать подводных камней. Либы собственные есть у каждого проекта. Либы, это фундамент. С ненадежными либами много не напрограммируешь. Ты тестируешь умение писать либы на скорость, за 2 минуты, без тестирования, сходу. Более того, ИМХО, все платформозависимые вещи должны быть именно в либах. У нас например так и есть. А в основном коде, который пишется каждый день, ничего платформозависимого нет. И не должно быть. Низкоуровневые вещи всегда скрывают в либах, а не демонстрируют свою крутость непосредственно в основном коде.

LMA>То есть ты сам макросами создавал ситуацию, при которой в языке, в котором в принципе не может быть UB, мог получить UB и это было проблемой, я ни чего не упустил?

Не создавал. Более того, макросами никогда не увлекался. Я говорю не о языках, а о концепциях. Есть концепция сложения чисел ограниченной разрядности, и для нее, в общем случае, есть UB. А конкретный язык — лишь способ записи этой концепции для реализации конкретного алгоритма. Если мыслить в рамках концепций, а не конкретного языка, можно стороной обходить кучу подводных камней. А вот если мыслить в рамках языка, то на грабли можно нарваться на ровном месте, при выходе новой версии языка, например. Знание принципов освобождает от необходимости помнить кучу деталей.

LMA>Так в чем разница?

В том, что логике не поддается, вот в чем разница. Даже если в код заглянешь, далеко не каждый сходу поймет, что там проблема с коммутативностью. А справедливо ожидать, что этой проблемы не будет.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.