summaryrefslogtreecommitdiff
path: root/modules/codec-unit/c++/unit.tmpl.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/codec-unit/c++/unit.tmpl.hpp')
-rw-r--r--modules/codec-unit/c++/unit.tmpl.hpp32
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;
}
}