aboutsummaryrefslogtreecommitdiff
path: root/libcxx/include/__ranges/copyable_box.h
diff options
context:
space:
mode:
authorzoecarver <z.zoelec2@gmail.com>2021-07-26 17:27:40 -0700
committerzoecarver <z.zoelec2@gmail.com>2021-07-30 10:53:20 -0700
commit481ad59b9fa467882873dd7e45645e613cb77786 (patch)
tree8967321debdedb908cd833c72b9c54eee7d3a423 /libcxx/include/__ranges/copyable_box.h
parent31d408f9f94f3b97366d49c342734c195a343579 (diff)
downloadllvm-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.h8
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