[libcxx-commits] [PATCH] D70631: Microsoft's floating-point to_chars powered by Ryu and Ryu Printf
Louis Dionne via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Mar 5 08:13:16 PST 2020
ldionne added inline comments.
================
Comment at: libcxx/include/charconv:733
+
+ if constexpr (_IsSame<_Floating, float>::value) {
+ _Adjusted_mantissa = _Ieee_mantissa << 1; // align to hexit boundary (23 isn't divisible by 4)
----------------
ivafanas wrote:
> STL_MSFT wrote:
> > ivafanas wrote:
> > > As I remember `if constexpr` is available since C++17:
> > > https://en.cppreference.com/w/cpp/language/if
> > >
> > > And `charconv` header was made usable with C++11 in libc++:
> > > https://reviews.llvm.org/D59598
> > >
> > > May be it is a good idea to save header compatibility with C++11.
> > MSVC and Clang actually support `if constexpr` in earlier language versions (I am not sure about C++11 since MSVC supports only C++14), with a warning that can be suppressed.
> >
> > I don't understand why someone would want to use an old language mode with a new library mode, but this shouldn't be a blocking issue for that.
> Hi,
>
> > MSVC and Clang actually support if constexpr in earlier language versions
>
> [[ http://libcxx.llvm.org/docs/ | Official documentation says ]] that GCC 5.0+ is supported but @EricWF noted [[ https://reviews.llvm.org/D63296#1542570 | here ]] about GCC 5.1+. According to cppreference `if constexpr` is supported since GCC 7+:
> https://en.cppreference.com/w/cpp/compiler_support
>
> If things haven't changed too much there might be GCC 5.* or GCC 6.* with C++11 but without `if constexpr`.
>
> > I don't understand why someone would want to use an old language mode with a new library mode
>
> There is an explanation why libc++ needs `charconv` backport for C++11:
> https://reviews.llvm.org/D59598
>
> > this shouldn't be a blocking issue for that
>
> I'm not an expert in libc++ and do not have strong opinion.
> Suppose that libc++ developers should have deep knowledge on that.
@ivafanas
I don't think it's reasonable or useful to backport this huge patch to C++11. We'll just disable the feature pre C++17.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D70631/new/
https://reviews.llvm.org/D70631
More information about the libcxx-commits
mailing list