/** @file quantity_concept.hpp **/ #pragma once #include namespace xo { namespace obs { template concept quantity_concept = requires(Quantity qty, typename Quantity::repr_type repr) { typename Quantity::unit_type; typename Quantity::repr_type; { qty.scale() } -> std::same_as; { Quantity::unit_cstr() } -> std::same_as; { Quantity::unit_quantity() } -> std::same_as; { Quantity::promote(repr) } -> std::same_as; }; } /*namespace obs*/ } /*namespace xo*/