On 02/10/17 21:53 +0200, Jakub Jelinek wrote:
On Mon, Oct 02, 2017 at 03:13:17PM +0100, Jonathan Wakely wrote:
This adds the integral overloads of std::to_chars and std::from_chars,
including the changes made by P0682R0. Support for floating point types
is absent.

This uses a number of suggestions from Lars (thanks!) but I might have
missed some of his ideas and so could be missing some potential
optimizations.

An earlier version of the patch was posted in
https://gcc.gnu.org/ml/libstdc++/2017-04/msg00025.html

        * include/Makefile.am: Add new <charconv> header.
        * include/Makefile.in: Regenerate.
        * include/precompiled/stdc++.h: Include <charconv>.
        * include/std/charconv: New file.
        (to_chars_result, to_chars, from_chars_result, from_chars): Define.
        * testsuite/20_util/from_chars/1.cc: New test.
        * testsuite/20_util/from_chars/1_neg.cc: New test.
        * testsuite/20_util/from_chars/2.cc: New test.
        * testsuite/20_util/from_chars/requirements.cc: New test.
        * testsuite/20_util/to_chars/1.cc: New test.
        * testsuite/20_util/to_chars/1_neg.cc: New test.
        * testsuite/20_util/to_chars/2.cc: New test.
        * testsuite/20_util/to_chars/requirements.cc: New test.

Tested powerpc64le-linux, committed to trunk.

This fails on 32-bit targets, there are too many closing >s if
__int128_t is missing.

Either of the attached patches fixes this, which one do you prefer (or do
you want yet another formatting)?

The first one please.

Sorry for not testing it on 32-bit, I must remember to check on
multilib targets, not just ppc64le.


Reply via email to