Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Неее, тут всё гораздо интереснее. Из указателя ты много информации не вытянешь, а вот из индекса в массиве очень даже.
SVZ>К примеру, у нас в структурах данных некоторые связи не хранятся явно, а вычисляются на основе индекса.
SVZ>Вот пример вычисляемых связей между сущностями
SVZ>SVZ> //! Получить первый порт, принадлежащий грани
SVZ> inline UPORT Facet2UPort1(FACET f) { return f * 2; }
SVZ> //! Получить второй порт, принадлежащий грани
SVZ> inline UPORT Facet2UPort2(FACET f) { return f * 2 + 1; }
SVZ>
SVZ>С указателями ты такого не сделаешь.
Нет-нет, я не предлагал замеменить индексы на указатели. Пусть будут индексы, и пусть они будут по-прежнему вычисляемыми. Вопрос только в том, к чему эти индексы применяются. Если индексы применяюются к массиву, они действительно не могут быть отрицательными. Но только потому что при этом заведомо возникнет выход за пределы массива, а вовсе не потому, что этого требует операция индексирования. Операция индесирования допускает использование отрицательных индексов, если при этом не возникает выхода за пределы массива — вот та мысль которую я хотел выразить.