[fpc-devel] Impossible CONST generic constraints in forward declarations...?
Martin Frb
lazarus at mfriebe.de
Tue Nov 25 23:01:52 CET 2025
On 25/11/2025 22:02, Martin Frb via fpc-devel wrote:
> On 25/11/2025 20:41, Martin Frb via fpc-devel wrote:
>> According to
>> https://forum.lazarus.freepascal.org/index.php/topic,52157.msg383991.html#msg383991
>>
>>
>> 2) Constraints in a "forward" declaration in the implementation (or a
>> program?) must be kept.
>
> Actually, that does not seem to be true either...
Sorry, the evening seems to have been to long....
I misread the post.
- "const constraints" (value param) must be repeated on forward, and
forward only.
- All others must always be stripped.
That leaves 2 other issues
1)
The example from the link, shouldn’t that be a ; instead of the ,
generic procedure Test<T,const N:Integer>(A: T); forward;
generic procedure Test<T,const N:Integer>(A: T); begin end;
(even if the const kind of clarifies that integer only applies to N, not
to T...)
2)
from my 1st post
fpc 3.3.1 only
it seems it forgets some checks?
T2 changes to an incompatible constraint.
program Project1;
{$mode ObjFPC}
type
TX1 = class end;
TX2 = class end;
generic procedure Proc4<T1; T2: TX1>(a: T1); forward;
generic procedure Proc4<T1; T2:TX2>(a: T1); begin {} end;
begin
end.
More information about the fpc-devel
mailing list