| 123456789101112131415161718192021222324252627282930313233343536373839 | /////////////////////////////////////////////////////////////////  Copyright 2019 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//// We used to use lexical_cast internally for quick conversions from integers // to strings, but that breaks if the global locale is something other than "C".// See https://github.com/boostorg/multiprecision/issues/167.//#ifndef BOOST_MP_DETAIL_ITOS_HPP#define BOOST_MP_DETAIL_ITOS_HPPnamespace boost { namespace multiprecision { namespace detail {   template <class Integer>   std::string itos(Integer val)   {      if (!val)  return "0";      std::string result;      bool isneg = false;      if (val < 0)      {         val = -val;         isneg = true;      }      while (val)      {         result.insert(result.begin(), char('0' + (val % 10)));         val /= 10;      }      if (isneg)         result.insert(result.begin(), '-');      return result;   }}}} // namespace boost::multiprecision::detail#endif
 |