OberonCore https://forum.oberoncore.ru/ |
|
статус и описание шаблонных модулей - лето 2021 https://forum.oberoncore.ru/viewtopic.php?f=22&t=6795 |
Страница 1 из 1 |
Автор: | budden [ Пятница, 13 Август, 2021 14:53 ] |
Заголовок сообщения: | статус и описание шаблонных модулей - лето 2021 |
Добрый день! Интересует, работают ли в итоге шаблонные модули, а также хочется узнать, как ими пользоваться. |
Автор: | Sergej Durmanov [ Пятница, 13 Август, 2021 19:56 ] |
Заголовок сообщения: | Re: статус и описание шаблонных модулей - лето 2021 |
Работают, если без фанатизма, но есть проблемы, когда "шаблон на шаблоне и шаблоном погоняет". Как пользоваться - онисано в спецификации языка. Ну плюс сделали нетипизированные параметры. Типы параметров: модуль (IMPORT), тип (TYPE), константа (CONST). Процедуры считаются константами. MODULE A( IMPORT M, TYPE T, CONST C ); VAR x*: M.List; VAR y*: ARRAY C OF T; END A. MODULE B; IMPORT C, A(C, SIGNED32, 3 ); BEGIN VAR a := A.y[0]; A.x.Add(5); END B; |
Автор: | budden [ Пятница, 13 Август, 2021 20:48 ] |
Заголовок сообщения: | Re: статус и описание шаблонных модулей - лето 2021 |
Спасибо, примерно понял, хотя про нетипизированные параметры - не очень понял. |
Автор: | Sergej Durmanov [ Суббота, 14 Август, 2021 05:34 ] |
Заголовок сообщения: | Re: статус и описание шаблонных модулей - лето 2021 |
Нетипизированные параметры, это когда вместо MODULE A( IMPORT M, TYPE T, CONST C ), пишем MODULE A( M, T, C ), и тип параметров M, T, C вычисляется при специализации. то есть, например, в один параметр M можно передать и модуль и запись и объект - главное чтобы их интерфейс не противоречил ожиданиям шаблона |
Автор: | budden [ Суббота, 14 Август, 2021 15:56 ] |
Заголовок сообщения: | Re: статус и описание шаблонных модулей - лето 2021 |
А, понял. Неплохо, хотя если бы был тип "всё", то и не надо было бы этого вовсе. И как впечатления от использования? Я тут задумался, что шаблоны в каком-нибудь C# довольно сложные. И вроде выкинуть сложность нельзя, например, ко(нтра)вариантность возникает естественно. Но вдруг есть какой-то особый "путь оберона", который позволяет сделать попроще, но в то же время так, что большинство применений будут покрываться. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |