Ошибка Generic?

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ошибка Generic?

Сообщение trifon » 15.10.2007 22:47:29

Кажется я нашел ошибку Generic в fpc-2.2.0

Код: Выделить всё
type
  Generic TVarray<Ti> = class
  type public
    PChunk32 = ^TChunk32;
    TChunk32 = record
      citems : array[0..31] of Ti;
      next : PChunk32;
    end;
  var protected
      items : PChunk32;
  end;


var
  A : TVarray.TChunk32;
begin
end.


Как я понимаю такой код не допустим, однако он компилируется.
Note: Local variable "A" not used - единственное предупреждение, однако переменная A не может быть объявлена из за поля citems : array[0..31] of Ti;
trifon
постоялец
 
Сообщения: 135
Зарегистрирован: 24.12.2006 12:08:35

Сообщение volvo877 » 16.10.2007 22:59:30

trifon, а ты обратиться к этой переменной пробовал? Попробуй:
Код: Выделить всё
var
  A : TVarray.TChunk32;
begin
  A.citems[1] := 0;
end.
, что будет?

А после специализации - все нормально:
Код: Выделить всё
type
  TArr = specialize TVarray<integer>;
var
  A : TArr.TChunk32;
begin
  A.citems[1] := 0;
end.
volvo877
незнакомец
 
Сообщения: 8
Зарегистрирован: 04.09.2005 14:34:53

Сообщение trifon » 17.10.2007 22:46:36

Уж наверное, если мне пришло в голову попытаться объявить её, напрашивался следующий шаг - попытаться её использовать.

Это всё равно ошибка компилятора, хотя и не критичная.
trifon
постоялец
 
Сообщения: 135
Зарегистрирован: 24.12.2006 12:08:35


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Рейтинг@Mail.ru