LINUX.ORG.RU

История изменений

Исправление fsb4000, (текущая версия) :

Можно разъяснить причину веселья?

В опасном С++ в Debug режиме будут проверяться выходы за границы у массивов, векторов, слайсов и всех контейнеров в методе, который не проверяет выходы за границы.

В безопасном Rust в Debug режиме не будут проверяться выходы за границы массивов, векторов, слайсов и т.д в аналогичном методе.

Вот для сравнения:

https://godbolt.org/z/c3d3vbn58

https://godbolt.org/z/dj3de8fv6

https://godbolt.org/z/jqzbvnaq5

https://godbolt.org/z/rdTevh1d3

Безопасный Rust не захотел добавить проверок в Debug, а лишь написал комментарий:

// SAFETY: the caller guarantees that `slice` is not dangling, so it
// cannot be longer than `isize::MAX`. They also guarantee that
// `self` is in bounds of `slice` so `self` cannot overflow an `isize`,
// so the call to `add` is safe.

Исправление fsb4000, :

Можно разъяснить причину веселья?

В опасном С++ в Debug режиме будут проверяться выходы за границы у массивов, векторов, слайсов и всех контейнеров в методе, который не проверяет выходы за границы.

В безопасном Rust в Debug режиме не будут проверяться выходы за границы массивов, векторов, слайсов и т.д в аналогичном методе.

Вот для сравнения:

https://godbolt.org/z/c3d3vbn58

https://godbolt.org/z/dj3de8fv6

https://godbolt.org/z/jqzbvnaq5

https://godbolt.org/z/ojjMvGEGT

Безопасный Rust не захотел добавить проверок в Debug, а лишь написал комментарий:

// SAFETY: the caller guarantees that `slice` is not dangling, so it
// cannot be longer than `isize::MAX`. They also guarantee that
// `self` is in bounds of `slice` so `self` cannot overflow an `isize`,
// so the call to `add` is safe.

Исправление fsb4000, :

Можно разъяснить причину веселья?

В опасном С++ в Debug режиме будут проверяться выходы за границы у массивов, векторов, слайсов и всех контейнеров в методе, который не проверяет выходы за границы.

В безопасном Rust в Debug режиме не будут проверяться выходы за границы массивов, векторов, слайсов и т.д в аналогичном методе.

Вот для сравнения:

https://godbolt.org/z/c3d3vbn58

https://godbolt.org/z/dj3de8fv6

https://godbolt.org/z/jqzbvnaq5

Безопасный Rust не захотел добавить проверок в Debug, а лишь написал комментарий:

// SAFETY: the caller guarantees that `slice` is not dangling, so it
// cannot be longer than `isize::MAX`. They also guarantee that
// `self` is in bounds of `slice` so `self` cannot overflow an `isize`,
// so the call to `add` is safe.

Исправление fsb4000, :

Можно разъяснить причину веселья?

В опасном С++ в Debug режиме будут проверяться выходы за границы у массивов, векторов, слайсов и всех контейнеров в методе, который не проверяет выходы за границы.

В безопасном Rust в Debug режиме не будут проверяться выходы за границы массивов, векторов, слайсов и т.д в аналогичном методе.

Вот для сравнения:

https://godbolt.org/z/c3d3vbn58

https://godbolt.org/z/dj3de8fv6

https://godbolt.org/z/jqzbvnaq5

Исходная версия fsb4000, :

Можно разъяснить причину веселья?

В опасном С++ в Debug режиме будут проверяться выходы за границы у массивов, векторов, слайсов и всех контейнеров на методе, который не проверяет выходы за границы.

В безопасном Rust в Debug режиме не будут проверяться выходы за границы массивов, векторов, слайсов и т.д.

Вот для сравнения:

https://godbolt.org/z/c3d3vbn58

https://godbolt.org/z/dj3de8fv6

https://godbolt.org/z/jqzbvnaq5