std::indirect<T, Allocator>::operator->, std::indirect<T, Allocator>::operator* - cppreference.com (original) (raw)

constexpr const_pointer operator->() const noexcept; (1) (since C++26)
constexpr pointer operator->() noexcept; (2) (since C++26)
constexpr const T& operator*() const& noexcept; (3) (since C++26)
constexpr T& operator*() & noexcept; (4) (since C++26)
constexpr const T&& operator*() const&& noexcept; (5) (since C++26)
constexpr T&& operator*() && noexcept; (6) (since C++26)

Accesses the owned value.

1,2) Returns a pointer to the owned value.

3-6) Returns a reference to the owned value.

If *this is valueless, the behavior is undefined.

[edit] Return value

1,2) _[p](../indirect.html#p "cpp/memory/indirect")_

3,4) *_[p](../indirect.html#p "cpp/memory/indirect")_

5,6) std::move(*_[p](../indirect.html#p "cpp/memory/indirect")_ )

[edit] Notes

This operator does not check whether *this is valueless, users can do so manually by using valueless_after_move().

[edit] Example