Skip to content

GB299 24.07.16.2 has-tuple-element helper concept needs convertible_to LWG 3323 #295

@wg21bot

Description

@wg21bot

has-tuple-element helper concept needs convertible_to
The exposition-only has-tuple-element concept (for elements_view) is defined as

template<class T, size_t N>
concept has-tuple-element = exposition only
requires(T t) {
  typename tuple_size<T>::type;
  requires N < tuple_size_v<T>;
  typename tuple_element_t<N, T>;
  { get<N>(t) } -> const tuple_element_t<N, T>&;
};

However, the return type constraint for { get(t) } is no longer valid under the latest concepts changes

Proposed change:
Change to:

template<class T, size_t N>
concept has-tuple-element = exposition only
requires(T t) {
  typename tuple_size<T>::type;
  requires N < tuple_size_v<T>;
  typename tuple_element_t<N, T>;
  { get<N>(t) } -> convertible_to<const tuple_element_t<N, T>&>;
};

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions