diff options
author | zoecarver <z.zoelec2@gmail.com> | 2021-07-26 17:27:40 -0700 |
---|---|---|
committer | zoecarver <z.zoelec2@gmail.com> | 2021-07-30 10:53:20 -0700 |
commit | 481ad59b9fa467882873dd7e45645e613cb77786 (patch) | |
tree | 8967321debdedb908cd833c72b9c54eee7d3a423 /libcxx/include/__ranges/copyable_box.h | |
parent | 31d408f9f94f3b97366d49c342734c195a343579 (diff) | |
download | llvm-481ad59b9fa467882873dd7e45645e613cb77786.zip llvm-481ad59b9fa467882873dd7e45645e613cb77786.tar.gz llvm-481ad59b9fa467882873dd7e45645e613cb77786.tar.bz2 |
[libcxx][ranges] Add `std::ranges::single_view`.
Differential Revision: https://reviews.llvm.org/D106840
Diffstat (limited to 'libcxx/include/__ranges/copyable_box.h')
-rw-r--r-- | libcxx/include/__ranges/copyable_box.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libcxx/include/__ranges/copyable_box.h b/libcxx/include/__ranges/copyable_box.h index f2d3843..553d2b9 100644 --- a/libcxx/include/__ranges/copyable_box.h +++ b/libcxx/include/__ranges/copyable_box.h @@ -91,6 +91,10 @@ namespace ranges { _LIBCPP_HIDE_FROM_ABI constexpr _Tp const& operator*() const noexcept { return *__val_; } _LIBCPP_HIDE_FROM_ABI constexpr _Tp& operator*() noexcept { return *__val_; } + + _LIBCPP_HIDE_FROM_ABI constexpr const _Tp *operator->() const noexcept { return __val_.operator->(); } + _LIBCPP_HIDE_FROM_ABI constexpr _Tp *operator->() noexcept { return __val_.operator->(); } + _LIBCPP_HIDE_FROM_ABI constexpr bool __has_value() const noexcept { return __val_.has_value(); } }; @@ -162,6 +166,10 @@ namespace ranges { _LIBCPP_HIDE_FROM_ABI constexpr _Tp const& operator*() const noexcept { return __val_; } _LIBCPP_HIDE_FROM_ABI constexpr _Tp& operator*() noexcept { return __val_; } + + _LIBCPP_HIDE_FROM_ABI constexpr const _Tp *operator->() const noexcept { return _VSTD::addressof(__val_); } + _LIBCPP_HIDE_FROM_ABI constexpr _Tp *operator->() noexcept { return _VSTD::addressof(__val_); } + _LIBCPP_HIDE_FROM_ABI constexpr bool __has_value() const noexcept { return true; } }; } // namespace ranges |