summaryrefslogtreecommitdiff
path: root/modules/codec-unit/c++/unit.tmpl.hpp
blob: 08edc4fc8f61516ce5c04b167169e779c57f4e69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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) const {
	auto add = dat_ + rhs.dat_;
	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) const {
	auto sub = dat_ - rhs.dat_;
	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;
}

}