Hi,
I am trying to compile the following code:
unit Point3DType;
interface
uses SysUtils, Classes;
type Point3DTrMat = Array [0..8] of double; // 3x3 Transformation matrix (row-major)
type Point3D = record
x, y, z: double;
class operator Multiply(const left:Point3DTrMat; const right:Point3D):Point3D; overload; // Matrix multiplication (result is a column-matrix)
end;
implementation
class operator Point3D.Multiply(const left:Point3DTrMat; const right:Point3D):Point3D;
var retval: Point3D;
begin
Result := retval;
end;
end.
I get the following error message with -Sv compiler option:
Point3DType.pas(11,86) Error: Impossible operator overload
Point3DType.pas(14,1) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: C:\FPC3.2.3\bin\x86_64-win64\ppcx64.exe returned an error exitcode
The problem is with the Point3DTrMat variable in the multiply operator. Theoretically, can its type be a static array?
FPC version: fixes_3_2
language mode: delphi
target OS: Win64
instructionset: COREAVX2
fpu: AVX2