Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Вот на вскидку тоже самое без copy&paste — на все случаи программирования.
это уже лучше. Хотя force inline — это моветон, да и возможность копировать между двумя произвольными типами странновато выглядит.
ГВ>MS-у, вероятно, обошёлся в миллионы долларов не сам код, а то, что где-то было реализовано неправомерное предположение о допустимости отсутствия контроля длины передаваемых данных.
Здравствуйте, Дарней, Вы писали:
ГВ>>MS-у, вероятно, обошёлся в миллионы долларов не сам код, а то, что где-то было реализовано неправомерное предположение о допустимости отсутствия контроля длины передаваемых данных.
Д>Что в лоб, что по лбу — результат один.
Дело не в результате, дело в причинах. Непосредственная причина — вылет за пределы буфера. А вот привести к этому могло то, что в не правильном месте разрешили бесконтрольное копирование. То есть, предположили что-то из серии: "такой длины данных никогда не случится". Согласись, что это уже несколько иная причина, чем просто "бесконтрольное копирование".
<< Под музыку: Аквариум — Бессмертная Сестра Хо >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Дарней, Вы писали:
ГВ>>Верно. Знание одного принципа виртуального наследования избавляет от необходимости знать сотню деталей. Д>Это не принцип, это хак. Ну да это уже отдельный вопрос.
Что???? Или у нас уже любое знание — хак?
<< Под музыку: Аквариум — Бессмертная Сестра Хо >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Дело не в результате, дело в причинах. Непосредственная причина — вылет за пределы буфера. А вот привести к этому могло то, что в не правильном месте разрешили бесконтрольное копирование. То есть, предположили что-то из серии: "такой длины данных никогда не случится". Согласись, что это уже несколько иная причина, чем просто "бесконтрольное копирование".
Ну всё, опять свою волынку завел.
Переполнение может произойти в любом месте, рано или поздно, по тем или иным причинам.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Что???? Или у нас уже любое знание — хак?
Нет, не любое.
Хак — это, как известно, красивое и изящное техническое решение, которое приводит к множеству других красивых и изящных технических решений.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Не знаю, как оно в реальных, а вот в настоящих проектах дела обстоят совсем не так. А в самых настоящих всё ещё сложнее.
Здравствуйте, Дарней, Вы писали:
ГВ>>Вывод: не надо тащить на поддержку C++-ных проектов кого попало. Д>Вывод: писать надо так, чтобы было понятно. А не так, чтобы выпендриться.
Странный у тебя какой-то вывод. Если код не понятен "не Сишнику", то значит — это выпендрёж. ИМХО, справедливый вывод здесь: нечего "не Сишнику" делать на поддержке "сишных" проектов. И уж тем более нечего ему делать на поддержке проектов на C++.
<< Под музыку: Аквариум — Бессмертная Сестра Хо >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Дарней, Вы писали:
ГВ>>Не знаю, как оно в реальных, а вот в настоящих проектах дела обстоят совсем не так. А в самых настоящих всё ещё сложнее. Д>что значит "настоящих"?
Это была шутка в ответ на очередные "реальные" наблюдения, которые подтверждаются совершенно точными числовыми оценками из ряда: 1%, 5%, 10%, 30%, 70%, 99% (дальше точность растёт!), 99.9%, 99.99%, 99.99(9)%.
<< Под музыку: Аквариум — Бессмертная Сестра Хо >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Дарней, Вы писали:
Д>Переполнение может произойти в любом месте, рано или поздно, по тем или иным причинам.
Да я с этим не спорю. Просто не нужно забывать, что за переполнением буфера может стоять банальное головотяпство проектировщиков. Само по себе копирование строк не виновато.
<< Под музыку: Аквариум — Бессмертная Сестра Хо >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Дарней, Вы писали:
ГВ>>Что???? Или у нас уже любое знание — хак? Д>Нет, не любое. Д>Хак — это, как известно, красивое и изящное техническое решение, которое приводит к множеству других красивых и изящных технических решений.
Источник такого определения можно?
<< Под музыку: Аквариум — Бессмертная Сестра Хо >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Странный у тебя какой-то вывод. Если код не понятен "не Сишнику", то значит — это выпендрёж. ИМХО, справедливый вывод здесь: нечего "не Сишнику" делать на поддержке "сишных" проектов. И уж тем более нечего ему делать на поддержке проектов на C++.
не бывает "сишников" и "не-сишников", бывают только "просто программисты". А разводить лишние непонятности в программе — это от дури и желания выпендриться.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Да я с этим не спорю. Просто не нужно забывать, что за переполнением буфера может стоять банальное головотяпство проектировщиков. Само по себе копирование строк не виновато.
Ага. Главное, найти на кого свалить.
Если уж у разработчика так сильно свербит замутить чего-нибудь небезопасное, пусть обвешает его ассертами и юнит-тестами со всех сторон. А если он этого не делает, значит — он просто безответственный дурак.
Здравствуйте, Дарней, Вы писали:
ГВ>>Источник такого определения можно? Д>не помню, попробуй погуглить
Не я же на него ссылаюсь. Так что, ты и гугли.
<< Под музыку: Аквариум — Бессмертная Сестра Хо >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Дарней, Вы писали:
ГВ>>Странный у тебя какой-то вывод. Если код не понятен "не Сишнику", то значит — это выпендрёж. ИМХО, справедливый вывод здесь: нечего "не Сишнику" делать на поддержке "сишных" проектов. И уж тем более нечего ему делать на поддержке проектов на C++. Д>не бывает "сишников" и "не-сишников", бывают только "просто программисты".
В контексте этой дискуссии такое обобщение неправомерно.
Д>А разводить лишние непонятности в программе — это от дури и желания выпендриться.
По поводу удалённой оценки умственных способностей и прочих психологических диагнозов, я вот тут
<< Под музыку: Аквариум — Бессмертная Сестра Хо >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Дарней, Вы писали:
ГВ>>Да я с этим не спорю. Просто не нужно забывать, что за переполнением буфера может стоять банальное головотяпство проектировщиков. Само по себе копирование строк не виновато. Д>Ага. Главное, найти на кого свалить.
Не-а. Главное, не на кого свалить, а найти причину. Она может быть в проектировании, может быть в кодировании или ещё где-то.
<< Под музыку: Аквариум — Бессмертная Сестра Хо >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!