Тег

Walter Bright

2 материалов

В C++26 появились контракты. Создатель D говорит, что от них мало толку (cppstories.com)

Контракты позволяют функции заявить, что должны гарантировать вызывающие и что она обещает взамен. Нарушение можно проигнорировать, наблюдать, принудительно проверить или проверить с быстрым завершением. Выбор делается на уровне сборки, переносимого переключателя для отдельного утверждения нет. Руководство предупреждает, что контракты не заменяют валидацию входных данных.

Уолтер Брайт, который говорит, что добавлял контракты в Zortech C++ в 1990-х и позже в D, написал, что они «оказались не очень полезными». Встраиваемый разработчик хочет обратного: проверки включены на рабочей станции и выключены на слабых производственных процессорах.

Не просто заголовок — разбор дискуссии

Главные треды HN: факты из обсуждений, разные стороны, голоса инсайдеров. Email, Telegram или RSS.

Linux выпилил strncpy: шесть лет, 360 патчей и функция, которой 50 лет (phoronix.com)

strncpy убрали за «контринтуитивную семантику» вокруг NUL-терминатора и бессмысленное забивание нулями. Цифра «360 патчей» — это 360 использований, переписанных на безопасные вызовы, а не 360 багов.

Откуда она взялась: функцию написали, чтобы копировать 14-байтные имена файлов из ранних записей каталогов UNIX — дополненные нулями, но без терминатора. Для строк её не предназначали.