Namespaces
Variants

std:: datapar:: basic_simd, std:: datapar:: simd

From cppreference.net
헤더 파일에 정의됨 <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부터)
1) std::datapar::basic_simd 특수화는 데이터 병렬 타입입니다. 기본 ABI 태그는 컴파일 타임에 구현에 의해 결정됩니다.
2) 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

멤버 상수

이름 설명
[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는 다음 조건에서만 존재합니다:

추론된 타입은 datapar :: simd < ranges:: range_value_t < R > , ranges:: size ( r ) > 와 동등합니다.

참고 사항

구현체는 basic_simd 의 활성화된 특수화와 적절한 구현체 정의 타입 간의 명시적 변환을 지원하는 것이 권장됩니다. 이러한 적절한 타입들은 구현체에서 사용 가능한 비표준 벡터 타입들입니다.

예제

참고 항목

요소 타입이 bool 인 데이터 병렬 타입
(클래스 템플릿)
너비를 지정할 수 있는 basic_simd_mask 의 편의성 앨리어스 템플릿
(앨리어스 템플릿)
수치 배열, 배열 마스크 및 배열 슬라이스
(클래스 템플릿)