> > However, I do think we could clean it up a bit with a pre-processor
> > #define AEROINTFUNC double (FGAerodynamics::*)(int) const
>>> or typedef ...
>> ... renaming ... to remove the ambiguity any better?

As someone - i think - mentioned, IMHO it would be
better to have single getter functions, like -
*** added to FGAircraft.h
  // test - grm
  inline double GetXYZep1() const { return vXYZep(1); }
  inline double GetXYZep2() const { return vXYZep(2); }
  inline double GetXYZep3() const { return vXYZep(3); }

Then the lines that give msvc heart failure can be changed
to - perhaps a more readable, and consistent form of ...
*** changed in FGAircraft.cpp
  PropertyManager->Tie("metrics/eyepoint-x-ft", this,
                       &FGAircraft::GetXYZep1);
  PropertyManager->Tie("metrics/eyepoint-y-ft", this,
                       &FGAircraft::GetXYZep2);
  PropertyManager->Tie("metrics/eyepoint-z-ft", this,
                       &FGAircraft::GetXYZep3);

This change compiles great for me. Will zip and send
completed cpp/h pairs i have done if told where ...
Remember, there are about 5/6 FGxxxxxxxx::* (pointers)
to be 'fixed' likewise, so it is more than one define in one
module pair (cpp/h) ...

And this would also then apply to the 'setter(ind)' when they
are added to the mix ...

I must say, in passing, this addition gives a great BOOST
to the developing FGFS 'property tree' ... and remember
the tree can now be output (timed/delimited) thru logger ...
--config...xml, although i have not tried it yet ... this is
in addition to JSBSim's own extensive (csv) debug
capabilities ...

Also, such function additions gives the compiler/linker a
chance to really make this 'inline', since the double value
could be 'addressed' in simple lines, when loaded, like
    mov    eax, [0x12345678]    ; get that double
    mov    edx,[0x12345678+4]
or in 64-bits
    lod    reg1, [0x1234567812345678]    ; load double
which is all we can ask for 'inline' ...

> ... MSVC is wrong but we can help it by providing
> a "hint" in the form

I also agree msvc 'should' have been able to resolve
it as it was. It had the choice of 2 getter's. Why
choose one, d g(), and then decide 'no fit', when
the 'next' definition is there, d g(i)? go figure ...
Hmmm - where to post this 'bug' so MS will see it?

but i hope we can get on with this great sim ...

>> Hehe me too. It sure explains those feet/meter problems.
Still to do another cvs update to check these ...

rgds,

Geoff.





_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel

Reply via email to