mpark added inline comments.
================ Comment at: include/tuple:568 + using _QualType = typename _Deduced::_QualType; + static_assert(__tuple_like<typename _Deduced::_RawType>::value, ""); + return __tuple_constructible<_QualType, tuple>::value ---------------- indentation? ================ Comment at: include/tuple:871 template <class _Alloc, class _Tuple, + class _Deduced = __deduce_tuple_like<_Tuple>, + class _TupBase = typename _Deduced::_QualType, ---------------- indentation? ================ Comment at: include/tuple:906 template <class _Tuple, + class _Deducer = __deduce_tuple_like<_Tuple>, + class _QualTupleBase = typename _Deducer::_QualType, ---------------- `s/_Deducer/_Deduced/` ================ Comment at: include/tuple:907 + class _Deducer = __deduce_tuple_like<_Tuple>, + class _QualTupleBase = typename _Deducer::_QualType, class = typename enable_if ---------------- `s/_QualTupleBase/_TupBase/` ================ Comment at: include/tuple:915 tuple& - operator=(_Tuple&& __t) _NOEXCEPT_((is_nothrow_assignable<base&, _Tuple>::value)) + operator=(_Tuple&& __t) _NOEXCEPT_((is_nothrow_assignable<base&, _QualTupleBase>::value)) { ---------------- A general comment about using the `base` in noexcept condition. I remember for `variant` we wanted to express it directly rather than delegating it to the "base". Does that also apply here? ================ Comment at: include/tuple:917 { - base_.operator=(_VSTD::forward<_Tuple>(__t)); + base_.operator=(_VSTD::forward<_QualTupleBase>(__t)); return *this; ---------------- Here and elsewhere, why do we bother with `base_.operator=(...);` as opposed to just `base_ = ...;`? https://reviews.llvm.org/D27606 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits