std::experimental::simd_abi:: deduce
|
Определено в заголовочном файле
<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
|
тип тега ABI, подходящий для указанного типа элемента
T
и размера
N
|
Вспомогательные типы
|
template
<
class
T,
std::
size_t
N,
class
...
Abis
>
using deduce_t = typename deduce < T, N, Abis... > :: type ; |
(parallelism TS v2) | |
Примечания
simd_abi::deduce
является SFINAE-дружественным.
ABI-тег, выводимый с помощью этого механизма, является функцией качества реализации.
Реализации могут основывать выбор на
Abis...
, но также могут игнорировать
Abis...
аргументы. Простая реализация может просто возвращать
fixed_size
<
N
>
безусловно. Оптимизированная реализация может возвращать определяемый реализацией расширенный ABI-тег для большинства входных данных. Следовательно, если вам нужен ABI-тег для определенного количества элементов, используйте
fixed_size
если важна стабильность ABI, и предпочтите
deduce_t
в остальных случаях.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
(parallelism TS v2)
|
теговый тип для хранения одного элемента
(typedef) |
|
(parallelism TS v2)
|
теговый тип для хранения указанного количества элементов
(alias template) |
|
(parallelism TS v2)
|
теговый тип, обеспечивающий совместимость ABI
(alias template) |
|
(parallelism TS v2)
|
наиболее эффективный теговый тип
(alias template) |