Skip to content

Commit e2c75f4

Browse files
committed
LWG4432 Clarify element initialization for meta::reflect_constant_array
1 parent 133dc2d commit e2c75f4

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

source/meta.tex

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3410,19 +3410,20 @@
34103410

34113411
\begin{itemdescr}
34123412
\pnum
3413-
Let \tcode{T} be \tcode{ranges::range_value_t<R>}.
3413+
Let \tcode{T} be \tcode{ranges::range_value_t<R>} and
3414+
$\tcode{e}_i$ be \tcode{static_cast<T>(*$it_i$)},
3415+
where \tcode{$it_i$} is an iterator to the $i^\text{th}$ element of \tcode{r}.
34143416

34153417
\pnum
34163418
\mandates
34173419
\tcode{T} is a structural type\iref{temp.param},
34183420
\tcode{is_constructible_v<T, ranges::range_reference_t<R>>} is \tcode{true}, and
3419-
\tcode{is_copy_constructible_v<T>} is \tcode{true}.
3421+
\tcode{T} satisfies \libconcept{copy_constructible}.
34203422

34213423
\pnum
34223424
Let $V$ be the pack of values of type \tcode{info}
34233425
of the same size as \tcode{r},
3424-
where the $i^\text{th}$ element is \tcode{reflect_constant($\tcode{e}_i$)},
3425-
where $\tcode{e}_i$ is the $i^\text{th}$ element of \tcode{r}.
3426+
where the $i^\text{th}$ element is \tcode{reflect_constant($\tcode{e}_i$)}.
34263427

34273428
\pnum
34283429
Let $P$ be
@@ -3444,9 +3445,10 @@
34443445

34453446
\pnum
34463447
\throws
3447-
\tcode{meta::exception} unless
3448-
\tcode{reflect_constant(e)} is a constant subexpression
3449-
for every element \tcode{e} of \tcode{r}.
3448+
Any exception thrown by the evaluation of any $\tcode{e}_i$, or
3449+
\tcode{meta::exception}
3450+
if evaluation of any \tcode{reflect_constant($\tcode{e}_i$)}
3451+
would exit via an exception.
34503452

34513453
\pnum
34523454
\begin{note}

0 commit comments

Comments
 (0)