2016-02-29 2 views
0

Возможно ли определить количество измерений массива Ada во время выполнения? Например, если тип массиваОпределение количества измерений массива Ada

type int_int_array is array (1 .. 3, 1 .. 4) of integer; 

Я ищу какой-то атрибут или комбинацию атрибутов я мог бы использовать, чтобы определить, что массив имеет 2 размеров. Конечная цель состоит в том, чтобы действительно перебирать весь массив, но все способы сделать это. Я знаю только о работе, если вы заранее знаете счетчик измерений. Определение массива (включая количество измерений) будет меняться совсем немного во время какой-то текущей разработки, и я надеюсь, что мне не нужно обновлять каждый фрагмент кода, который повторяется каждый раз.

Спасибо!

ответ

0

Вы всегда будете знать об этом, поэтому вам не нужно спрашивать во время работы.

+0

Моя проблема в том, что многие места хотят перебирать весь массив. Во время разработки за последние пару недель размерность массива изменилась с 1 на 2 до 3 и вернулась на 2, и это будет продолжаться, поскольку некоторые вещи настраиваются. Код итератора может использовать атрибут range для работы с изменяющимися диапазонами, но я надеялся, что я мог бы избежать касания каждого фрагмента кода итератора всякий раз, когда размерность обновляется. – Kevin

+0

Возможно, вам следовало бы спросить об этом в вопросе. Решение является тривиальным в Ada 2012: 'для цикла E Array_Instance ... end loop;' –

+0

Это работает, спасибо. Я вырос с Ada95, где, по-видимому, это была не конструкция. Кроме того, не обижайтесь, но вы пропустили последнее предложение моего вопроса? Это по сути то же, что и мой предыдущий комментарий. – Kevin

 Смежные вопросы

  • Нет связанных вопросов^_^