On Tue, Dec 12, 2006 at 09:34:57PM +0100, Richard B. Kreckel wrote:
But if the extra class members are of a class that is not intended to be used by any user of the library and cannot be used (at least without messing around),
There is no need of "messing around". Corresponding symbols are readily available in the shared object (since they have ELF visibility `default' rather than `hidden' or `private'), so: // bugme.cpp #include <ginac/ginac.h> namespace GiNaC { class lanczos_coeffs; } void foo() { using namespace GiNaC; lanczos_coeffs bugme; // do something here } BTW, people *do use* _exN stuff in their code.
Hence, there isn't anything that can break when the library is later upgraded underneath applications using it.
I don't think that changing class layout for increasing precision is a good idea anyway. Best regards, Alexei -- All science is either physics or stamp collecting.