Opened 5 years ago
#13225 new Bugs
operator != fails in classes derived from boost::rational
Reported by: | Owned by: | Jonathan Turkanis | |
---|---|---|---|
Milestone: | To Be Determined | Component: | rational |
Version: | Boost 1.64.0 | Severity: | Problem |
Keywords: | Cc: |
Description
In a class derived from boost::rational operator != seems to return "false" always.
#include <iostream> #include <boost/rational.hpp> struct RationalNumber : public boost::rational<int> { RationalNumber(int n, int d) : boost::rational<int>(n, d) {} }; using namespace std; template <typename T> void check() { T r(2, 3); T q(2, 3); T s(2, 4); cout << (r!=q) << " " << (r!=s) << endl; } int main() { check<boost::rational<long long>>(); // works cout << "---------------" << endl; check<RationalNumber>(); // fails for boost version > 1_63_0 return 0; }
Bug appears since boost version 1_64_0 and is present in current development trunk (git repository on 20170921) still.
Note:
See TracTickets
for help on using tickets.