Здравствуйте, Homunculus, Вы писали:
H>Каждый раз перед обращением к выбранному должно проверяться — а есть ли выбранный.
Тогда, повторю, любое спецзначение, заведомо отличное от валидного индекса, можно использовать для обозначения отсутствия выбора.
H>Потому что индекс может быть равен 65525. Ну чисто так, по логике. Может же? Может. Только вот это будет битый индекс. H>А "-1" он не может быть равен никак.
Да почему не может-то? Отрицательные индексы допустимы по правилам C/C++. А если индекс хранится в 16-разрядной переменной, то 65525 полностью эквивалентно -11.
H>если ты забьешь невалидное значение именно как max_unsigned_short, например, то при смене размерности массива до long — ты огребешь проблем.
Чтобы не огрести проблем, очевидно же, что разрядность индекса (а не размерность массива) должна определяться рядом со спецзначением "не выбрано". Вообще, любые связанные параметры должны определяться рядом.