diff options
Diffstat (limited to 'modules/codec-unit/c++/unit.tmpl.hpp')
-rw-r--r-- | modules/codec-unit/c++/unit.tmpl.hpp | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/modules/codec-unit/c++/unit.tmpl.hpp b/modules/codec-unit/c++/unit.tmpl.hpp index 7412199..08edc4f 100644 --- a/modules/codec-unit/c++/unit.tmpl.hpp +++ b/modules/codec-unit/c++/unit.tmpl.hpp @@ -3,17 +3,41 @@ namespace saw { template<typename BaseSchema, typename... Elements> data<schema::Unit<BaseSchema, Elements...>, encode::Native> data<schema::Unit<BaseSchema, Elements...>, encode::Native>::operator+(const -data<schema::Unit<BaseSchema, Elements...>, encode::Native>& rhs){ +data<schema::Unit<BaseSchema, Elements...>, encode::Native>& rhs) const { auto add = dat_ + rhs.dat_; - return {add}; + return add; } template<typename BaseSchema, typename... Elements> data<schema::Unit<BaseSchema, Elements...>, encode::Native> data<schema::Unit<BaseSchema, Elements...>, encode::Native>::operator-(const -data<schema::Unit<BaseSchema, Elements...>, encode::Native>& rhs){ +data<schema::Unit<BaseSchema, Elements...>, encode::Native>& rhs) const { auto sub = dat_ - rhs.dat_; - return {sub}; + return sub; +} + +template<typename BaseSchema, typename... Elements> +bool +data<schema::Unit<BaseSchema, Elements...>, encode::Native>::operator==(const data<Schema, encode::Native>& rhs) const { + return dat_ == rhs.dat_; +} + +template<typename BaseSchema, typename... Elements> +template<typename UnitRhs> +data<typename unit_multiplication<schema::Unit<BaseSchema,Elements...>, UnitRhs>::Schema, encode::Native> +data<schema::Unit<BaseSchema, Elements...>, encode::Native>::operator*(const +data<UnitRhs, encode::Native>& rhs) const { + auto mult = dat_ * rhs.dat_; + return mult; +} + +template<typename BaseSchema, typename... Elements> +template<typename UnitRhs> +data<typename unit_division<schema::Unit<BaseSchema,Elements...>, UnitRhs>::Schema, encode::Native> +data<schema::Unit<BaseSchema, Elements...>, encode::Native>::operator/(const +data<UnitRhs, encode::Native>& rhs) const { + auto div = dat_ / rhs.dat_; + return div; } } |