Gecode / gecode

Generic Constraint Development Environment
https://www.gecode.org
Other
283 stars 76 forks source link

c++20 warnings in 6.3.0 #116

Open yurivict opened 3 years ago

yurivict commented 3 years ago

clang-11 on FreeBSD 13 prints these warnings:

In file included from /usr/local/include/gecode/minimodel.hh:51:
In file included from /usr/local/include/gecode/float.hh:833:
/usr/local/include/gecode/float/val.hpp:296:18: warning: ISO C++20 considers use of overloaded operator '==' (with operand types 'const Gecode::FloatVal::FloatValImpType' (aka 'const interval<double, policies<save_state<Float::Rounding>, checking_strict<double>>>') and 'const Gecode::FloatVal::FloatValImpType') to be ambiguous despite there being a unique best viable function [-Wambiguous-reversed-operator]
      return x.x == y.x;
             ~~~ ^  ~~~
/usr/local/include/gecode/third-party/boost/numeric/interval/interval.hpp:84:8: note: ambiguity is between a regular call to this operator and a call with the argument order reversed
  bool operator== (const interval_holder& r) const;
       ^

In file included from /usr/local/include/gecode/driver.hh:37:
In file included from /usr/local/include/gecode/minimodel.hh:51:
In file included from /usr/local/include/gecode/float.hh:833:
/usr/local/include/gecode/float/val.hpp:319:18: warning: ISO C++20 considers use of overloaded operator '!=' (with operand types 'const Gecode::FloatVal::FloatValImpType' (aka 'const interval<double, policies<save_state<Float::Rounding>, checking_strict<double>>>') and 'const Gecode::FloatVal::FloatValImpType') to be ambiguous despite there being a unique best viable function with non-reversed arguments [-Wambiguous-reversed-operator]
      return x.x != y.x;
             ~~~ ^  ~~~
/usr/local/include/gecode/third-party/boost/numeric/interval/interval.hpp:85:8: note: candidate function with non-reversed arguments
  bool operator!= (const interval_holder& r) const;
       ^
/usr/local/include/gecode/third-party/boost/numeric/interval/interval.hpp:84:8: note: ambiguous candidate function with reversed arguments
  bool operator== (const interval_holder& r) const;
       ^
zayenz commented 3 years ago

Thanks for reporting.