std::experimental::simd_abi::deduce
來自 cppreference.com
< cpp | experimental | simd
定義於標頭檔案 <experimental/simd> |
||
template< class T, std::size_t N, class ...Abis > struct deduce; |
(並行技術規範 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> 是預設可構造的,即它受支援,
- 如果 N == 1,則
DA
是simd_abi::scalar
,否則它是實現定義的。
目錄 |
[編輯] 成員型別
名稱 | 定義 |
型別
|
一個適用於指定元素型別 T 和大小 N 的 ABI 標籤型別 |
[編輯] 輔助型別
template< class T, std::size_t N, class ...Abis > using deduce_t = typename deduce<T, N, Abis...>::type; |
(並行技術規範 v2) | |
[編輯] 注意
simd_abi::deduce
支援 SFINAE。
透過此工具推匯出的 ABI 標籤是一個實現質量特性。實現可以基於 Abis... 進行選擇,但也可以忽略 Abis... 引數。一個簡單的實現可能無條件地返回 fixed_size<N>。一個最佳化的實現可能會對大多數輸入返回一個實現定義的擴充套件 ABI 標籤。因此,如果您需要一個針對特定數量元素的 ABI 標籤,如果 ABI 穩定性是關注點,請使用 fixed_size
,否則首選 deduce_t
。
[編輯] 示例
本節不完整 原因:無示例 |
[編輯] 參閱
(並行技術規範 v2) |
用於儲存單個元素的標籤型別 (typedef) |
(並行技術規範 v2) |
用於儲存指定數量元素的標籤型別 (別名模板) |
(並行技術規範 v2) |
確保 ABI 相容性的標籤型別 (別名模板) |
(並行技術規範 v2) |
最高效的標籤型別 (別名模板) |