Namespaces
Variants

std::experimental:: split, split_by

From cppreference.net
헤더에 정의됨 <experimental/simd>
template < std:: size_t ... Sizes , class T, class Abi >

std:: tuple < simd < T, simd_abi :: deduce_t < T, Sizes >> ... >

split ( const simd < T, Abi > & v ) noexcept ;
(1) (병렬성 TS v2)
template < std:: size_t ... Sizes , class T, class Abi >

std:: tuple < simd_mask < T, simd_abi :: deduce_t < T, Sizes >> ... >

split ( const simd_mask < T, Abi > & v ) noexcept ;
(2) (병렬성 TS v2)
template < class V, class Abi >

std:: array < V, simd_size_v < typename V :: value_type , Abi > / V :: size ( ) >

split ( const simd < typename V :: value_type , Abi > & v ) noexcept ;
(3) (parallelism TS v2)
template < class V, class Abi >

std:: array < V, simd_size_v < typename V :: value_type , Abi > / V :: size ( ) >

split ( const simd_mask < typename V :: value_type , Abi > & v ) noexcept ;
(4) (parallelism TS v2)
template < size_t N, class T, class A >

array < resize_simd < simd_size_v < T, A > / N, simd < T, A >> , N >

split_by ( const simd < T, A > & v ) noexcept ;
(5) (병렬성 TS v2)
template < size_t N, class T, class A >

array < resize_simd < simd_size_v < T, A > / N, simd_mask < T, A >> , N >

split_by ( const simd_mask < T, A > & v ) noexcept ;
(6) (병렬성 TS v2)

입력 simd 또는 simd_mask 객체를 여러 개의 simd 또는 simd_mask 객체로 분할합니다.

1,2) 입력 객체를 잠재적으로 다른 유형(예: 크기가 다른 유형)의 객체로 분할합니다. Sizes... 의 합이 v. size ( ) 와 일치하지 않는 경우 이러한 함수들은 오버로드 해결에 참여하지 않습니다.
3,4) 입력 객체를 객체 배열로 분할합니다. 다음 조건을 만족하지 않는 한 이러한 함수들은 오버로딩 해결에 참여하지 않습니다:
  • 배열 요소는 simd 또는 simd_mask 타입이어야 합니다. v 의 타입이 각각 simd 또는 simd_mask 인 경우에 해당합니다.
  • simd_size_v < typename V :: value_type , Abi > V :: size ( ) 의 정수 배수여야 합니다.
5,6) 입력 객체를 객체 배열로 분할합니다. simd_size_v < T, A > N 의 정수 배수가 아닌 경우 이러한 함수들은 오버로드 해결에 참여하지 않습니다.

매개변수

v - 입력 simd 또는 simd_mask 객체

반환값

1,2) 분할된 simd 또는 simd_mask 객체들을 포함하는 튜플.
3-6) 분할된 simd 또는 simd_mask 객체들을 포함하는 배열.

예제