История изменений
Исправление eao197, (текущая версия) :
Всегда было интересно - а что, если исключение вылетит здесь? Или по условиям задачи это невозможно?
Обычно вещи вроде remove_item реализуют так, чтобы исключения не выбрасывались. Равно как и из деструкторов. Если же это не так, то обращение к remove_item так же можно обернуть в try...catch. Если этого не сделать, то multi_index останется с нарушенными инвариантами.
А для того, чтобы разработчику было проще разобраться что к чему, в C++ введен nothrow.
Рантайм упростился.
Почему разработчика должна интересовать сложность рантайма используемого им языка программирования? Да еще и при том, что вменяемые разработчики обычно понимают, что чем более высокоуровневым языком они пользуются, тем сложнее будут потроха как у компилятора этого языка, так и у рантайма.
Компилятор напомнит (в Rust, не в Си++).
Может это хорошо для Rust-а, но дело в том, что зарабатывать на написанных на Rust-е проектах еще неизвестно когда можно будет. А на C++ со мной лично это происходит уже более 20 лет. В течении большей части из них мне доводилось пользоваться компиляторами с поддержкой исключений, что существенно облегчает жизнь, в сравнении с кодами возврата.
Исходная версия eao197, :
Всегда было интересно - а что, если исключение вылетит здесь? Или по условиям задачи это невозможно?
Обычно вещи вроде remove_item реализуют так, чтобы исключения не выбрасывались. Равно как и из деструкторов. Если же это не так, то обращение к remove_item так же можно обернуть в try...catch. Если этого не сделать, то multi_index останется с нарушенными инвариантами.
А для того, чтобы разработчику было проще разобраться что к чему, в C++ введен nothrow.
Рантайм упростился.
Почему разработчика должна интересовать сложность рантайма используемого им языка программирования. Да еще и при том, что вменяемые разработчики обычно понимают, что чем более высокоуровневым языком они пользуются, тем сложнее будут потроха как у компилятора этого языка, так и у рантайма.
Компилятор напомнит (в Rust, не в Си++).
Может это хорошо для Rust-а, но дело в том, что зарабатывать на написанных на Rust-е проектах еще неизвестно когда можно будет. А на C++ со мной лично это происходит уже более 20 лет. В течении большей части из них мне доводилось пользоваться компиляторами с поддержкой исключений, что существенно облегчает жизнь, в сравнении с кодами возврата.