I've searched the list archives related to the subject of the fpc warning "Constructor should be public" and am unsure as to the resolution of this issue, or would perhaps like to revisit it.
In my opinion the warning should be removed, or at least able to be suppress through a switch. I beginning to make the transition to cross platform delphi/pascal code. I have many times in the past used private or protected constructors to signify a class is should be created outside the unit in which it was defined. Example: type EAssertError = class(Exception) private FFileName: string; FLineNumber: Integer; constructor CreateFromLine(const Msg, FileName: string; LineNumber: Integer); public property FileName: string read FFileName; property LineNumber: Integer read FLineNumber; end; ... { EAssertError } constructor EAssertError.CreateFromLine(const Msg, FileName: string; LineNumber: Integer); begin inherited Create(Msg); FFileName := FileName; FLineNumber := LineNumber; end; ... procedure AssertErrorProc(const Msg, FileName: string; LineNumber: Integer; ErrorAddr: Pointer); begin raise EAssertError.CreateFromLine(Msg, FileName, LineNumber); end; ... intialization System.AssertErrorProc := @AssertErrorProc; _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal