std:: datapar:: basic_simd, std:: datapar:: simd
|
헤더 파일에 정의됨
<simd>
|
||
|
template
<
class
T,
class
Abi
=
/*native-abi*/
<
T
>
>
class basic_simd ; |
(1) | (C++26부터) |
|
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) | (C++26부터) |
std::datapar::basic_simd
특수화는 데이터 병렬 타입입니다. 기본 ABI 태그는 컴파일 타임에 구현에 의해 결정됩니다.
std::datapar::simd
는 사용자가 특정 크기로 너비를 지정할 수 있도록 하는 별칭 템플릿입니다. 기본 너비는 컴파일 시점에 구현체에 의해 결정됩니다.
basic_simd
의 모든 특수화는 완전한 타입입니다. 해당 특수화는
-
활성화됨
,
T가 벡터화 가능 타입 이고 범위[1,64]내에 값M이 존재하여Abi가 deduce-abi-t < T, M > 인 경우, -
그렇지 않으면
비활성화됨
,
T가 벡터화 가능 타입이 아닌 경우, - 그렇지 않으면, 이러한 특수화가 활성화되는지는 구현에 따라 정의됨.
만약 basic_simd < T, Abi > 가 비활성화된 경우, 해당 특수화는 삭제된 기본 생성자, 소멸자, 복사 생성자 및 복사 할당 연산자를 모두 가집니다. 추가적으로, 아래의 멤버 타입들만 존재합니다.
만약 basic_simd < T, Abi > 가 활성화된 경우, basic_simd < T, Abi > 는 TriviallyCopyable 입니다.
목차 |
템플릿 매개변수
| T | - | 요소 타입; 벡터화 가능한 타입 |
| Abi | - | 태그 타입 ; 너비와 저장 방식을 결정하는 데 사용됨 |
| N | - | 데이터 병렬 타입의 너비; 요소 개수 |
멤버 타입
| 유형 | 정의 |
value_type
|
T
|
mask_type
|
datapar :: basic_simd_mask < sizeof ( T ) , Abi > |
abi_type
|
Abi
|
멤버 상수
| 이름 | 설명 |
|
constexpr
std::
integral_constant
<
simd-size-type
,
simd-size-v
<
T, Abi
>>
size
[static]
|
basic_simd
의 너비
(공개 정적 멤버 상수) |
멤버 함수
basic_simd
객체를 생성합니다
(public member function) |
|
|
지정된 요소에 접근합니다
(public member function) |
|
|
요소별 증가 및 감소 연산
(public member function) |
|
|
요소별 단항 연산자
(public member function) |
비멤버 함수
|
요소별(element-wise) 이항 연산자
(함수) |
|
|
요소별(element-wise) 복합 이항 연산자
(함수) |
|
|
요소별(element-wise) 관계 연산자
(함수) |
요소별 선택을 특수화합니다
simd_select
( 설명 전용 함수* ) |
추론 가이드
|
template
<
class
R,
class
...
Ts
>
basic_simd ( R && r, Ts... ) - > /* 아래 참조 */ ; |
(C++26부터) | |
deduction guide는 다음 조건에서만 존재합니다:
-
R는contiguous_range와sized_range를 만족하며, - ranges:: size ( r ) 가 상수 표현식 입니다.
추론된 타입은 datapar :: simd < ranges:: range_value_t < R > , ranges:: size ( r ) > 와 동등합니다.
참고 사항
구현체는
basic_simd
의 활성화된 특수화와 적절한 구현체 정의 타입 간의 명시적 변환을 지원하는 것이 권장됩니다. 이러한 적절한 타입들은 구현체에서 사용 가능한 비표준 벡터 타입들입니다.
예제
|
이 섹션은 불완전합니다
이유: 예제 없음 |
참고 항목
|
(C++26)
|
요소 타입이
bool
인 데이터 병렬 타입
(클래스 템플릿) |
|
(C++26)
|
너비를 지정할 수 있는
basic_simd_mask
의 편의성 앨리어스 템플릿
(앨리어스 템플릿) |
|
수치 배열, 배열 마스크 및 배열 슬라이스
(클래스 템플릿) |