Pull to refresh
41
0
Георгий Грибков @GGribkov

C++ Developer

Send message

Что вы имеете ввиду под косвенным получением прибыли через изменение общественного мнения?

Когда инвестор даёт кому-то деньги, он ожидает получить эту сумму обратно, помноженную на 10, через условные 5-10 лет. Компания, получившая инвестиции, наоборот сильно заинтересована в продажах и прибыли, потому что ей нужно будет эти инвестиции возвращать. Так что инвестиции -- это не бесплатные деньги)

Microsoft для OpenAI не конкурент, а самый большой партнёр)

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

Подозреваю, что сам автор её особо и не вычитывал)

Бро, не мог не узнать стены родного ТулГУ на фоне. Я в этом кабинете тоже часто бывал. Так мы с тобой ещё и одного и того же года выпуска)

На мой взгляд, это прекрасный вопрос, и ответ у него тоже однозначный:

Это пример неуточненного поведения и грубой ошибки в коде. Здесь нет смысла обсуждать результат, так как он может различаться в зависимости от платформы, компилятора, и даже разных запусков программы на одной и тоже же машине.

Любой программист на C++, например, обязан это знать.

У этого вопроса один минус: он очень заезженный, но если закрыть на это глаза, то он отлично подойдёт для собеседования джуна: посмотреть, знаком ли человек с концепцией такого поведения и как он рассуждает. Да и для мидла, в целом, вопрос может подойти как один из первичных примитивных фильтров -- на случай, если на собеседование на мидлла пришел человек с недостаточными компетенциями.

Бро, тебе просто нужно попробовать себя в продуктовой компании, а не проектной. И все у тебя станет хорошо! :)

А с предложением "The bug seems to be caused by an off-by-one error" не справляется даже всемогущий гугл

Бро, у тебя перенос строки в переводчик вбит, потому гугл думает, что там два разных предложения)

Абсолютно :)
31 марта + 11 дней = 11 апреля, а не 10.
И UST обвалился именно 11 апреля.

Прошло всего 11 дней после того выхода статьи, а UST уже обвалился вместе с Luna под ноль)))
Автор, спасибо за детальный разбор!

Ну, так и кубик Рубика можно разобрать и собрать неправильно)

Так головоломки же продаются в собранном виде. Это значит, что как ты её не запутывай, у нее будет решение.

Сорри за некропостинг, но на самом деле их переставить можно и достаточно легко)

Всё, что можно автоматически узнать о функциях, имея их объявления/определения, анализатор узнаёт автоматически. По возможности и необходимости, конечно.


Аннотации же нужны для предоставления эвристической информации, которую обычно нельзя "вытянуть" программно. Аннотации призваны отвечать на вопросы вроде:


  • Является ли функция assert'ом?
  • Создана ли она только для ввода/вывода в файл?
  • Меняет ли она состояние памяти?
  • Является ли она аналогом memcpy?
  • Может ли она считать небезопасные данные?
  • … и тому подобное.

Поэтому такие вещи мы делаем руками. Это позволяет не только улучшить работу анализатора с популярными функциями, но и расширить его кругозор со стандартных функций до их аналогов (например, провести ему аналогию между malloc и calloc, realloc, _aligned_malloc, _recalloc, strdup и т.д). И еще много плюшек даёт.


Надеюсь, я правильно понял ваш вопрос :)

А можно это утверждение как-то аргументировать более развернуто?

Конечно, можно. Для начала рассмотрим цитату из стандарта C++17, п 20.5.4.2.1:


The behavior of a C++ program is undefined if it adds declarations or definitions to namespace std or to a namespace within namespace std unless otherwise specified. A program may add a template specialization for any standard library template to namespace std only if the declaration depends on a user-defined type and the specialization meets the standard library requirements for the original template and is not explicitly prohibited.

То есть, можно добавлять специализацию для любого шаблона из стандартной библиотеки, если специализация добавляется для кастомного типа (и удовлетворяет остальным ограничениям стандарта).


Теперь рассмотрим аналогичную выдержку из драфта стандарта C++20, п 16.5.4.2.1:


Unless explicitly prohibited, a program may add a template specialization for any standard library class template to namespace std provided that (a) the added declaration depends on at least one program-defined type and (b) the specialization meets the standard library requirements for the original template.

То есть, раньше была формулировка "специализация любого шаблона из стандартной библиотеки", а теперь — "специализация любого шаблона класса из стандартной библиотеки". Следовательно, специализации шаблонов функций исключили из списка того, что можно добавить в namespace std.

А что можно увидеть, если сделать всё по вашему плану?
Наверное, никак. Вряд ли можно доверять таблицам, не имея доступу к исходному коду.
Аххахахах, вот это действительно сильно написано :D
PVS-Studio на них есть :) Мимо такой игры мы пройти не смогли.
Если вам интересно посмотреть, какие ошибки мы там нашли, предлагаю почитать статью:
VVVVVV??? VVVVVV!!!
1

Information

Rating
3,560-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity