#pragma once #include "unit_schema.hpp" #include "unit_transform.hpp" #include namespace saw { template class data, encode::Native> { public: using Schema = schema::Unit; private: data dat_; public: data() = default; data(data&& dat__): dat_{std::move(dat__)} {} data operator+(const data& rhs) const; data operator-(const data& rhs) const; bool operator==(const data& rhs) const; template data::Schema, encode::Native> operator*(const data& rhs) const; template data::Schema, encode::Native> operator/(const data& rhs) const; }; } #include "unit.tmpl.hpp"