19 #ifndef MIR_GEOMETRY_DIMENSIONS_H_
20 #define MIR_GEOMETRY_DIMENSIONS_H_
37 template<DimensionTag Tag>
44 template<
typename AnyInteger>
49 return (uint32_t)value;
64 template<DimensionTag Tag>
65 std::ostream& operator<<(std::ostream& out, IntWrapper<Tag>
const& value)
67 out << value.as_int();
71 template<DimensionTag Tag>
77 template<DimensionTag Tag>
83 template<DimensionTag Tag>
86 return lhs.
as_int() <= rhs.as_int();
89 template<DimensionTag Tag>
95 template<DimensionTag Tag>
98 return lhs.
as_int() < rhs.as_int();
101 template<DimensionTag Tag>
133 template<
typename Target,
typename Source>
134 inline Target
dim_cast(Source s) {
return Target(s.as_int()); }