216
216
< div itemprop ="articleBody "> < p > < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="k "> namespace</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> ranges</ span > < span class ="p "> {</ span >
217
217
< span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="n "> < a href ="../concepts/copy_constructible.html "> copy_constructible</ a > </ span > < span class ="n "> T</ span > < span class ="o "> ></ span >
218
218
< span class ="n "> requires</ span > < span class ="n "> < a href ="../type_traits/is_object.html "> is_object_v</ a > </ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="o "> ></ span >
219
- < span class ="k "> class</ span > < span class ="nc "> single_view</ span > < span class ="o "> :</ span > < span class ="k "> public</ span > < span class ="n "> < a href ="view_interface.html "> view_interface</ a > </ span > < span class ="o "> <</ span > < span class ="n "> single_view</ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="o "> >></ span > < span class ="p "> {</ span > < span class ="err "> ……</ span > < span class ="p "> };</ span > < span class ="c1 "> // (1) C++20</ span >
219
+ < span class ="k "> class</ span > < span class ="nc "> < a href ="" > single_view</ a > </ span > < span class ="o "> :</ span > < span class ="k "> public</ span > < span class ="n "> < a href ="view_interface.html "> view_interface</ a > </ span > < span class ="o "> <</ span > < span class ="n "> < a href ="" > single_view</ a > </ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="o "> >></ span > < span class ="p "> {</ span > < span class ="err "> ……</ span > < span class ="p "> };</ span > < span class ="c1 "> // (1) C++20</ span >
220
220
< span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="n "> < a href ="../concepts/move_constructible.html "> move_constructible</ a > </ span > < span class ="n "> T</ span > < span class ="o "> ></ span >
221
221
< span class ="n "> requires</ span > < span class ="n "> < a href ="../type_traits/is_object.html "> is_object_v</ a > </ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="o "> ></ span >
222
- < span class ="k "> class</ span > < span class ="nc "> single_view</ span > < span class ="o "> :</ span > < span class ="k "> public</ span > < span class ="n "> < a href ="view_interface.html "> view_interface</ a > </ span > < span class ="o "> <</ span > < span class ="n "> single_view</ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="o "> >></ span > < span class ="p "> {</ span > < span class ="err "> ……</ span > < span class ="p "> };</ span > < span class ="c1 "> // (1) C++23</ span >
222
+ < span class ="k "> class</ span > < span class ="nc "> < a href ="" > single_view</ a > </ span > < span class ="o "> :</ span > < span class ="k "> public</ span > < span class ="n "> < a href ="view_interface.html "> view_interface</ a > </ span > < span class ="o "> <</ span > < span class ="n "> < a href ="" > single_view</ a > </ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="o "> >></ span > < span class ="p "> {</ span > < span class ="err "> ……</ span > < span class ="p "> };</ span > < span class ="c1 "> // (1) C++23</ span >
223
223
224
224
< span class ="k "> namespace</ span > < span class ="n "> views</ span > < span class ="p "> {</ span >
225
225
< span class ="kr "> inline</ span > < span class ="k "> constexpr</ span > < span class ="cm "> /*unspecified*/</ span > < span class ="n "> single</ span > < span class ="o "> =</ span > < span class ="cm "> /*unspecified*/</ span > < span class ="p "> ;</ span > < span class ="c1 "> // (2)</ span >
@@ -427,19 +427,19 @@ <h2>実装例</h2>
427
427
< p > < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="k "> namespace</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> ranges</ span > < span class ="p "> {</ span >
428
428
< span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="n "> < a href ="../concepts/copy_constructible.html "> copy_constructible</ a > </ span > < span class ="n "> T</ span > < span class ="o "> ></ span >
429
429
< span class ="n "> requires</ span > < span class ="n "> < a href ="../type_traits/is_object.html "> is_object_v</ a > </ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="o "> ></ span >
430
- < span class ="k "> class</ span > < span class ="nc "> single_view</ span > < span class ="o "> :</ span > < span class ="k "> public</ span > < span class ="n "> < a href ="view_interface.html "> view_interface</ a > </ span > < span class ="o "> <</ span > < span class ="n "> single_view</ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="o "> >></ span > < span class ="p "> {</ span >
430
+ < span class ="k "> class</ span > < span class ="nc "> < a href ="" > single_view</ a > </ span > < span class ="o "> :</ span > < span class ="k "> public</ span > < span class ="n "> < a href ="view_interface.html "> view_interface</ a > </ span > < span class ="o "> <</ span > < span class ="n "> < a href ="" > single_view</ a > </ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="o "> >></ span > < span class ="p "> {</ span >
431
431
< span class ="k "> private</ span > < span class ="o "> :</ span >
432
432
< span class ="n "> < a href ="copyable_box.html "> copyable-box</ a > </ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="o "> ></ span > < span class ="n "> value_</ span > < span class ="p "> ;</ span >
433
433
434
434
< span class ="k "> public</ span > < span class ="o "> :</ span >
435
- < span class ="n "> single_view</ span > < span class ="p "> ()</ span > < span class ="n "> requires</ span > < span class ="n "> < a href ="../concepts/default_initializable.html "> default_initializable</ a > </ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="o "> ></ span > < span class ="o "> =</ span > < span class ="k "> default</ span > < span class ="p "> ;</ span >
436
- < span class ="k "> constexpr</ span > < span class ="k "> explicit</ span > < span class ="nf "> single_view</ span > < span class ="p "> (</ span > < span class ="k "> const</ span > < span class ="n "> T</ span > < span class ="o "> &</ span > < span class ="n "> t</ span > < span class ="p "> )</ span > < span class ="o "> :</ span > < span class ="n "> value_</ span > < span class ="p "> (</ span > < span class ="n "> t</ span > < span class ="p "> )</ span > < span class ="p "> {</ span >
435
+ < span class ="n "> < a href ="" > single_view</ a > </ span > < span class ="p "> ()</ span > < span class ="n "> requires</ span > < span class ="n "> < a href ="../concepts/default_initializable.html "> default_initializable</ a > </ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="o "> ></ span > < span class ="o "> =</ span > < span class ="k "> default</ span > < span class ="p "> ;</ span >
436
+ < span class ="k "> constexpr</ span > < span class ="k "> explicit</ span > < span class ="nf "> < a href ="" > single_view</ a > </ span > < span class ="p "> (</ span > < span class ="k "> const</ span > < span class ="n "> T</ span > < span class ="o "> &</ span > < span class ="n "> t</ span > < span class ="p "> )</ span > < span class ="o "> :</ span > < span class ="n "> value_</ span > < span class ="p "> (</ span > < span class ="n "> t</ span > < span class ="p "> )</ span > < span class ="p "> {</ span >
437
437
< span class ="p "> }</ span >
438
- < span class ="k "> constexpr</ span > < span class ="k "> explicit</ span > < span class ="nf "> single_view</ span > < span class ="p "> (</ span > < span class ="n "> T</ span > < span class ="o "> &&</ span > < span class ="n "> t</ span > < span class ="p "> )</ span > < span class ="o "> :</ span > < span class ="n "> value_</ span > < span class ="p "> (</ span > < span class ="n "> t</ span > < span class ="p "> )</ span > < span class ="p "> {</ span >
438
+ < span class ="k "> constexpr</ span > < span class ="k "> explicit</ span > < span class ="nf "> < a href ="" > single_view</ a > </ span > < span class ="p "> (</ span > < span class ="n "> T</ span > < span class ="o "> &&</ span > < span class ="n "> t</ span > < span class ="p "> )</ span > < span class ="o "> :</ span > < span class ="n "> value_</ span > < span class ="p "> (</ span > < span class ="n "> t</ span > < span class ="p "> )</ span > < span class ="p "> {</ span >
439
439
< span class ="p "> }</ span >
440
440
< span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="n "> class</ span > < span class ="p "> ...</ span > < span class ="n "> Args</ span > < span class ="o "> ></ span >
441
441
< span class ="n "> requires</ span > < span class ="n "> < a href ="../concepts/constructible_from.html "> constructible_from</ a > </ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="p "> ,</ span > < span class ="n "> Args</ span > < span class ="p "> ...</ span > < span class ="o "> ></ span >
442
- < span class ="k "> constexpr</ span > < span class ="k "> explicit</ span > < span class ="n "> single_view</ span > < span class ="p "> (</ span > < span class ="n "> < a href ="../utility/in_place_t.html "> in_place_t</ a > </ span > < span class ="p "> ,</ span > < span class ="n "> Args</ span > < span class ="o "> &&</ span > < span class ="p "> ...</ span > < span class ="n "> args</ span > < span class ="p "> )</ span > < span class ="o "> :</ span > < span class ="n "> value_</ span > < span class ="p "> {</ span > < span class ="n "> < a href ="../utility/in_place_t.html "> in_place</ a > </ span > < span class ="p "> ,</ span > < span class ="n "> forward</ span > < span class ="o "> <</ span > < span class ="n "> Args</ span > < span class ="o "> ></ span > < span class ="p "> (</ span > < span class ="n "> args</ span > < span class ="p "> )...}</ span > < span class ="p "> {</ span >
442
+ < span class ="k "> constexpr</ span > < span class ="k "> explicit</ span > < span class ="n "> < a href ="" > single_view</ a > </ span > < span class ="p "> (</ span > < span class ="n "> < a href ="../utility/in_place_t.html "> in_place_t</ a > </ span > < span class ="p "> ,</ span > < span class ="n "> Args</ span > < span class ="o "> &&</ span > < span class ="p "> ...</ span > < span class ="n "> args</ span > < span class ="p "> )</ span > < span class ="o "> :</ span > < span class ="n "> value_</ span > < span class ="p "> {</ span > < span class ="n "> < a href ="../utility/in_place_t.html "> in_place</ a > </ span > < span class ="p "> ,</ span > < span class ="n "> forward</ span > < span class ="o "> <</ span > < span class ="n "> Args</ span > < span class ="o "> ></ span > < span class ="p "> (</ span > < span class ="n "> args</ span > < span class ="p "> )...}</ span > < span class ="p "> {</ span >
443
443
< span class ="p "> }</ span >
444
444
445
445
< span class ="k "> constexpr</ span > < span class ="n "> T</ span > < span class ="o "> *</ span > < span class ="n "> begin</ span > < span class ="p "> ()</ span > < span class ="k "> noexcept</ span > < span class ="p "> {</ span >
@@ -466,7 +466,7 @@ <h2>実装例</h2>
466
466
< span class ="p "> };</ span >
467
467
468
468
< span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="k "> class</ span > < span class ="nc "> T</ span > < span class ="o "> ></ span >
469
- < span class ="n "> single_view</ span > < span class ="p "> (</ span > < span class ="n "> T</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="n "> single_view</ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="o "> ></ span > < span class ="p "> ;</ span >
469
+ < span class ="n "> < a href ="" > single_view</ a > </ span > < span class ="p "> (</ span > < span class ="n "> T</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="n "> < a href ="" > single_view</ a > </ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="o "> ></ span > < span class ="p "> ;</ span >
470
470
< span class ="p "> }</ span >
471
471
</ code > </ pre > </ div >
472
472
</ p >
0 commit comments