zoecarver added a comment. A few minor things:
- the spacing is different from the rest of libc++ (a lot of it was that way before). - since this is a paper it should probably be guarded with `#if _LIBCPP_STD_VER > 17` - update the status in `www`. Also, the standard says explicitly, "A variant is permitted to hold the same type more than once, and to hold differently cv-qualified versions of the same type." But currently, that is not allowed — not an issue with this patch, but something that should be fixed. ================ Comment at: include/variant:1110 +template <class _Base, class _Tp> +struct __overload_bool : _Base { + using _Base::operator(); ---------------- Is this structure 100% necessary? Couldn't `__overload` add an overload to take care of `bool`s? Maybe something like this: ``` template<class _Up> auto operator()(_Tp, _Up&&) const -> enable_if_t< is_same_v<__uncvref_t<_Up>, bool>, __identity<_Tp> >; ``` Repository: rCXX libc++ CHANGES SINCE LAST ACTION https://reviews.llvm.org/D44865/new/ https://reviews.llvm.org/D44865 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits