From 952b19c2ed2519fb916235e73daacbf704f19d9e Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Sat, 28 Sep 2019 19:10:06 +0200 Subject: [PATCH] `bool` removed from concepts definitions as gcc-9.1 supports this syntax already --- doc/DESIGN.md | 2 +- src/include/units/bits/concepts.h | 2 +- src/include/units/bits/downcasting.h | 4 ++-- src/include/units/bits/type_list.h | 2 +- src/include/units/dimension.h | 6 +++--- src/include/units/dimensions/acceleration.h | 2 +- src/include/units/dimensions/area.h | 2 +- src/include/units/dimensions/capacitance.h | 2 +- src/include/units/dimensions/current.h | 2 +- src/include/units/dimensions/electric_charge.h | 2 +- src/include/units/dimensions/energy.h | 2 +- src/include/units/dimensions/force.h | 2 +- src/include/units/dimensions/frequency.h | 2 +- src/include/units/dimensions/length.h | 2 +- src/include/units/dimensions/luminous_intensity.h | 2 +- src/include/units/dimensions/mass.h | 2 +- src/include/units/dimensions/power.h | 2 +- src/include/units/dimensions/pressure.h | 2 +- src/include/units/dimensions/substance.h | 2 +- src/include/units/dimensions/temperature.h | 2 +- src/include/units/dimensions/time.h | 2 +- src/include/units/dimensions/velocity.h | 2 +- src/include/units/dimensions/voltage.h | 2 +- src/include/units/dimensions/volume.h | 2 +- src/include/units/quantity.h | 6 +++--- src/include/units/ratio.h | 2 +- src/include/units/unit.h | 2 +- test/metabench/list/type_list_concepts_all.h | 2 +- test/metabench/list/type_list_concepts_iface.h | 2 +- test/metabench/list/type_list_conditional_alias.h | 2 +- test/metabench/list/type_list_conditional_alias_hard.h | 2 +- test/metabench/list/type_list_conditional_std.h | 2 +- test/metabench/make_dimension/dimension_concepts_all.h | 4 ++-- test/metabench/make_dimension/dimension_concepts_iface.h | 4 ++-- test/metabench/make_dimension/downcasting_concepts_all.h | 2 +- test/metabench/make_dimension/ratio_concepts_all.h | 2 +- test/metabench/make_dimension/ratio_concepts_iface.h | 2 +- test/metabench/make_dimension/type_list_concepts_all.h | 2 +- test/metabench/make_dimension/type_list_concepts_iface.h | 2 +- test/unit_test/test_custom_units.cpp | 2 +- 40 files changed, 47 insertions(+), 47 deletions(-) diff --git a/doc/DESIGN.md b/doc/DESIGN.md index 1aebd862..384e92bb 100644 --- a/doc/DESIGN.md +++ b/doc/DESIGN.md @@ -580,7 +580,7 @@ a provided base class. namespace detail { template - concept bool has_downcast = requires { + concept has_downcast = requires { downcast_guide(std::declval>()); }; diff --git a/src/include/units/bits/concepts.h b/src/include/units/bits/concepts.h index c9d2269e..61c3c48f 100644 --- a/src/include/units/bits/concepts.h +++ b/src/include/units/bits/concepts.h @@ -27,7 +27,7 @@ namespace units { template - concept bool Number = std::regular && + concept Number = std::regular && std::totally_ordered && requires(T a, T b) { { a + b } -> T; diff --git a/src/include/units/bits/downcasting.h b/src/include/units/bits/downcasting.h index aa7ef102..f5bf3779 100644 --- a/src/include/units/bits/downcasting.h +++ b/src/include/units/bits/downcasting.h @@ -34,7 +34,7 @@ namespace units { }; template - concept bool Downcastable = + concept Downcastable = requires { typename T::base_type; } && @@ -48,7 +48,7 @@ namespace units { namespace detail { template - concept bool has_downcast = requires { + concept has_downcast = requires { downcast_guide(std::declval>()); }; diff --git a/src/include/units/bits/type_list.h b/src/include/units/bits/type_list.h index 7a720d66..3d3c13b9 100644 --- a/src/include/units/bits/type_list.h +++ b/src/include/units/bits/type_list.h @@ -37,7 +37,7 @@ namespace units { } // namespace detail template - concept bool TypeList = detail::is_type_list; + concept TypeList = detail::is_type_list; // push_front diff --git a/src/include/units/dimension.h b/src/include/units/dimension.h index c24a7762..55b9e286 100644 --- a/src/include/units/dimension.h +++ b/src/include/units/dimension.h @@ -30,7 +30,7 @@ namespace units { template - concept bool BaseDimension = std::is_empty_v && + concept BaseDimension = std::is_empty_v && requires { { T::value } -> std::same_as; }; @@ -68,7 +68,7 @@ namespace units { } // namespace detail template - concept bool Exponent = detail::is_exp; + concept Exponent = detail::is_exp; template struct dimension; @@ -85,7 +85,7 @@ namespace units { } // namespace detail template - concept bool Dimension = + concept Dimension = std::is_empty_v && detail::is_dimension>; diff --git a/src/include/units/dimensions/acceleration.h b/src/include/units/dimensions/acceleration.h index a57754dd..00285a8a 100644 --- a/src/include/units/dimensions/acceleration.h +++ b/src/include/units/dimensions/acceleration.h @@ -29,7 +29,7 @@ namespace units { struct acceleration : derived_dimension, exp> {}; template - concept bool Acceleration = QuantityOf; + concept Acceleration = QuantityOf; struct metre_per_second_sq : derived_unit {}; diff --git a/src/include/units/dimensions/area.h b/src/include/units/dimensions/area.h index b4806ffa..0c1dbe63 100644 --- a/src/include/units/dimensions/area.h +++ b/src/include/units/dimensions/area.h @@ -29,7 +29,7 @@ namespace units { struct area : derived_dimension> {}; template - concept bool Area = QuantityOf; + concept Area = QuantityOf; struct square_millimetre : derived_unit {}; struct square_centimetre : derived_unit {}; diff --git a/src/include/units/dimensions/capacitance.h b/src/include/units/dimensions/capacitance.h index 915c8cc9..b17f3e05 100644 --- a/src/include/units/dimensions/capacitance.h +++ b/src/include/units/dimensions/capacitance.h @@ -31,7 +31,7 @@ namespace units { struct capacitance : derived_dimension, exp> {}; template - concept bool Capacitance = QuantityOf; + concept Capacitance = QuantityOf; struct farad : derived_unit {}; diff --git a/src/include/units/dimensions/current.h b/src/include/units/dimensions/current.h index 13c92f2d..4c3f41c7 100644 --- a/src/include/units/dimensions/current.h +++ b/src/include/units/dimensions/current.h @@ -30,7 +30,7 @@ namespace units { struct current : derived_dimension> {}; template - concept bool Current = QuantityOf; + concept Current = QuantityOf; struct ampere : derived_unit {}; diff --git a/src/include/units/dimensions/electric_charge.h b/src/include/units/dimensions/electric_charge.h index 0f9dd99b..1044bb31 100644 --- a/src/include/units/dimensions/electric_charge.h +++ b/src/include/units/dimensions/electric_charge.h @@ -31,7 +31,7 @@ namespace units { struct electric_charge : derived_dimension, exp> {}; template - concept bool ElectricCharge = QuantityOf; + concept ElectricCharge = QuantityOf; struct coulomb : derived_unit {}; diff --git a/src/include/units/dimensions/energy.h b/src/include/units/dimensions/energy.h index 5d568f83..67e4e198 100644 --- a/src/include/units/dimensions/energy.h +++ b/src/include/units/dimensions/energy.h @@ -31,7 +31,7 @@ namespace units { struct energy : derived_dimension, exp> {}; template - concept bool Energy = QuantityOf; + concept Energy = QuantityOf; struct joule : derived_unit {}; diff --git a/src/include/units/dimensions/force.h b/src/include/units/dimensions/force.h index 73f83136..db67eccb 100644 --- a/src/include/units/dimensions/force.h +++ b/src/include/units/dimensions/force.h @@ -31,7 +31,7 @@ namespace units { struct force : derived_dimension, exp> {}; template - concept bool Force = QuantityOf; + concept Force = QuantityOf; struct newton : derived_unit {}; diff --git a/src/include/units/dimensions/frequency.h b/src/include/units/dimensions/frequency.h index 3c605cc8..b5151b56 100644 --- a/src/include/units/dimensions/frequency.h +++ b/src/include/units/dimensions/frequency.h @@ -30,7 +30,7 @@ namespace units { struct frequency : derived_dimension> {}; template - concept bool Frequency = QuantityOf; + concept Frequency = QuantityOf; struct hertz : derived_unit {}; struct millihertz : derived_unit> {}; diff --git a/src/include/units/dimensions/length.h b/src/include/units/dimensions/length.h index 6061247c..1c6a0126 100644 --- a/src/include/units/dimensions/length.h +++ b/src/include/units/dimensions/length.h @@ -30,7 +30,7 @@ namespace units { struct length : derived_dimension> {}; template - concept bool Length = QuantityOf; + concept Length = QuantityOf; // SI units struct metre : derived_unit {}; diff --git a/src/include/units/dimensions/luminous_intensity.h b/src/include/units/dimensions/luminous_intensity.h index 0aef47d5..8d667ca6 100644 --- a/src/include/units/dimensions/luminous_intensity.h +++ b/src/include/units/dimensions/luminous_intensity.h @@ -30,7 +30,7 @@ namespace units { struct luminous_intensity : derived_dimension> {}; template - concept bool LuminousIntensity = QuantityOf; + concept LuminousIntensity = QuantityOf; struct candela : derived_unit {}; diff --git a/src/include/units/dimensions/mass.h b/src/include/units/dimensions/mass.h index fba5649c..148eaa10 100644 --- a/src/include/units/dimensions/mass.h +++ b/src/include/units/dimensions/mass.h @@ -30,7 +30,7 @@ namespace units { struct mass : derived_dimension> {}; template - concept bool Mass = QuantityOf; + concept Mass = QuantityOf; struct gram : derived_unit> {}; struct kilogram : derived_unit> {}; diff --git a/src/include/units/dimensions/power.h b/src/include/units/dimensions/power.h index e6d8964c..75b21cf1 100644 --- a/src/include/units/dimensions/power.h +++ b/src/include/units/dimensions/power.h @@ -30,7 +30,7 @@ namespace units { struct power : derived_dimension, exp> {}; template - concept bool Power = QuantityOf; + concept Power = QuantityOf; struct watt : derived_unit {}; diff --git a/src/include/units/dimensions/pressure.h b/src/include/units/dimensions/pressure.h index 1698589d..cbb40ee8 100644 --- a/src/include/units/dimensions/pressure.h +++ b/src/include/units/dimensions/pressure.h @@ -31,7 +31,7 @@ namespace units { struct pressure : derived_dimension, exp> {}; template - concept bool Pressure = QuantityOf; + concept Pressure = QuantityOf; struct pascal : derived_unit {}; diff --git a/src/include/units/dimensions/substance.h b/src/include/units/dimensions/substance.h index 332a00f3..622b8d2c 100644 --- a/src/include/units/dimensions/substance.h +++ b/src/include/units/dimensions/substance.h @@ -30,7 +30,7 @@ namespace units { struct substance : derived_dimension> {}; template - concept bool Substance = QuantityOf; + concept Substance = QuantityOf; struct mole : derived_unit {}; diff --git a/src/include/units/dimensions/temperature.h b/src/include/units/dimensions/temperature.h index d2c69c1d..1c6a1239 100644 --- a/src/include/units/dimensions/temperature.h +++ b/src/include/units/dimensions/temperature.h @@ -30,7 +30,7 @@ namespace units { struct temperature : derived_dimension> {}; template - concept bool ThermodynamicTemperature = QuantityOf; + concept ThermodynamicTemperature = QuantityOf; struct kelvin : derived_unit {}; diff --git a/src/include/units/dimensions/time.h b/src/include/units/dimensions/time.h index 0ec84970..d031ad1c 100644 --- a/src/include/units/dimensions/time.h +++ b/src/include/units/dimensions/time.h @@ -30,7 +30,7 @@ namespace units { struct time : derived_dimension> {}; template - concept bool Time = QuantityOf; + concept Time = QuantityOf; struct second : derived_unit {}; struct nanosecond : derived_unit> {}; diff --git a/src/include/units/dimensions/velocity.h b/src/include/units/dimensions/velocity.h index 1da1c8ab..9c81a200 100644 --- a/src/include/units/dimensions/velocity.h +++ b/src/include/units/dimensions/velocity.h @@ -30,7 +30,7 @@ namespace units { struct velocity : derived_dimension, exp> {}; template - concept bool Velocity = QuantityOf; + concept Velocity = QuantityOf; struct metre_per_second : derived_unit {}; struct kilometre_per_hour : derived_unit {}; diff --git a/src/include/units/dimensions/voltage.h b/src/include/units/dimensions/voltage.h index 0ee32bc6..a72831fd 100644 --- a/src/include/units/dimensions/voltage.h +++ b/src/include/units/dimensions/voltage.h @@ -33,7 +33,7 @@ namespace units { struct voltage : derived_dimension, exp> {}; template - concept bool Voltage = QuantityOf; + concept Voltage = QuantityOf; struct volt : derived_unit {}; diff --git a/src/include/units/dimensions/volume.h b/src/include/units/dimensions/volume.h index 3ef36b61..87c51f99 100644 --- a/src/include/units/dimensions/volume.h +++ b/src/include/units/dimensions/volume.h @@ -29,7 +29,7 @@ namespace units { struct volume : derived_dimension> {}; template - concept bool Volume = QuantityOf; + concept Volume = QuantityOf; struct cubic_millimetre : derived_unit {}; struct cubic_centimetre : derived_unit {}; diff --git a/src/include/units/quantity.h b/src/include/units/quantity.h index dfb24f4c..ad7b08ee 100644 --- a/src/include/units/quantity.h +++ b/src/include/units/quantity.h @@ -39,15 +39,15 @@ namespace units { } template - concept bool Quantity = detail::is_quantity; + concept Quantity = detail::is_quantity; template - concept bool QuantityOf = Quantity && Dimension && same_dim; + concept QuantityOf = Quantity && Dimension && same_dim; // Scalar template - concept bool Scalar = Number && !Quantity; + concept Scalar = Number && !Quantity; template class quantity; diff --git a/src/include/units/ratio.h b/src/include/units/ratio.h index 92a76196..9c6aa4e0 100644 --- a/src/include/units/ratio.h +++ b/src/include/units/ratio.h @@ -61,7 +61,7 @@ namespace units { } // namespace detail template - concept bool Ratio = detail::is_ratio; + concept Ratio = detail::is_ratio; // ratio_multiply diff --git a/src/include/units/unit.h b/src/include/units/unit.h index ab30f179..e7f33728 100644 --- a/src/include/units/unit.h +++ b/src/include/units/unit.h @@ -48,7 +48,7 @@ namespace units { } template - concept bool Unit = + concept Unit = std::is_empty_v && detail::is_unit>; diff --git a/test/metabench/list/type_list_concepts_all.h b/test/metabench/list/type_list_concepts_all.h index 3f0a4746..0344bdc9 100644 --- a/test/metabench/list/type_list_concepts_all.h +++ b/test/metabench/list/type_list_concepts_all.h @@ -56,7 +56,7 @@ namespace units { } // namespace detail template - concept bool TypeList = detail::is_type_list; + concept TypeList = detail::is_type_list; // push_front diff --git a/test/metabench/list/type_list_concepts_iface.h b/test/metabench/list/type_list_concepts_iface.h index 056ba4f2..33d4af86 100644 --- a/test/metabench/list/type_list_concepts_iface.h +++ b/test/metabench/list/type_list_concepts_iface.h @@ -56,7 +56,7 @@ namespace units { } // namespace detail template - concept bool TypeList = detail::is_type_list; + concept TypeList = detail::is_type_list; // push_front diff --git a/test/metabench/list/type_list_conditional_alias.h b/test/metabench/list/type_list_conditional_alias.h index 056ba4f2..33d4af86 100644 --- a/test/metabench/list/type_list_conditional_alias.h +++ b/test/metabench/list/type_list_conditional_alias.h @@ -56,7 +56,7 @@ namespace units { } // namespace detail template - concept bool TypeList = detail::is_type_list; + concept TypeList = detail::is_type_list; // push_front diff --git a/test/metabench/list/type_list_conditional_alias_hard.h b/test/metabench/list/type_list_conditional_alias_hard.h index c6b43d43..b2b9db39 100644 --- a/test/metabench/list/type_list_conditional_alias_hard.h +++ b/test/metabench/list/type_list_conditional_alias_hard.h @@ -49,7 +49,7 @@ namespace units { } // namespace detail template - concept bool TypeList = detail::is_type_list; + concept TypeList = detail::is_type_list; // push_front diff --git a/test/metabench/list/type_list_conditional_std.h b/test/metabench/list/type_list_conditional_std.h index 54e0a100..8626aee2 100644 --- a/test/metabench/list/type_list_conditional_std.h +++ b/test/metabench/list/type_list_conditional_std.h @@ -37,7 +37,7 @@ namespace units { } // namespace detail template - concept bool TypeList = detail::is_type_list; + concept TypeList = detail::is_type_list; // push_front diff --git a/test/metabench/make_dimension/dimension_concepts_all.h b/test/metabench/make_dimension/dimension_concepts_all.h index 84a690a3..f3293ccd 100644 --- a/test/metabench/make_dimension/dimension_concepts_all.h +++ b/test/metabench/make_dimension/dimension_concepts_all.h @@ -79,7 +79,7 @@ namespace units { } // namespace detail template - concept bool Exponent = detail::is_exp; + concept Exponent = detail::is_exp; // exp_dim_id_less @@ -117,7 +117,7 @@ namespace units { } // namespace detail template - concept bool Dimension = + concept Dimension = std::is_empty_v && detail::is_dimension>; diff --git a/test/metabench/make_dimension/dimension_concepts_iface.h b/test/metabench/make_dimension/dimension_concepts_iface.h index 86d17926..d262e562 100644 --- a/test/metabench/make_dimension/dimension_concepts_iface.h +++ b/test/metabench/make_dimension/dimension_concepts_iface.h @@ -79,7 +79,7 @@ namespace units { } // namespace detail template - concept bool Exponent = detail::is_exp; + concept Exponent = detail::is_exp; // exp_dim_id_less @@ -117,7 +117,7 @@ namespace units { } // namespace detail template - concept bool Dimension = + concept Dimension = std::is_empty_v && detail::is_dimension>; diff --git a/test/metabench/make_dimension/downcasting_concepts_all.h b/test/metabench/make_dimension/downcasting_concepts_all.h index eddc5b42..db0c3b3b 100644 --- a/test/metabench/make_dimension/downcasting_concepts_all.h +++ b/test/metabench/make_dimension/downcasting_concepts_all.h @@ -33,7 +33,7 @@ namespace units { }; template - concept bool Downcastable = + concept Downcastable = requires { typename T::base_type; } && diff --git a/test/metabench/make_dimension/ratio_concepts_all.h b/test/metabench/make_dimension/ratio_concepts_all.h index ae25544e..e9aaf95e 100644 --- a/test/metabench/make_dimension/ratio_concepts_all.h +++ b/test/metabench/make_dimension/ratio_concepts_all.h @@ -61,7 +61,7 @@ namespace units { } // namespace detail template - concept bool Ratio = detail::is_ratio; + concept Ratio = detail::is_ratio; // ratio_multiply diff --git a/test/metabench/make_dimension/ratio_concepts_iface.h b/test/metabench/make_dimension/ratio_concepts_iface.h index 8f507c1f..e6e5d169 100644 --- a/test/metabench/make_dimension/ratio_concepts_iface.h +++ b/test/metabench/make_dimension/ratio_concepts_iface.h @@ -61,7 +61,7 @@ namespace units { } // namespace detail template - concept bool Ratio = detail::is_ratio; + concept Ratio = detail::is_ratio; // ratio_multiply diff --git a/test/metabench/make_dimension/type_list_concepts_all.h b/test/metabench/make_dimension/type_list_concepts_all.h index 180f5039..2195496c 100644 --- a/test/metabench/make_dimension/type_list_concepts_all.h +++ b/test/metabench/make_dimension/type_list_concepts_all.h @@ -37,7 +37,7 @@ namespace units { } // namespace detail template - concept bool TypeList = detail::is_type_list; + concept TypeList = detail::is_type_list; // push_front diff --git a/test/metabench/make_dimension/type_list_concepts_iface.h b/test/metabench/make_dimension/type_list_concepts_iface.h index b5b54cd9..711b8556 100644 --- a/test/metabench/make_dimension/type_list_concepts_iface.h +++ b/test/metabench/make_dimension/type_list_concepts_iface.h @@ -37,7 +37,7 @@ namespace units { } // namespace detail template - concept bool TypeList = detail::is_type_list; + concept TypeList = detail::is_type_list; // push_front diff --git a/test/unit_test/test_custom_units.cpp b/test/unit_test/test_custom_units.cpp index 9636d4da..000a04e3 100644 --- a/test/unit_test/test_custom_units.cpp +++ b/test/unit_test/test_custom_units.cpp @@ -33,7 +33,7 @@ namespace { struct digital_information : units::derived_dimension> {}; template - concept bool DigitalInformation = units::QuantityOf; + concept DigitalInformation = units::QuantityOf; struct bit : units::derived_unit {}; struct byte : units::derived_unit> {};