tcanens added a comment.
Hmm, for `vector` and `deque`, we define a temporary variable, check that sizes
match and then use range-and-a-half `equal`:
const typename vector<_Tp1, _Allocator1>::size_type __sz = __x.size();
return __sz == __y.size() && _VSTD::equal(__x.begin(), __x.end(),
__y.
tcanens created this revision.
tcanens added a project: clang.
https://bugs.llvm.org/show_bug.cgi?id=34668
Pretty straightforward.
Repository:
rL LLVM
https://reviews.llvm.org/D38075
Files:
lib/Sema/SemaExprCXX.cpp
test/SemaCXX/cxx2a-pointer-to-const-ref-member.cpp
Index: test/SemaCXX
tcanens added inline comments.
Comment at: lib/Sema/SemaExprCXX.cpp:5185
if (!isIndirect && !LHS.get()->Classify(Context).isLValue()) {
// C++2a allows functions with ref-qualifier & if they are also
'const'.
+if (Proto->isConst() && !Proto->isVolatile())
tcanens updated this revision to Diff 116490.
tcanens added a comment.
Also tweaked preceding comment.
https://reviews.llvm.org/D38075
Files:
lib/Sema/SemaExprCXX.cpp
test/SemaCXX/cxx2a-pointer-to-const-ref-member.cpp
Index: test/SemaCXX/cxx2a-pointer-to-const-ref-member.cpp
=
tcanens added inline comments.
Comment at: include/string:856
+_LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS
+explicit basic_string(const _Tp& __t, const allocator_type& __a);
+
ldionne wrote:
> I think this `explicit` shouldn't be there, too
tcanens added a comment.
In https://reviews.llvm.org/D38075#1161325, @Rakete wrote:
> Do you need someone to commit it?
Yes, please.
https://reviews.llvm.org/D38075
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org
tcanens added a comment.
At least for GCC, it should use `__builtin_launder`.
Also needs to implement "The program is ill-formed if `T` is a function type or
//cv// `void`."
https://reviews.llvm.org/D40144
___
cfe-commits mailing list
cfe-commits@
tcanens added inline comments.
Comment at: include/__functional_base:377
+inline _LIBCPP_INLINE_VISIBILITY
+_Tp& __lvref_bind(_Tp& r) _NOEXCEPT { return r; }
+
I'd make these member functions of a class template, to avoid having to reason
about partial ordering
tcanens added inline comments.
Comment at: include/new:260
+static_assert (!is_function<_Tp>::value, "can't launder functions" );
+static_assert (!is_same_v>, "can't launder cv-void"
);
+#ifdef _LIBCPP_COMPILER_HAS_BUILTIN_LAUNDER
Technically, the attemp
tcanens added inline comments.
Comment at: include/__functional_base:396
+!is_same<__uncvref_t<_Up>, reference_wrapper>::value
+>::type, bool _IsNothrow = noexcept(__bind(_VSTD::declval<_Up>()))>
+_LIBCPP_INLINE_VISIBILITY reference_wrapper(_Up&& __u)
_NOEXCEPT_(
tcanens added inline comments.
Comment at: include/__functional_base:396
+!is_same<__uncvref_t<_Up>, reference_wrapper>::value
+>::type, bool _IsNothrow = noexcept(__bind(_VSTD::declval<_Up>()))>
+_LIBCPP_INLINE_VISIBILITY reference_wrapper(_Up&& __u)
_NOEXCEPT_(
tcanens added inline comments.
Comment at: include/__string:543
+_LIBCPP_CONSTEXPR_AFTER_CXX11
+_RandomAccessIterator
+__search_substring(_RandomAccessIterator __first1, _RandomAccessIterator
__last1,
A character traits class need only accept pointers, so the na
12 matches
Mail list logo