From 92d78bd26334ed72668a965cb8a764e1e7e5f2d3 Mon Sep 17 00:00:00 2001 From: Mingxin Wang Date: Sat, 21 Mar 2026 15:16:50 +0800 Subject: [PATCH] Revise wording for `proxy_view` and related facilities --- docs/spec/make_proxy_view.md | 2 +- docs/spec/proxiable_target.md | 2 +- docs/spec/skills_as_view.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/spec/make_proxy_view.md b/docs/spec/make_proxy_view.md index d70b61a..2c1739c 100644 --- a/docs/spec/make_proxy_view.md +++ b/docs/spec/make_proxy_view.md @@ -12,7 +12,7 @@ template proxy_view make_proxy_view(T& value) noexcept; ``` -Creates a `proxy_view` object containing a value `p` of type `observer-ptr`, where `*p` is direct-non-list-initialized with `&value`. If [`proxiable_target`](proxiable_target.md) is `false`, the program is ill-formed and diagnostic messages are generated. +Creates a `proxy_view` object containing a value `p` of type `observer-ptr`, where `*p` is direct-non-list-initialized with `std::addressof(value)`. If [`proxiable_target`](proxiable_target.md) is `false`, the program is ill-formed and diagnostic messages are generated. ## Return Value diff --git a/docs/spec/proxiable_target.md b/docs/spec/proxiable_target.md index 403bc55..fe46d69 100644 --- a/docs/spec/proxiable_target.md +++ b/docs/spec/proxiable_target.md @@ -7,7 +7,7 @@ ```cpp template -concept proxiable_target = proxiable, F>; +concept proxiable_target = proxiable, observer_facade>; ``` See [`make_proxy_view`](make_proxy_view.md) for the definition of the exposition-only class template *observer-ptr*. diff --git a/docs/spec/skills_as_view.md b/docs/spec/skills_as_view.md index aafe7a3..9131df9 100644 --- a/docs/spec/skills_as_view.md +++ b/docs/spec/skills_as_view.md @@ -12,7 +12,7 @@ using as_view = /* see below */; The alias template `as_view` modifies a specialization of [`basic_facade_builder`](basic_facade_builder/README.md) to allow implicit conversion from [`proxy`](proxy/README.md)`` to [`proxy_view`](proxy_view.md)``, where `F` is a built [facade](facade.md) type. -Let `p` be a value of type `proxy`, `ptr` be the contained value of `p` (if any), the conversion from type `proxy&` to type `proxy_view` is equivalent to `return observer-ptr{std::addressof(*ptr)}` if `p` contains a value, or otherwise equivalent to `return nullptr`. `observer-ptr` is an exposition-only type that `*observer-ptr`, `*std::as_const(observer-ptr)`, `*std::move(observer-ptr)` and `*std::move(std::as_const(observer-ptr))` are equivalent to `*ptr`, `*std::as_const(ptr)`, `*std::move(ptr)` and `*std::move(std::as_const(ptr))`, respectively. +Let `p` be a value of type `proxy`, `ptr` be the contained value of `p` (if any), the conversion from type `proxy&` to type `proxy_view` is equivalent to `return make_proxy_view(*ptr)` if `p` contains a value, or otherwise equivalent to `return nullptr`. ## Notes