std::mdspan<T,Extents,LayoutPolicy,AccessorPolicy>:: mdspan
|
constexpr
mdspan
(
)
;
|
(1) | (depuis C++23) |
|
template
<
class
...
OtherIndexTypes
>
constexpr explicit mdspan ( data_handle_type p, OtherIndexTypes... exts ) ; |
(2) | (depuis C++23) |
|
template
<
class
OtherIndexType,
std::
size_t
N
>
constexpr
explicit
(
N
!
=
rank_dynamic
(
)
)
|
(3) | (depuis C++23) |
|
template
<
class
OtherIndexType,
std::
size_t
N
>
constexpr
explicit
(
N
!
=
rank_dynamic
(
)
)
|
(4) | (depuis C++23) |
|
constexpr
mdspan
(
data_handle_type p,
const
extents_type
&
ext
)
;
|
(5) | (depuis C++23) |
|
constexpr
mdspan
(
data_handle_type p,
const
mapping_type
&
m
)
;
|
(6) | (depuis C++23) |
|
constexpr
mdspan
(
data_handle_type p,
const
mapping_type
&
m,
const accessor_type & a ) ; |
(7) | (depuis C++23) |
|
template
<
class
OtherElementType,
class
OtherExtents,
class
OtherLayoutPolicy,
class
OtherAccessor
>
|
(8) | (depuis C++23) |
|
constexpr
mdspan
(
const
mdspan
&
rhs
)
=
default
;
|
(9) | (depuis C++23) |
|
constexpr
mdspan
(
mdspan
&&
rhs
)
=
default
;
|
(10) | (depuis C++23) |
Construit un
mdspan
, en utilisant optionnellement le gestionnaire de données fourni par l'utilisateur
p
, le mappage de disposition
m
, et l'accesseur
a
. Si les étendues
exts
ou
ext
sont fournies, elles sont converties en
extents_type
et utilisées pour initialiser le mappage de disposition.
Table des matières |
Paramètres
| p | - | un descripteur vers les données sous-jacentes |
| m | - | un mapping de disposition |
| a | - | un accesseur |
| ext | - |
un objet
std::extents
|
| exts | - | représente des dimensions multidimensionnelles |
| other | - | un autre mdspan à convertir |
| rhs | - | un autre mdspan à copier ou déplacer |
Effets
Pour les membres de données listés dans le tableau ci-dessous :
- Si l'initialiseur correspondant est vide, le membre de données est value-initialized .
- Si l'initialiseur correspondant n'est pas vide, le membre de données est direct-non-list-initialized avec cet initialiseur.
| Surcharge | Initialiseur pour... | ||
|---|---|---|---|
ptr_
|
map_
|
acc_
|
|
| ( 1 ) | (vide) | ||
| ( 2 ) | std :: move ( p ) |
extents_type
( static_cast < index_type > ( std :: move ( exts ) ) ... ) |
(vide) |
| ( 3 ) | extents_type ( exts ) | ||
| ( 4 ) | |||
| ( 5 ) | ext | ||
| ( 6 ) | m | ||
| ( 7 ) | a | ||
| ( 8 ) |
other.
ptr_
|
other.
map_
|
other.
acc_
|
Contraintes et informations supplémentaires
- rank_dynamic ( ) > 0
- std:: is_default_constructible_v < data_handle_type >
- std:: is_default_constructible_v < mapping_type >
- std:: is_default_constructible_v < accessor_type >
[
0
,
map_
.
required_span_size
(
)
)
n'est pas un
intervalle accessible
de
ptr_
et
acc_
pour les valeurs de
map_
et
acc_
après l'invocation de ce constructeur, le comportement est indéfini.
- ( std:: is_convertible_v < OtherIndexTypes, index_type > && ... )
- ( std:: is_nothrow_constructible < index_type, OtherIndexTypes > && ... )
- sizeof... ( OtherIndexTypes ) == rank ( ) || sizeof... ( OtherIndexTypes ) == rank_dynamic ( )
- std:: is_constructible_v < mapping_type, extents_type >
- std:: is_default_constructible_v < accessor_type >
[
0
,
map_
.
required_span_size
(
)
)
n'est pas une plage accessible de
p
et
acc_
pour les valeurs de
map_
et
acc_
après l'invocation de ces constructeurs, le comportement est indéfini.
- std:: is_convertible_v < const OtherIndexType & , index_type >
- std:: is_nothrow_constructible_v < index_type, const OtherIndexType & >
- N == rank ( ) || N == rank_dynamic ( )
- std:: is_constructible_v < mapping_type, extents_type >
- std:: is_default_constructible_v < accessor_type >
[
0
,
map_
.
required_span_size
(
)
)
n'est pas une plage accessible de
p
et
acc_
pour les valeurs de
map_
et
acc_
après l'invocation de ces constructeurs, le comportement est indéfini.
- std:: is_constructible_v < mapping_type, const extents_type & >
- std:: is_default_constructible_v < accessor_type >
[
0
,
map_
.
required_span_size
(
)
)
n'est pas une plage accessible de
p
et
acc_
pour les valeurs de
map_
et
acc_
après l'invocation de ces constructeurs, le comportement est indéfini.
[
0
,
m.
required_span_size
(
)
)
est une plage accessible de
p
et
acc_
pour la valeur de
acc_
après l'invocation de ce constructeur, le comportement est indéfini.
[
0
,
m.
required_span_size
(
)
)
n'est pas une plage accessible de
p
et
a
, le comportement est indéfini.
mapping_type >
|| ! std:: is_convertible_v < const OtherAccessor & , accessor_type > .
-
std::
is_constructible_v
< mapping_type, const OtherLayoutPolicy :: template mapping < OtherExtents > & > - std:: is_default_constructible_v < accessor_type >
- std:: is_constructible_v < data_handle_type, const OtherAccessor :: data_handle_type & >
- std:: is_constructible_v < extents_type, OtherExtents >
[
0
,
map_
.
required_span_size
(
)
)
n'est pas une plage accessible de
ptr_
et
acc_
pour les valeurs de
ptr_
,
map_
et
acc_
après l'invocation de ce constructeur, le comportement est indéfini.
|
Si
static_extent
(
r
)
==
std::
dynamic_extent
|
(jusqu'à C++26) |
|
Si
static_extent
(
r
)
==
std::
dynamic_extent
|
(depuis C++26) |
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Références
- Norme C++23 (ISO/CEI 14882:2024) :
-
- 24.7.3.6.2 Constructeurs [mdspan.mdspan.cons]
Voir aussi
| Cette section est incomplète |