On Mon, 6 Jan 2014, Mark Morgan Lloyd wrote:
Michael Van Canneyt wrote:
On Sun, 5 Jan 2014, Mark Morgan Lloyd wrote:
Simulating a C-style conditional, I can do this
function tf(const q: qword; const qt, qf: TObject): TObject; inline;
begin
Assert(TypeOf(qt) = TypeOf(result));
This is always true. Everything descends from TOBject.
But assuming the result is not TObject, it would be
Assert((qt=Nil) or (qt.Inheritsfrom(TheResultClass))
So again skipping the nil check for simplicity, this compiles but are the
semantics right?
Assert(qt.ClassType.InheritsFrom(result.ClassType));
The classtype is not needed.
The semantics are not right IMHO, but I'd have to see the original C stuff to
be able to say with certainty.
Michael.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal