Re[25]: Блин, ну откуда столько криворуких?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 12.07.06 15:03
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, algol, Вы писали:


A>>Так я все-таки не пойму, в чем заключается выпендреж. Если кто-то из разработчиков не понимает конструкции *src++, то это именно его нужно бить по голове резиновой дубинкой.


Д>Объясняю, за что надо бить.

Д>1. Это copy-paste распространенной реализации паттерна копирования

Вот на вскидку тоже самое без copy&paste — на все случаи программирования.

template<typename T>
bool IsTerm(T val);

template<class OutIt, class InIt>
inline void CopyTerm(OutIt dest, InIt src)
{
    while(!IsTerm(*dest++ = *src++));
}

inline bool IsTerm(char c)
{
  return !c;
}


Д>2. Этот код крайне небезопасен. Напоминаю — в точности такой же кусок кода обошелся MS в миллионы долларов убытков, не говоря уже о потере репутации.


MS-у, вероятно, обошёлся в миллионы долларов не сам код, а то, что где-то было реализовано неправомерное предположение о допустимости отсутствия контроля длины передаваемых данных.
<< Под музыку: Аквариум — Из Калинина В Тверь >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.