This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Tentatively NAD status.
3982.is-derived-from-view-interface
should require that T
is derived from view_interface<T>
Section: 25.4.5 [range.view] Status: Tentatively NAD Submitter: Hewill Kang Opened: 2023-08-22 Last modified: 2023-10-30
Priority: Not Prioritized
View all other issues in [range.view].
View all issues with Tentatively NAD status.
Discussion:
Currently, the wording of is-derived-from-view-interface
only detects whether type T
is unambiguously derived from one base class view_interface<U>
where U
is not required to be T
, which is not the intention of CRTP.
[2023-10-30; Reflector poll]
Set status to Tentatively NAD. The wording correctly handles the case where T derives from Base
which derives from view_interface<Base>
. We don't want it to only be satisfied for direct inheritance from view_interface<T>
, but from any specialization of view_interface
. Previously the concept only checked for inheritance from view_base
but it was changed when view_interface
stopped inheriting from view_base
.
Proposed resolution:
This wording is relative to N4958.
Modify 25.4.5 [range.view] as indicated:
template<class T> constexpr bool is-derived-from-view-interface = see below; // exposition only template<class T> constexpr bool enable_view = derived_from<T, view_base> || is-derived-from-view-interface<T>;-6- For a type
T
,is-derived-from-view-interface<T>
istrue
if and only ifT
has exactly one public base classview_interface< T U>
for some typeU
andT
has no base classes of typeview_interface< U V>
for any other typeU V
.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4