[PATCH] D41458: [libc++][C++17] Elementary string conversions for integral types
Marshall Clow via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue May 15 10:37:58 PDT 2018
mclow.lists added inline comments.
================
Comment at: include/charconv:89
+_LIBCPP_BEGIN_NAMESPACE_STD
+
+enum class _LIBCPP_ENUM_VIS chars_format
----------------
lichray wrote:
> EricWF wrote:
> > We need to hide these names when `_LIBCPP_STD_VER < 17`, since we're not allowed to introduce new names into namespace `std` in older dialects.
> But this header is backported to C++11, so I intended to not to guard it.
> But this header is backported to C++11, so I intended to not to guard it.
In general, we don't provide new features for old language versions.
The only time we've ever done that is for `string_view`, and I'm **still** not sure I did the right thing there.
================
Comment at: src/charconv.cpp:34
+
+#define APPEND1(i) \
+ do \
----------------
I'd really like to see some numbers here showing how this (somewhat awkward) code performs better than the straightforward versions.
Because maintenance is forever.
Note: I'm sure that this was true on older compilers - but is it true today?
================
Comment at: test/support/charconv_test_helpers.h:24
+
+template <typename To, typename From>
+constexpr auto
----------------
If this is supposed to be a C++17 or later header (and I'm pretty sure it is), you should add a `static_assert(TEST_STD_VER > 14, "");` to this header.
Repository:
rCXX libc++
https://reviews.llvm.org/D41458
More information about the cfe-commits
mailing list