- simd[meta header]
- std::simd[meta namespace]
- basic_vec[meta class]
- function[meta id-type]
- cpp26[meta cpp]
constexpr iterator begin() noexcept; // (1) C++26
constexpr const_iterator begin() const noexcept; // (2) C++26先頭要素を指すイテレータを取得する。
basic_vecはbegin/endを備えることで、要素を走査できるRangeとして扱える。
先頭(0番目)の要素を指すイテレータ。
投げない
#include <simd>
#include <print>
namespace simd = std::simd;
int main()
{
simd::vec<int, 4> v([](int i) { return i + 1; }); // {1, 2, 3, 4}
for (auto it = v.begin(); it != v.end(); ++it) {
std::print("{} ", *it);
}
std::println("");
}- v.begin()[color ff0000]
- v.end()[link end.md]
1 2 3 4
- C++26
- Clang: 22 [mark noimpl]
- GCC: 16.1 [mark noimpl]
- Visual C++: 2026 Update 2 [mark noimpl]
- P1928R15 std::simd — merge data-parallel types from the Parallelism TS 2
- C++26で
std::simdが追加された
- C++26で
- P3480R6
std::simdis a range- イテレータを追加し、Rangeとして扱えるようになった