25 Jul
2014
25 Jul
'14
12:13 p.m.
2014-07-25 13:38 GMT+02:00 Andrzej Krzemienski
Hi, I have encountered something I consider a bug in boost::rational's interface. Its documentation discusses in detail why conversion from double is not supported, but the following code works fine:
#include <iostream> #include
int main() { double d = 31.82; boost::rational<int> r = d; std::cout << r << std::endl; }
With the following result: 31/1 It just discards the fractional part. Such conversion is really confusing an I claim should be explicitly deleted.
I forgot to mention why this is working. A double is implicitly converted to int and then the implicit constructor from int is used.