Здорово, но про экспорт полей никто и не говорил. Говорили про экспорт переменных :-)
эээ, структура, как бы, может экспортировать не все поля.
Может. А может и все. Кроме того, нигде в репорте не сказано, что структура обязана занимать непрерывный кусок в памяти. То есть это уже нюансы реализации. Она вообще может быть реализована списком или деревом :-) Это никак не пересекается с возможностью экспортировать переменные такого типа. Ну вот вообще никак. Тем более что экспорт там заведомо read only.
Ну, то есть нужно хотя бы один пример, где конкретно запрет экспорта таковых переменных в read-only режиме делает жизнь лучше хотя бы кому-то (при этом все остальное в языке не меняем).
Замечу, именно запрет экспорта, а не решение программиста экспортировать нечто через opaque-тип/переменную opaque-типа.
Что значит "не имеющие составных частей"? Имеется ввиду только операция присваивания?
имеется ввиду, что это цельная штука, и если она и имеет какие-то физические части, на уровне языка они не определяются и для возможного доступа к ним служат специальные средства. Например, формально, скалярный тип REAL физически имеет некую структуру, но на уровне языка это единое целое, и нет средств(структурного поля), чтобы напрямую обратиться к мантиссе.
К скалярам, обычно, относят целочисленные, вещественные, перечислимые, диапазонные, символьные, указатели, ссылки и комплексные, если они определены на уровне языка и не имеют структурных полей.
Ну, то есть ты с igor не согласен? :-)
Кроме того, сколь я помню, в Обероне есть несколько встроенных функций для операций над мантиссой и так далее.
Да, кроме того, тип SET Вирт явно причисляет к скалярным типам, хотя доступ к отдельным "полям" там есть.