> Dont forget it needs to work with overloading. We have sqrt ([float | double > | long double]), abs ([int | long | float | double | long double]), etc. Overloading does not work for extern "C" function. At most one of those can be extern "C". Regards, Martin