diff options
author | Claudius "keldu" Holeksa <mail@keldu.de> | 2024-07-04 11:45:02 +0200 |
---|---|---|
committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2024-07-04 11:45:02 +0200 |
commit | ff5535b51730974b7933dd93e140579f3232a275 (patch) | |
tree | 967521f8aa7c208475dae63fc82eaff7e52bfb7b /modules/codec/c++ | |
parent | fe49d9fcac2f0e45d998abc1909c1a3e35ec83ce (diff) |
Ammending kernel work
Diffstat (limited to 'modules/codec/c++')
-rw-r--r-- | modules/codec/c++/data.hpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/modules/codec/c++/data.hpp b/modules/codec/c++/data.hpp index dd70cd9..05bd8e2 100644 --- a/modules/codec/c++/data.hpp +++ b/modules/codec/c++/data.hpp @@ -147,7 +147,7 @@ public: * Casts */ template<typename Target> - data<Target, encode::Native, Storage> cast_to(){ + data<Target, encode::Native, Storage> cast_to() const { auto raw_to = static_cast<typename saw::native_data_type<Target>::type>(value_); return {raw_to}; } @@ -170,9 +170,13 @@ public: typename saw::native_data_type<typename Schema::InterfaceSchema>::type get() const { return value_.template cast_to<typename Schema::InterfaceSchema>().get(); } + + data(const saw::data<typename Schema::InterfaceSchema, encode::Native, Storage>& val){ + value_ = val.template cast_to<typename Schema::StorageSchema>(); + } void set(typename saw::native_data_type<typename Schema::InterfaceSchema>::type val){ - value_.set(val.template cast_to<typename Schema::StorageSchema>().get()); + value_.set(static_cast<typename Schema::StorageSchema>(val)); } data<Schema, encode::Native, Storage> operator*(const data<Schema, encode::Native, Storage>& rhs) const { @@ -182,7 +186,7 @@ public: return {left * right}; } - data<Schema, encode::Native, Storage> operator*(const data<typename Schema::InterfaceSchema, encode::Native, Storage>& rhs) const { + data<typename Schema::InterfaceSchema, encode::Native, Storage> operator*(const data<typename Schema::InterfaceSchema, encode::Native, Storage>& rhs) const { using CalcType = typename native_data_type<typename Schema::InterfaceSchema>::type; CalcType left = static_cast<CalcType>(value_.get()); CalcType right = rhs.get(); |