Boost logo

Boost :

Subject: [boost] [rational] Inadvertent construction from double
From: Andrzej Krzemienski (akrzemi1_at_[hidden])
Date: 2014-07-25 07:38:51


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 <boost/rational.hpp>

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.

Regards,
&rzej


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk