216216< 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 >
217217 < 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 >
218218 < 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 >
220220 < 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 >
221221 < 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 >
223223
224224 < span class ="k "> namespace</ span > < span class ="n "> views</ span > < span class ="p "> {</ span >
225225 < 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>
427427< 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 >
428428 < 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 >
429429 < 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 >
431431 < span class ="k "> private</ span > < span class ="o "> :</ span >
432432 < 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 >
433433
434434 < 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 >
437437 < 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 >
439439 < span class ="p "> }</ span >
440440 < 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 >
441441 < 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 >
443443 < span class ="p "> }</ span >
444444
445445 < 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>
466466 < span class ="p "> };</ span >
467467
468468 < 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 >
470470< span class ="p "> }</ span >
471471</ code > </ pre > </ div >
472472</ p >
0 commit comments