From 7ead50acfcdb3ad889493c759079e38f3b32dffc Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Mon, 10 May 2021 16:45:38 +0200 Subject: [PATCH] refactor: `derived_kind` template parameters reordered to be compatible with a `derived_unit` Resolves #229 --- docs/framework/dimensions.rst | 4 ++-- example/glide_computer/include/glide_computer.h | 4 ++-- src/core/include/units/kind.h | 2 +- test/unit_test/static/kind_test.cpp | 2 +- test/unit_test/static/quantity_kind_test.cpp | 4 ++-- test/unit_test/static/quantity_point_kind_test.cpp | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/framework/dimensions.rst b/docs/framework/dimensions.rst index 344912a6..55cec054 100644 --- a/docs/framework/dimensions.rst +++ b/docs/framework/dimensions.rst @@ -77,7 +77,7 @@ you can use a quantity argument instead of a quantity kind. :emphasize-lines: 8-9 struct height_kind : kind {}; - struct rate_of_climb_kind : derived_kind {}; + struct rate_of_climb_kind : derived_kind {}; template using height = quantity_kind; template using rate_of_climb = quantity_kind; @@ -90,7 +90,7 @@ you can use a quantity argument instead of a quantity kind. :emphasize-lines: 8-12 struct width_kind : kind {}; - struct horizontal_area_kind : derived_kind {}; + struct horizontal_area_kind : derived_kind {}; template using width = quantity_kind; template using horizontal_area = quantity_kind; diff --git a/example/glide_computer/include/glide_computer.h b/example/glide_computer/include/glide_computer.h index 40341237..8185f95f 100644 --- a/example/glide_computer/include/glide_computer.h +++ b/example/glide_computer/include/glide_computer.h @@ -77,8 +77,8 @@ constexpr units::Dimensionless auto operator/(const QK1& lhs, const QK2& rhs) using horizontal_kind = geographic::horizontal_kind; struct vertical_kind : units::kind {}; struct vertical_point_kind : units::point_kind {}; -struct velocity_kind : units::derived_kind {}; -struct rate_of_climb_kind : units::derived_kind {}; +struct velocity_kind : units::derived_kind {}; +struct rate_of_climb_kind : units::derived_kind {}; // https://en.wikipedia.org/wiki/Flight_planning#Units_of_measurement // length diff --git a/src/core/include/units/kind.h b/src/core/include/units/kind.h index 7b1eef7f..5494adc5 100644 --- a/src/core/include/units/kind.h +++ b/src/core/include/units/kind.h @@ -54,7 +54,7 @@ using downcast_point_kind = downcast>; template struct kind : downcast_dispatch> {}; -template +template requires std::same_as struct derived_kind : downcast_dispatch> {}; diff --git a/test/unit_test/static/kind_test.cpp b/test/unit_test/static/kind_test.cpp index 37d43849..fb6ba0bc 100644 --- a/test/unit_test/static/kind_test.cpp +++ b/test/unit_test/static/kind_test.cpp @@ -151,7 +151,7 @@ static_assert(!equivalent); struct height : kind {}; -struct rate_of_climb : derived_kind {}; // program-defined derived kind +struct rate_of_climb : derived_kind {}; // program-defined derived kind struct velocity_of_climb : point_kind {}; // program-defined derived point kind static_assert(Kind); diff --git a/test/unit_test/static/quantity_kind_test.cpp b/test/unit_test/static/quantity_kind_test.cpp index 1dc9a5f2..1cc20856 100644 --- a/test/unit_test/static/quantity_kind_test.cpp +++ b/test/unit_test/static/quantity_kind_test.cpp @@ -52,8 +52,8 @@ struct radius_kind : kind {}; struct width_kind : kind {}; struct height_kind : kind {}; -struct horizontal_area_kind : derived_kind {}; -struct rate_of_climb_kind : derived_kind {}; +struct horizontal_area_kind : derived_kind {}; +struct rate_of_climb_kind : derived_kind {}; struct apple : kind {}; struct orange : kind {}; diff --git a/test/unit_test/static/quantity_point_kind_test.cpp b/test/unit_test/static/quantity_point_kind_test.cpp index df8cb952..b92ba9b5 100644 --- a/test/unit_test/static/quantity_point_kind_test.cpp +++ b/test/unit_test/static/quantity_point_kind_test.cpp @@ -54,7 +54,7 @@ struct ordinate_kind : point_kind {}; struct distance_kind : kind {}; struct cgs_width_kind : kind {}; struct cgs_height_kind : kind {}; -struct rate_of_climb_kind : derived_kind {}; +struct rate_of_climb_kind : derived_kind {}; struct altitude_kind : point_kind {}; struct apple : kind {};