Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 860498
Collapse All | Expand All

(-)a/boost/multiprecision/cpp_dec_float.hpp (-2 / +20 lines)
Lines 26-31 Link Here
26
#include <string>
26
#include <string>
27
#include <limits>
27
#include <limits>
28
#include <stdexcept>
28
#include <stdexcept>
29
#include <sstream>
30
#include <locale>
29
#include <boost/multiprecision/detail/standalone_config.hpp>
31
#include <boost/multiprecision/detail/standalone_config.hpp>
30
#include <boost/multiprecision/number.hpp>
32
#include <boost/multiprecision/number.hpp>
31
#include <boost/multiprecision/detail/fpclassify.hpp>
33
#include <boost/multiprecision/detail/fpclassify.hpp>
Lines 1603-1609 double cpp_dec_float<Digits10, ExponentType, Allocator>::extract_double() const Link Here
1603
                     : -std::numeric_limits<double>::infinity());
1605
                     : -std::numeric_limits<double>::infinity());
1604
   }
1606
   }
1605
1607
1606
   return std::strtod(str(std::numeric_limits<double>::digits10 + (2 + 1), std::ios_base::scientific).c_str(), nullptr);
1608
   std::stringstream ss;
1609
   ss.imbue(std::locale::classic());
1610
1611
   ss << str(std::numeric_limits<double>::digits10 + (2 + 1), std::ios_base::scientific);
1612
1613
   double d;
1614
   ss >> d;
1615
1616
   return d;
1607
}
1617
}
1608
1618
1609
template <unsigned Digits10, class ExponentType, class Allocator>
1619
template <unsigned Digits10, class ExponentType, class Allocator>
Lines 1642-1648 long double cpp_dec_float<Digits10, ExponentType, Allocator>::extract_long_doubl Link Here
1642
                     : -std::numeric_limits<long double>::infinity());
1652
                     : -std::numeric_limits<long double>::infinity());
1643
   }
1653
   }
1644
1654
1645
   return std::strtold(str(std::numeric_limits<long double>::digits10 + (2 + 1), std::ios_base::scientific).c_str(), nullptr);
1655
   std::stringstream ss;
1656
   ss.imbue(std::locale::classic());
1657
1658
   ss << str(std::numeric_limits<long double>::digits10 + (2 + 1), std::ios_base::scientific);
1659
1660
   long double ld;
1661
   ss >> ld;
1662
1663
   return ld;
1646
}
1664
}
1647
1665
1648
template <unsigned Digits10, class ExponentType, class Allocator>
1666
template <unsigned Digits10, class ExponentType, class Allocator>
(-)a/libs/multiprecision/test/Jamfile.v2 (+1 lines)
Lines 1176-1181 test-suite misc : Link Here
1176
      [ run git_issue_426.cpp : : : [ check-target-builds ../config//has_mpfr : <source>gmp <source>mpfr <define>TEST_MPFR ] [ check-target-builds ../config//has_float128 : <source>quadmath <define>TEST_FLOAT128 ] ]
1176
      [ run git_issue_426.cpp : : : [ check-target-builds ../config//has_mpfr : <source>gmp <source>mpfr <define>TEST_MPFR ] [ check-target-builds ../config//has_float128 : <source>quadmath <define>TEST_FLOAT128 ] ]
1177
      [ run git_issue_277.cpp ]
1177
      [ run git_issue_277.cpp ]
1178
      [ run git_issue_313.cpp ]
1178
      [ run git_issue_313.cpp ]
1179
      [ run git_issue_464.cpp ]
1179
      [ compile git_issue_98.cpp : 
1180
      [ compile git_issue_98.cpp : 
1180
         [ check-target-builds ../config//has_float128 : <define>TEST_FLOAT128 <source>quadmath : ]
1181
         [ check-target-builds ../config//has_float128 : <define>TEST_FLOAT128 <source>quadmath : ]
1181
         [ check-target-builds ../config//has_gmp : <define>TEST_GMP <source>gmp : ]
1182
         [ check-target-builds ../config//has_gmp : <define>TEST_GMP <source>gmp : ]
(-)a/libs/multiprecision/test/git_issue_464.cpp (-1 / +31 lines)
Line 0 Link Here
0
--
1
///////////////////////////////////////////////////////////////////////////////
2
//  Copyright 2022 Matt Borland. Distributed under the Boost
3
//  Software License, Version 1.0. (See accompanying file
4
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
//
6
//  See: https://github.com/boostorg/multiprecision/issues/464
7
8
#include <boost/multiprecision/cpp_dec_float.hpp>
9
#include <locale>
10
#include "test.hpp"
11
12
template <typename T>
13
void test()
14
{
15
    auto a = boost::multiprecision::cpp_dec_float_50 {12345};
16
17
    auto d1 = a.convert_to<T>();
18
19
    std::locale::global(std::locale("de_DE"));
20
    auto d2 = a.convert_to<T>();
21
22
    BOOST_CHECK_EQUAL(d1, d2);
23
}
24
25
int main(void)
26
{
27
    test<double>();
28
    test<long double>();
29
30
    return boost::report_errors();
31
}
1
include/boost/multiprecision/cpp_dec_float.hpp | 1 +
32
include/boost/multiprecision/cpp_dec_float.hpp | 1 +
2
test/Jamfile.v2                                | 1 -
33
test/Jamfile.v2                                | 1 -
3
2 files changed, 1 insertion(+), 1 deletion(-)
34
2 files changed, 1 insertion(+), 1 deletion(-)
(-)a/boost/multiprecision/cpp_dec_float.hpp (+1 lines)
Lines 28-33 Link Here
28
#include <stdexcept>
28
#include <stdexcept>
29
#include <sstream>
29
#include <sstream>
30
#include <locale>
30
#include <locale>
31
#include <ios>
31
#include <boost/multiprecision/detail/standalone_config.hpp>
32
#include <boost/multiprecision/detail/standalone_config.hpp>
32
#include <boost/multiprecision/number.hpp>
33
#include <boost/multiprecision/number.hpp>
33
#include <boost/multiprecision/detail/fpclassify.hpp>
34
#include <boost/multiprecision/detail/fpclassify.hpp>
(-)a/libs/multiprecision/test/Jamfile.v2 (-1 lines)
Lines 1176-1182 test-suite misc : Link Here
1176
      [ run git_issue_426.cpp : : : [ check-target-builds ../config//has_mpfr : <source>gmp <source>mpfr <define>TEST_MPFR ] [ check-target-builds ../config//has_float128 : <source>quadmath <define>TEST_FLOAT128 ] ]
1176
      [ run git_issue_426.cpp : : : [ check-target-builds ../config//has_mpfr : <source>gmp <source>mpfr <define>TEST_MPFR ] [ check-target-builds ../config//has_float128 : <source>quadmath <define>TEST_FLOAT128 ] ]
1177
      [ run git_issue_277.cpp ]
1177
      [ run git_issue_277.cpp ]
1178
      [ run git_issue_313.cpp ]
1178
      [ run git_issue_313.cpp ]
1179
      [ run git_issue_464.cpp ]
1180
      [ compile git_issue_98.cpp : 
1179
      [ compile git_issue_98.cpp : 
1181
         [ check-target-builds ../config//has_float128 : <define>TEST_FLOAT128 <source>quadmath : ]
1180
         [ check-target-builds ../config//has_float128 : <define>TEST_FLOAT128 <source>quadmath : ]
1182
         [ check-target-builds ../config//has_gmp : <define>TEST_GMP <source>gmp : ]
1181
         [ check-target-builds ../config//has_gmp : <define>TEST_GMP <source>gmp : ]

Return to bug 860498