Я пытался реализовать nd-массив в C ++, как numpy в python, но я не знаю, как справляться с такими проблемами (или исключениями?), Как «индексы вне диапазона». Должен ли я просто использовать assert для проверки параметров в начале функций или использовать механизмы try / catch / throw?
Кстати, если я использую assert, как печатать сообщения об ошибках типа «входной индекс находится вне диапазона» для пользователей, а не просто «утверждение в строке 5 не удалось».
макрос, который я сейчас использую для проверки индекса:
#define RANGE_CHECK(total, index) assert(total > index)