std::datapar::basic_simd, std::datapar::simd
From cppreference.com
 
 
 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
Numerics library 
  
 
 
 
 
 
 
 Mathematical special functions (C++17)
 Mathematical constants (C++20)
 Basic linear algebra algorithms (C++26)
 Data-parallel types (SIMD) (C++26)
 Floating-point environment (C++11)
 Bit manipulation (C++20)
 Saturation arithmetic (C++26)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
Data-parallel types (SIMD) 
 
 
 
basic_simdsimd
std::datapar::basic_simd
 
 
Defined in header 
 
 
<simd> 
 template< class T, class Abi = /*native-abi*/<T> >
class basic_simd;
 (1) 
 (since C++26) 
class basic_simd;
template< class T, /*simd-size-type*/ N = /*simd-size-v*/<T, /*native-abi*/<T>> >
using simd = basic_simd<T, /*deduce-abi-t*/<T, N>>;
 (2) 
 (since C++26) 
using simd = basic_simd<T, /*deduce-abi-t*/<T, N>>;
1) 
std::datapar::basic_simd specialization is a data-parallel type. The default ABI tag is determined by the implementation at compile-time.2) 
std::datapar::simd is an alias template that allows users to specify the width to a certain size. The default width is determined by the implementation at compile-time.Every specialization of basic_simd is a complete type. The specialization is
-  enabled, if Tis a vectorizable type, and there exists valueMin the range[1,64]such thatAbiis deduce-abi-t <T, M>,
-  otherwise disabled, if Tis not a vectorizable type,
- otherwise, it is implementation-defined if such specialization is enabled.
If basic_simd<T, Abi> is disabled, the specialization has all deleted default constructor, destructor, copy constructor, and copy assignment. In addition, only the member types below are present.
If basic_simd<T, Abi> is enabled, basic_simd<T, Abi> is TriviallyCopyable.
Contents
[edit] Template parameters
 T
 -
 element type; a vectorizable type
 Abi
 -
 tag type used to determine the width and storage
 N
 -
 the width of the data-parallel type; the number of elements
[edit] Member types
 Type
 Definition
value_type
 T
mask_type
 datapar::basic_simd_mask<sizeof(T), Abi>
abi_type
 Abi
[edit] Member constant
 Name
 Description
constexpr std::integral_constant <
simd-size-type , simd-size-v <T, Abi>> size[static]
basic_simd (public static member constant)
[edit] Member functions
[edit] Non-member functions
[edit] Deduction guide
template< class R, class... Ts >
basic_simd( R&& r, Ts... ) -> /* see below */;
 
 (since C++26) 
basic_simd( R&& r, Ts... ) -> /* see below */;
The deduction guide is present only if:
-  Rmodelscontiguous_rangeandsized_range, and
- ranges::size (r) is a constant expression.
The deduced type is equivalent to datapar::simd<ranges::range_value_t <R>, ranges::size (r)>.
[edit] Notes
Implementations are recommended to support explicit conversions between enabled specializations of basic_simd and appropriate implementation-defined types. These appropriate types are non-standard vector types which are available in the implementation.
[edit] Example
 This section is incomplete
Reason: no example
Reason: no example
[edit] See also
(C++26)
basic_simd_mask that can specify its width(alias template)[edit]