From 8d194c26e3016cabc874442f24e3dbf81abff3b5 Mon Sep 17 00:00:00 2001 From: ckormanyos Date: Sat, 18 Jul 2026 15:10:48 +0200 Subject: [PATCH] Revert mistakenly pushed to develop --- include/boost/multiprecision/cpp_int.hpp | 4 +- .../boost/multiprecision/cpp_int/literals.hpp | 19 +++---- test/Jamfile.v2 | 1 - test/git_issue_766.cpp | 57 ------------------- 4 files changed, 9 insertions(+), 72 deletions(-) delete mode 100644 test/git_issue_766.cpp diff --git a/include/boost/multiprecision/cpp_int.hpp b/include/boost/multiprecision/cpp_int.hpp index 3eb70853..efcf50ca 100644 --- a/include/boost/multiprecision/cpp_int.hpp +++ b/include/boost/multiprecision/cpp_int.hpp @@ -393,14 +393,14 @@ private: m_limbs = new_size; } } - BOOST_MP_FORCEINLINE constexpr void normalize() noexcept + BOOST_MP_FORCEINLINE void normalize() noexcept { limb_pointer p = limbs(); while ((m_limbs - 1) && !p[m_limbs - 1]) --m_limbs; } BOOST_MP_FORCEINLINE constexpr cpp_int_base() noexcept : m_data(), m_limbs(1), m_sign(false), m_internal(true), m_alias(false){} - BOOST_MP_FORCEINLINE cpp_int_base(const cpp_int_base& o) : base_type(o), m_limbs(o.m_alias ? o.m_limbs : 0), m_sign(o.m_sign), m_internal(o.m_alias ? false : true), m_alias(o.m_alias) + BOOST_MP_FORCEINLINE cpp_int_base(const cpp_int_base& o) : base_type(o), m_limbs(o.m_alias ? o.m_limbs : 0), m_sign(o.m_sign), m_internal(o.m_alias ? false : true), m_alias(o.m_alias) { if (m_alias) { diff --git a/include/boost/multiprecision/cpp_int/literals.hpp b/include/boost/multiprecision/cpp_int/literals.hpp index a3002b31..0531f0a3 100644 --- a/include/boost/multiprecision/cpp_int/literals.hpp +++ b/include/boost/multiprecision/cpp_int/literals.hpp @@ -1,7 +1,5 @@ /////////////////////////////////////////////////////////////// -// Copyright 2013 John Maddock. -// Copyright 2026 Christopher Kormanyos -// Distributed under the Boost +// Copyright 2013 John Maddock. Distributed under the Boost // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt @@ -257,24 +255,21 @@ constexpr typename boost::multiprecision::literals::detail::unsigned_cpp_int_lit constexpr boost::multiprecision::number > BOOST_MP_LIT(_cppi, Bits)() \ { \ using pt = typename boost::multiprecision::literals::detail::make_packed_value_from_str::type; \ - using local_backend_type = boost::multiprecision::backends::cpp_int_backend; \ - auto result { boost::multiprecision::literals::detail::make_backend_from_pack::value }; \ - result.normalize(); \ - return result; \ + return boost::multiprecision::literals::detail::make_backend_from_pack< \ + pt, \ + boost::multiprecision::backends::cpp_int_backend >::value; \ } \ template \ constexpr boost::multiprecision::number > BOOST_MP_LIT(_cppui, Bits)() \ { \ using pt = typename boost::multiprecision::literals::detail::make_packed_value_from_str::type; \ - using local_backend_type = boost::multiprecision::backends::cpp_int_backend; \ - auto result { boost::multiprecision::literals::detail::make_backend_from_pack::value }; \ - result.normalize(); \ - return result; \ + return boost::multiprecision::literals::detail::make_backend_from_pack< \ + pt, \ + boost::multiprecision::backends::cpp_int_backend >::value; \ } BOOST_MP_DEFINE_SIZED_CPP_INT_LITERAL(128) BOOST_MP_DEFINE_SIZED_CPP_INT_LITERAL(256) -BOOST_MP_DEFINE_SIZED_CPP_INT_LITERAL(384) BOOST_MP_DEFINE_SIZED_CPP_INT_LITERAL(512) BOOST_MP_DEFINE_SIZED_CPP_INT_LITERAL(1024) #undef BOOST_MP_LIT diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index a78e6044..1feb0bcc 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -1283,7 +1283,6 @@ test-suite misc : [ run git_issue_734.cpp ] [ run git_issue_743.cpp : : : [ check-target-builds ../config//has_float128 : quadmath : no ] ] [ run git_issue_759.cpp : : : [ check-target-builds ../config//has_float128 : quadmath : no ] ] - [ run git_issue_766.cpp ] [ compile git_issue_98.cpp : [ check-target-builds ../config//has_float128 : TEST_FLOAT128 quadmath : ] [ check-target-builds ../config//has_gmp : TEST_GMP gmp : ] diff --git a/test/git_issue_766.cpp b/test/git_issue_766.cpp deleted file mode 100644 index d9abf828..00000000 --- a/test/git_issue_766.cpp +++ /dev/null @@ -1,57 +0,0 @@ -#include -#include - -namespace Mp = boost::multiprecision; -using namespace boost::multiprecision::literals; - -using uint384_t = Mp::number, Mp::et_off>; -using int512_t = Mp::number, Mp::et_off>; - -template -constexpr auto operator""_u384() -> uint384_t -{ - return operator""_cppui384 < TStr...>(); -} - -template -constexpr auto operator""_i512() -> int512_t -{ - return operator""_cppi512 < TStr...>(); -} - -auto main() -> int -{ - { - constexpr auto value { 0x00000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111_u384 }; - constexpr auto mask { 0x0000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_u384 }; - - constexpr auto masked { value & mask }; - - constexpr bool result_mask_is_ok { (value == masked) }; - constexpr bool result_size_is_ok { (value.backend().size() == masked.backend().size()) }; - - static_assert(result_mask_is_ok, "Error: unexpected value results in non-equality"); - static_assert(result_size_is_ok, "Error: unexpected size results in non-equality"); - - BOOST_TEST(result_mask_is_ok); - BOOST_TEST(result_size_is_ok); - } - - { - constexpr auto value { 0x00000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111_i512 }; - constexpr auto mask { 0x0000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_i512 }; - - constexpr auto masked { value & mask }; - - constexpr bool result_mask_is_ok { (value == masked) }; - constexpr bool result_size_is_ok { (value.backend().size() == masked.backend().size()) }; - - static_assert(result_mask_is_ok, "Error: unexpected value results in non-equality"); - static_assert(result_size_is_ok, "Error: unexpected size results in non-equality"); - - BOOST_TEST(result_mask_is_ok); - BOOST_TEST(result_size_is_ok); - } - - return boost::report_errors(); -}