Raise boost baseline version check?
David Ostrovsky
d.ostrovsky at gmx.de
Thu May 4 05:59:51 UTC 2017
Building LO on OpenSUSE 42.2, against the latest available system
boost library (1.54.0), is failing here with:
/home/davido/projects/libo/tools/source/generic/fract.cxx:183:25:
error: ‘boost::integer’ has not been declared
T gcd1 = boost::integer::gcd(i.numerator(), den);
Looking into the most recent version:
http://www.boost.org/doc/libs/1_64_0/boost/rational.hpp
reveals, that this part of the code is consumed from:
#include <boost/integer/common_factor_rt.hpp> // for
boost::integer::gcd, lcm
On 1.54 the similar line in rational.hpp read:
#include <boost/math/common_factor_rt.hpp> // for boost::math::gcd,
lcm
So that this diff fixed the problem here:
diff --git a/tools/source/generic/fract.cxx
b/tools/source/generic/fract.cxx
index bc9bef467e86..02fb711c0c84 100644
--- a/tools/source/generic/fract.cxx
+++ b/tools/source/generic/fract.cxx
@@ -180,8 +180,8 @@ namespace
T den = r.denominator();
// Avoid overflow and preserve normalization
- T gcd1 = boost::integer::gcd(i.numerator(), den);
- T gcd2 = boost::integer::gcd(num, i.denominator());
+ T gcd1 = boost::math::gcd(i.numerator(), den);
+ T gcd2 = boost::math::gcd(num, i.denominator());
bool fail = false;
fail |= o3tl::checked_multiply(i.numerator() / gcd1, num /
gcd2, num);
Unless we want to make the code compile against different boost
versions, should we rather bump the boost version check?
My autogen.input is: [1].
* [1] http://paste.openstack.org/show/608796/
More information about the LibreOffice
mailing list