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