Математическая библиотека C ++ вполне может быть реализована в служебных классах for (только для статических членов). В этом случае может быть использован гораздо более простой подход:
class FPMath {
public:
static double add(double, double);
static double sub(double, double);
static double mul(double, double);
static double div(double, double);
};
Тогда заголовок для интерфейса C будет:
double FPMath_add(double, double);
double FPMath_sub(double, double);
double FPMath_mul(double, double);
double FPMath_div(double, double);
И соответствующая реализация может быть:
double FPMath_add(double a, double b) { return FPMath::add(a, b); }
double FPMath_sub(double a, double b) { return FPMath::sub(a, b); }
double FPMath_mul(double a, double b) { return FPMath::mul(a, b); }
double FPMath_div(double a, double b) { return FPMath::div(a, b); }
Но, может быть, это констатирует очевидное ....