Namespaces
Variants

std::experimental::simd_abi:: deduce

From cppreference.net
헤더 파일에 정의됨 <experimental/simd>
template < class T, std:: size_t N, class ... Abis >
struct deduce ;
(parallelism TS v2)

타입 deduce < T, N, Abis... > :: type 는 다음 조건에서만 존재합니다:

  • T 는 벡터화 가능한 타입이며,
  • simd_abi :: fixed_size < N > 이 지원되고,
  • Abis... 내 모든 타입이 ABI 태그입니다.

DA 가 존재할 때 이를 deduce < T, N, Abis... > :: type 로 표기한다면,

  • simd_size_v < T, DA > == N ,
  • simd < T, DA > 는 기본 생성 가능합니다. 즉, 지원됩니다.
  • DA simd_abi::scalar 입니다. 단, N == 1 인 경우에 한하며, 그 외의 경우에는 구현에서 정의됩니다.

목차

멤버 타입

이름 정의
type 지정된 요소 타입 T 와 크기 N 에 적합한 ABI 태그 타입

헬퍼 타입

template < class T, std:: size_t N, class ... Abis >
using deduce_t = typename deduce < T, N, Abis... > :: type ;
(병렬성 TS v2)

참고 사항

simd_abi::deduce 는 SFINAE-friendly입니다.

이 기능을 통해 추론된 ABI 태그는 구현 품질(Quality-of-Implementation) 기능입니다. 구현체는 Abis... 를 기준으로 선택할 수 있지만, Abis... 인수를 무시할 수도 있습니다. 단순한 구현체는 무조건 fixed_size < N > 를 반환할 수 있습니다. 최적화된 구현체는 대부분의 입력에 대해 구현체 정의 확장 ABI 태그를 반환할 수 있습니다. 따라서 특정 요소 수에 대한 ABI 태그가 필요한 경우, ABI 안정성이 중요한 경우에는 fixed_size 를 사용하고, 그렇지 않은 경우에는 deduce_t 를 선호하십시오.

예제

참고 항목

(parallelism TS v2)
단일 요소를 저장하기 위한 태그 타입
(typedef)
(parallelism TS v2)
지정된 수의 요소를 저장하기 위한 태그 타입
(alias template)
(parallelism TS v2)
ABI 호환성을 보장하는 태그 타입
(alias template)
(parallelism TS v2)
가장 효율적인 태그 타입
(alias template)