Re[22]: Да ну и фиг с этой Java-ой. .Net будет убит Rust-ом
От: Evgeny.Panasyuk Россия  
Дата: 09.08.16 16:11
Оценка:
Здравствуйте, ·, Вы писали:

·>В С++ — другая крайность. Индекс вообще проверяться не будет (вычислили значение i по таблице неправильно и бабах).

·>А если захочешь безопасностьи то вместо vect[i] будешь использовать vect.at(i) и компилятор С++ столкнётся с той же бедой, что и сишарп.

Есть третий вариант: во время разработки и тестирования включаются asserts, checked iterators и прочий defensive programming, которые помогают отлавливать подобные проблемы
http://coliru.stacked-crooked.com/a/b70a433c52e5b336
#include <vector>

int main()
{
    std::vector<int> xs;
    xs[5];
}

/usr/local/include/c++/6.1.0/debug/vector:415:
Error: attempt to subscript container with out-of-bounds index 5, but 
container only holds 0 elements.

Objects involved in the operation:
    sequence "this" @ 0x0x7fff719fd1d0 {
      type = std::__debug::vector<int, std::allocator<int> >;
    }
bash: line 7: 14850 Aborted                 (core dumped) ./a.out
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.