refactor: apply comments

This commit is contained in:
Johel Ernesto Guerrero Peña
2021-02-22 14:40:23 -04:00
committed by Mateusz Pusz
parent dca553ed96
commit 94eb477f02
4 changed files with 14 additions and 10 deletions

View File

@ -73,6 +73,11 @@ macro(_set_flags)
set(GCC_WARNINGS set(GCC_WARNINGS
${CLANG_WARNINGS} ${CLANG_WARNINGS}
-Wno-float-conversion
-Wno-shorten-64-to-32
-Wno-implicit-float-conversion
-Wno-implicit-int-float-conversion
-Wno-implicit-int-conversion
-Wmisleading-indentation # warn if indentation implies blocks where blocks do not exist -Wmisleading-indentation # warn if indentation implies blocks where blocks do not exist
-Wduplicated-cond # warn if if / else chain has duplicated conditions -Wduplicated-cond # warn if if / else chain has duplicated conditions
-Wduplicated-branches # warn if if / else branches have duplicated code -Wduplicated-branches # warn if if / else branches have duplicated code

View File

@ -31,7 +31,11 @@
#define COMP_MSVC _MSC_VER #define COMP_MSVC _MSC_VER
#endif #endif
#if COMP_CLANG && false #if defined(COMP_CLANG) && !defined(UNITS_LIBCXX)
#define UNITS_LIBCXX 0
#endif
#if COMP_CLANG && UNITS_LIBCXX
#include <concepts/compare.hpp> #include <concepts/compare.hpp>
#include <concepts/concepts.hpp> #include <concepts/concepts.hpp>
@ -60,7 +64,7 @@ namespace std {
template<class T> template<class T>
concept default_constructible = constructible_from<T>; concept default_constructible = constructible_from<T>;
#elif COMP_CLANG && false #elif COMP_CLANG && UNITS_LIBCXX
// concepts // concepts
using concepts::three_way_comparable; using concepts::three_way_comparable;

View File

@ -290,7 +290,7 @@ template<typename CastSpec, typename K, typename U, typename Rep>
requires requires { requires is_specialization_of<CastSpec, quantity_kind>; requires requires { requires is_specialization_of<CastSpec, quantity_kind>;
requires requires { quantity_cast<typename CastSpec::quantity_type>(qk.common()); }; } || requires requires { quantity_cast<typename CastSpec::quantity_type>(qk.common()); }; } ||
requires { requires Kind<CastSpec>; requires UnitOf<U, typename CastSpec::dimension>; } || requires { requires Kind<CastSpec>; requires UnitOf<U, typename CastSpec::dimension>; } ||
requires { requires requires { quantity_cast<CastSpec>(qk.common()); }; } requires { quantity_cast<CastSpec>(qk.common()); }
{ {
if constexpr (is_specialization_of<CastSpec, quantity_kind>) if constexpr (is_specialization_of<CastSpec, quantity_kind>)
return CastSpec(quantity_cast<typename CastSpec::quantity_type>(qk.common())); return CastSpec(quantity_cast<typename CastSpec::quantity_type>(qk.common()));
@ -349,7 +349,7 @@ template<typename CastSpec, typename PK, typename U, typename Rep>
requires requires { requires is_specialization_of<CastSpec, quantity_point_kind>; requires requires { requires is_specialization_of<CastSpec, quantity_point_kind>;
requires requires { quantity_kind_cast<typename CastSpec::quantity_kind_type>(qpk.relative()); }; } || requires requires { quantity_kind_cast<typename CastSpec::quantity_kind_type>(qpk.relative()); }; } ||
requires { requires PointKind<CastSpec> && UnitOf<U, typename CastSpec::dimension>; } || requires { requires PointKind<CastSpec> && UnitOf<U, typename CastSpec::dimension>; } ||
requires { requires requires { quantity_kind_cast<CastSpec>(qpk.relative()); }; } requires { quantity_kind_cast<CastSpec>(qpk.relative()); }
{ {
if constexpr (is_specialization_of<CastSpec, quantity_point_kind>) if constexpr (is_specialization_of<CastSpec, quantity_point_kind>)
return CastSpec(quantity_kind_cast<typename CastSpec::quantity_kind_type>(qpk.relative())); return CastSpec(quantity_kind_cast<typename CastSpec::quantity_kind_type>(qpk.relative()));

View File

@ -44,11 +44,6 @@ using namespace unit_constants;
constexpr auto cgs_cm = cgs::unit_constants::cm; constexpr auto cgs_cm = cgs::unit_constants::cm;
#if UNITS_DOWNCAST_MODE == 0
template<typename T, typename U>
constexpr bool is_same_v = equivalent<T, U>;
#endif
////////////////////////////// //////////////////////////////
// quantity class invariants // quantity class invariants
@ -748,7 +743,7 @@ static_assert(quantity_cast<dim_speed, kilometre_per_hour>(2000.0_q_m / 3600.0_q
static_assert(quantity_cast<dim_length>(1 * cgs_cm) == 1 * cm); static_assert(quantity_cast<dim_length>(1 * cgs_cm) == 1 * cm);
static_assert(is_same_v<decltype(quantity_cast<litre>(2_q_dm3)), volume<litre, std::int64_t>>); static_assert(is_same_v<decltype(quantity_cast<litre>(2_q_dm3)), volume<litre, std::int64_t>>);
static_assert(!std::same_as<decltype(quantity_cast<litre>(2_q_dm3)), volume<cubic_decimetre, std::int64_t>>); static_assert(!is_same_v<decltype(quantity_cast<litre>(2_q_dm3)), volume<cubic_decimetre, std::int64_t>>);
//////////////// ////////////////
// downcasting // downcasting