Skip to content

Commit 1abcf53

Browse files
authored
Fix wording for proxy indirection (#369)
1 parent 789dd19 commit 1abcf53

File tree

1 file changed

+6
-14
lines changed

1 file changed

+6
-14
lines changed

docs/spec/proxy/indirection.md

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,15 @@
11
# `proxy::operator->`<br />`proxy::operator*`
22

3-
The definitions of `proxy::operator->` and `proxy::operator*` make use of the following exposition-only constant:
4-
5-
```cpp
6-
static constexpr bool has-indirection = see below; // exposition only
7-
```
8-
9-
As per [`facade<F>`](../facade.md), `typename F::convention_types` shall be a [tuple-like](https://en.cppreference.com/w/cpp/utility/tuple/tuple-like) type containing any number of distinct types `Cs`. Let `Cs2` be the types in `Cs` where each type `C` meets the [*ProAccessible* requirements](../ProAccessible.md) of `F` and `C::is_direct` is `false`. *has-indirection* is `true` if `Cs2` contains at least one type; otherwise, it is `false`. *indirect-accessor* is a non-copyable type that inherits from every type in `Cs2`.
10-
113
```cpp
124
// (1)
13-
proxy_indirect_accessor<F>* operator->() noexcept requires(has-indirection);
14-
const proxy_indirect_accessor<F>* operator->() const noexcept requires(has-indirection);
5+
proxy_indirect_accessor<F>* operator->() noexcept;
6+
const proxy_indirect_accessor<F>* operator->() const noexcept;
157

168
// (2)
17-
proxy_indirect_accessor<F>& operator*() & noexcept requires(has-indirection);
18-
const proxy_indirect_accessor<F>& operator*() const& noexcept requires(has-indirection);
19-
proxy_indirect_accessor<F>&& operator*() && noexcept requires(has-indirection);
20-
const proxy_indirect_accessor<F>&& operator*() const&& noexcept requires(has-indirection);
9+
proxy_indirect_accessor<F>& operator*() & noexcept;
10+
const proxy_indirect_accessor<F>& operator*() const& noexcept;
11+
proxy_indirect_accessor<F>&& operator*() && noexcept;
12+
const proxy_indirect_accessor<F>&& operator*() const&& noexcept;
2113
```
2214

2315
These operators access the accessors of the indirect conventions, as if dereferencing the contained value.

0 commit comments

Comments
 (0)