From 0ada695c7a9a774a233211fe73e86b0779c3073a Mon Sep 17 00:00:00 2001 From: Jack Andersen Date: Sat, 20 Jul 2019 22:41:46 -1000 Subject: [PATCH] Make simd_floats use std::array for storage --- include/athena/simd/parallelism_v2_simd.hpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/include/athena/simd/parallelism_v2_simd.hpp b/include/athena/simd/parallelism_v2_simd.hpp index 526624f..c1424ce 100644 --- a/include/athena/simd/parallelism_v2_simd.hpp +++ b/include/athena/simd/parallelism_v2_simd.hpp @@ -1175,15 +1175,16 @@ public: simd_data(Ts... args) : __data_{args...} {} value_type operator[](size_t idx) const noexcept { return __data_[idx]; } value_type& operator[](size_t idx) noexcept { return __data_[idx]; } - const value_type* data() const noexcept { return __data_; } - value_type* data() noexcept { return __data_; } - auto begin() { return std::begin(__data_); } - auto end() { return std::end(__data_); } - auto begin() const { return std::begin(__data_); } - auto end() const { return std::end(__data_); } + const value_type* data() const noexcept { return __data_.data(); } + value_type* data() noexcept { return __data_.data(); } + auto begin() { return __data_.begin(); } + auto end() { return __data_.end(); } + auto begin() const { return __data_.begin(); } + auto end() const { return __data_.end(); } + const std::array& array() const { return __data_; } private: - value_type __data_[_Simd::size()]; + std::array __data_; }; // [simd.class]