summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/codec/c++/data.hpp26
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;