diff options
author | Claudius 'keldu' Holeksa <mail@keldu.de> | 2024-11-18 12:26:57 +0100 |
---|---|---|
committer | Claudius 'keldu' Holeksa <mail@keldu.de> | 2024-11-18 12:26:57 +0100 |
commit | 7a13e856c27197dbdb87affa7e96cbadaec4df92 (patch) | |
tree | ac6f49560462d412e9770133676aee1854b87634 /modules | |
parent | 3b2d769baeaea24b2b0044dfc08a2ed55bb860cd (diff) |
Made FixedArray data constexpr for test
Diffstat (limited to 'modules')
-rw-r--r-- | modules/codec/c++/data.hpp | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/modules/codec/c++/data.hpp b/modules/codec/c++/data.hpp index 26f3afd..f4b53ed 100644 --- a/modules/codec/c++/data.hpp +++ b/modules/codec/c++/data.hpp @@ -302,7 +302,7 @@ public: }; template<typename T, uint64_t... D> -class data<schema::FixedArray<T,D...>, encode::Native> { +class data<schema::FixedArray<T,D...>, encode::Native> final { public: using Schema = schema::FixedArray<T,D...>; using MetaSchema = typename meta_schema<Schema>::MetaSchema; @@ -313,46 +313,46 @@ private: ArrayT value_; public: - data() = default; - data(data<MetaSchema, encode::Native>){} - data(const std::array<data<T, encode::Native>, ct_multiply<uint64_t,D...>::value>& value__): + constexpr data() = default; + constexpr data(data<MetaSchema, encode::Native>){} + constexpr data(const std::array<data<T, encode::Native>, ct_multiply<uint64_t,D...>::value>& value__): value_{value__} {} - data<T, encode::Native>& at(const std::array<uint64_t, sizeof...(D)>& ind){ + constexpr data<T, encode::Native>& at(const std::array<uint64_t, sizeof...(D)>& ind){ return value_.at(this->get_flat_index(ind)); } - const data<T, encode::Native>& at(const std::array<uint64_t, sizeof...(D)>& ind) const { + constexpr const data<T, encode::Native>& at(const std::array<uint64_t, sizeof...(D)>& ind) const { return value_.at(this->get_flat_index(ind)); } - data<T, encode::Native>& at(data<schema::UInt64, encode::Native> i) { + constexpr data<T, encode::Native>& at(data<schema::UInt64, encode::Native> i) { return value_.at(this->get_flat_index({i.get()})); } - const data<T, encode::Native>& at(data<schema::UInt64, encode::Native> i) const { + constexpr const data<T, encode::Native>& at(data<schema::UInt64, encode::Native> i) const { return value_.at(this->get_flat_index({i.get()})); } - data<T, encode::Native>& at(const data<schema::FixedArray<schema::UInt64, sizeof...(D)>>& i){ + constexpr data<T, encode::Native>& at(const data<schema::FixedArray<schema::UInt64, sizeof...(D)>>& i){ return value_.at(this->get_flat_index(i)); } - const data<T, encode::Native>& at(const data<schema::FixedArray<schema::UInt64, sizeof...(D)>>& i)const{ + constexpr const data<T, encode::Native>& at(const data<schema::FixedArray<schema::UInt64, sizeof...(D)>>& i)const{ return value_.at(this->get_flat_index(i)); } template<uint64_t i> - uint64_t get_dim_size() const { + constexpr uint64_t get_dim_size() const { return parameter_pack_value<i, uint64_t, D...>::value; } - data<schema::FixedArray<schema::UInt64, sizeof...(D)>> get_dims() const { + constexpr data<schema::FixedArray<schema::UInt64, sizeof...(D)>> get_dims() const { return {std::array<uint64_t, sizeof...(D)>{D...}}; } private: - uint64_t get_flat_index(const std::array<uint64_t, sizeof...(D)>& i) const { + constexpr uint64_t get_flat_index(const std::array<uint64_t, sizeof...(D)>& i) const { uint64_t s = 0; uint64_t stride = 1; |