Объявление параметра функции в описании метода

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

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

Ответить
KUKA
новенький
Сообщения: 46
Зарегистрирован: 22.02.2012 20:54:19

Объявление параметра функции в описании метода

Сообщение KUKA »

Возможно вопрос тупой, но вроде же можно было делать так:

Код: Выделить всё

procedure Foo( bar : integer = 1 );
SeZuka
постоялец
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Сообщение SeZuka »

Ну можно. В чем вопрос то, или проще здесь написать, чем самому проверить?
KUKA
новенький
Сообщения: 46
Зарегистрирован: 22.02.2012 20:54:19

Сообщение KUKA »

SeZuka писал(а):Ну можно. В чем вопрос то, или проще здесь написать, чем самому проверить?

Я как раз и написал, на что он мне начал ругаться, собственно поэтому и вопрос здесь
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

Как ругается? Где объявляете? Где реализуете?
И, если возможно, код...
KUKA
новенький
Сообщения: 46
Зарегистрирован: 22.02.2012 20:54:19

Сообщение KUKA »

VirtUX писал(а):Как ругается? Где объявляете? Где реализуете?

Синтаксическая ошибка типа - ")" expected but "=" found

Объявляется в разделе interface в прототипе функции

Код: Выделить всё

function RegisterExpectedMemoryLeak(ALeakedObjectClass: TClass; ACount: Integer = 1): boolean; overload;
function RegisterExpectedMemoryLeak(ALeakedBlockSize: Integer; ACount: Integer = 1): boolean; overload;


Это из какого то менеджера для быстрой работой с памятью взятого из исходников Chipmunk Game Physics, исходники которого как-то фигово собираются.
Ошибка вроде фиксится если компилировать в режиме совместимости с Delphi, но возникает еще более странный баг, в другой файле-модуле, которой в принципе можно пренебречь и пофиксить, но я не понял, как оно вообще работало, учитывая, что это оригинальный код и он когда-то компилировался

P.S кстати, на этапе работы препроцессора разве нельзя узнать размер указателя типа SizeOf(Pointer) а то может ругаться типа нету такого
Аватара пользователя
runewalsh
энтузиаст
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Сообщение runewalsh »

{$modeswitch defaultparameters+}
ну или {$mode objfpc} / {$mode delphi}

KUKA писал(а):кстати, на этапе работы препроцессора разве нельзя узнать размер указателя типа SizeOf(Pointer) а то может ругаться типа нету такого

Я тебе больше скажу...

Код: Выделить всё

type
  TMmmaximumUserDefined = record
    a, b: double;
  end;

  {$if sizeof(TMmmaximumUserDefined)>16} {$error boris}
  {$elseif sizeof(TMmmaximumUserDefined)>8} {$error ahaha_stop_it}
  {$endif}

→ ahaha_stop_it
Ответить