名稱空間
變體
操作

std::experimental::split, split_by

來自 cppreference.com
< cpp‎ | experimental‎ | simd
 
 
實驗性
技術規範
檔案系統庫 (檔案系統 TS)
庫基礎 (庫基礎 TS)
庫基礎 2 (庫基礎 TS v2)
庫基礎 3 (庫基礎 TS v3)
並行性擴充套件 (並行性 TS)
並行性擴充套件 2 (並行性 TS v2)
併發性擴充套件 (併發性 TS)
併發擴充套件 2 (併發 TS v2)
概念 (概念 TS)
範圍 (範圍 TS)
反射 (反射 TS)
數學特殊函式 (特殊函式 TR)
實驗性非 TS
模式匹配
線性代數
std::execution
契約
2D 圖形
 
 
 
定義於標頭檔案 <experimental/simd>
template< std::size_t... Sizes, class T, class Abi >

std::tuple<simd<T, simd_abi::deduce_t<T, Sizes>>...>

    split( const simd<T, Abi>& v ) noexcept;
(1) (並行技術規範 v2)
template< std::size_t... Sizes, class T, class Abi >

std::tuple<simd_mask<T, simd_abi::deduce_t<T, Sizes>>...>

    split( const simd_mask<T, Abi>& v ) noexcept;
(2) (並行技術規範 v2)
template< class V, class Abi >

std::array<V, simd_size_v<typename V::value_type, Abi> / V::size()>

    split( const simd<typename V::value_type, Abi>& v ) noexcept;
(3) (並行技術規範 v2)
template< class V, class Abi >

std::array<V, simd_size_v<typename V::value_type, Abi> / V::size()>

    split( const simd_mask<typename V::value_type, Abi>& v ) noexcept;
(4) (並行技術規範 v2)
template< size_t N, class T, class A >

array<resize_simd<simd_size_v<T, A> / N, simd<T, A>>, N>

    split_by( const simd<T, A>& v ) noexcept;
(5) (並行技術規範 v2)
template< size_t N, class T, class A >

array<resize_simd<simd_size_v<T, A> / N, simd_mask<T, A>>, N>

    split_by( const simd_mask<T, A>& v ) noexcept;
(6) (並行技術規範 v2)

將輸入 simdsimd_mask 物件拆分為多個 simdsimd_mask 物件。

1,2) 將輸入物件拆分為可能不同型別(例如,不同大小的型別)的物件。這些函式不參與過載決議,除非 Sizes... 的和等於 v.size()
3,4) 將輸入物件拆分為物件陣列。這些函式不參與過載決議,除非
  • 陣列元素必須是 simdsimd_mask 型別,對於 v 的型別分別為 simdsimd_mask
  • simd_size_v<typename V::value_type, Abi>V::size() 的整數倍。
5,6) 將輸入物件拆分為物件陣列。這些函式不參與過載決議,除非 simd_size_v<T, A>N 的整數倍。

[編輯] 引數

v - 輸入的 simdsimd_mask 物件

[編輯] 返回值

1,2) 包含拆分後的 simdsimd_mask 物件的元組。
3-6) 包含拆分後的 simdsimd_mask 物件的陣列。

[編輯] 示例