- Код: Выделить всё
template< int T >
class IntegerArray
{
int Arr[ T ];
/* ... */
};
по анологии с шаблоном в free pascal можно использовать generic
Как я понял- это выглядит так
- Код: Выделить всё
{$mode objfpc}
.....
generic IntegerArray<T> = object
......
однако проблема в том, что T- в данном случае не типизирован как в примере с с++.
То есть T нельзя использовать как величину определяющую верхнюю границу массива, как в предыдущем примере.
Вопрос, можно ли типизировать параметр generic-a или нет?
Впринципе есть такое "не элегантное" решение этого вопроса для аналога выше приведенного примера:
- Код: Выделить всё
type
generic IntegerArray<T> = object
Arr: array[0..sizeof(T)] of integer;
//....
end;
где потом
можно так- для случая T=10
- Код: Выделить всё
type
Tt=array[1..10] of byte;
var
x : specialize IntegerArray<Tt>;
.....
Может все таки есть что-то более стандартное?