Where should I look at if I want to switch between float and double precision at compile time. Its like, if user wants everything in float instead of double precision how I
Without knowing exactly how you intent to use the data, it's hard to recommend the correct solution.
Have a look at the union date type.
http://msdn.microsoft.com/en-us/library/5dxy4b7b(v=VS.80).aspx
Templates would also be a viable option depending on the usage.
http://msdn.microsoft.com/en-us/library/y097fkab.aspx
I prefer not to have #define
s in my code.
I would have two different headers with two different typedef
s, and allow build options to choose which header is included.
If it is OK to make the switch at compile time, a simple typedef
would do:
#ifdef USE_DOUBLES
typedef double user_data_t;
#else
typedef float user_data_t;
#endif
Use user_data_t
in your code, and set USE_DOUBLES
if you want doubles
at compile time:
g++ -DUSE_DOUBLES=1 myprogram.cpp