Fix warning from scoped_default_precision by pps83 · Pull Request #691 · boostorg/multiprecision
I get these warnings:
[3/9] Building CXX object CMakeFiles/common.dir/src/SplitsInfo.cpp.obj
In file included from D:/work-pps/src/SplitsInfo.cpp:1:
In file included from D:/work-pps/../boost_1_88_0/boost/multiprecision/cpp_int.hpp:19:
In file included from D:/work-pps/../boost_1_88_0/boost/multiprecision/number.hpp:12:
In file included from D:/work-pps/../boost_1_88_0/boost/multiprecision/detail/generic_interconvert.hpp:12:
In file included from D:/work-pps/../boost_1_88_0/boost/multiprecision/detail/default_ops.hpp:4067:
D:/work-pps/../boost_1_88_0/boost/multiprecision/detail/no_et_ops.hpp:458:79: warning: unused variable 'precision_guard' [-Wunused-variable]
458 | detail::scoped_default_precision<multiprecision::number<B, et_off> > precision_guard(a, b);
| ^~~~~~~~~~~~~~~
D:/work-pps/src/SplitsInfo.cpp:18:39: note: in instantiation of function template specialization 'boost::multiprecision::operator*<boost::multiprecision::backends::cpp_int_backend<128, 128, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void>, unsigned long long>' requested here
18 | uint128_t x = uint128_t(from) * to_m;
| ^
In file included from D:/work-pps/src/SplitsInfo.cpp:1:
In file included from D:/work-pps/../boost_1_88_0/boost/multiprecision/cpp_int.hpp:19:
In file included from D:/work-pps/../boost_1_88_0/boost/multiprecision/number.hpp:12:
In file included from D:/work-pps/../boost_1_88_0/boost/multiprecision/detail/generic_interconvert.hpp:12:
D:/work-pps/../boost_1_88_0/boost/multiprecision/detail/default_ops.hpp:3975:1: warning: unused variable 'precision_guard' [-Wunused-variable]
3975 | BINARY_OP_FUNCTOR(gcd, number_kind_integer)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/work-pps/../boost_1_88_0/boost/multiprecision/detail/default_ops.hpp:3669:82: note: expanded from macro 'BINARY_OP_FUNCTOR'
3669 | detail::scoped_default_precision<multiprecision::number<Backend, et_off> > precision_guard(arg, a); \
| ^~~~~~~~~~~~~~~
D:/work-pps/src/SplitsInfo.cpp:20:23: note: in instantiation of function template specialization 'boost::multiprecision::gcd<boost::multiprecision::backends::cpp_int_backend<128, 128, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void>>' requested here
20 | uint128_t z = gcd(x, y);
| ^
In file included from D:/work-pps/src/SplitsInfo.cpp:1:
In file included from D:/work-pps/../boost_1_88_0/boost/multiprecision/cpp_int.hpp:19:
In file included from D:/work-pps/../boost_1_88_0/boost/multiprecision/number.hpp:12:
In file included from D:/work-pps/../boost_1_88_0/boost/multiprecision/detail/generic_interconvert.hpp:12:
In file included from D:/work-pps/../boost_1_88_0/boost/multiprecision/detail/default_ops.hpp:4067:
D:/work-pps/../boost_1_88_0/boost/multiprecision/detail/no_et_ops.hpp:141:79: warning: unused variable 'precision_guard' [-Wunused-variable]
141 | detail::scoped_default_precision<multiprecision::number<B, et_off> > precision_guard(a, b);
| ^~~~~~~~~~~~~~~
D:/work-pps/src/SplitsInfo.cpp:21:27: note: in instantiation of function template specialization 'boost::multiprecision::operator/<boost::multiprecision::backends::cpp_int_backend<128, 128, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void>>' requested here
21 | from = uint64_t(x / z);
| ^
this is sample code:
#include <boost/multiprecision/cpp_int.hpp> #include <utility> #include <string_view> #include <stdint.h> std::pair<uint64_t, uint64_t> from_string(const std::string_view& s); std::pair<int, int> parse_splits(std::string_view split_from, std::string_view split_to) { using namespace boost::multiprecision; auto [from, from_m] = from_string(split_from); auto [to, to_m] = from_string(split_to); if (from_m != 1 || to_m != 1) { uint128_t x = uint128_t(from) * to_m; uint128_t y = uint128_t(to) * from_m; uint128_t z = gcd(x, y); from = uint64_t(x / z); to = uint64_t(y / z); } return {int(from), int(to)}; }
I compile it with c++23 -Wall