forked from mpusz/mp-units
VS2019 support added
This commit is contained in:
@@ -43,6 +43,6 @@ namespace units {
|
||||
}
|
||||
|
||||
template<bool B, typename T, typename F>
|
||||
using conditional = detail::conditional_impl<B>::template type<T, F>;
|
||||
using conditional = TYPENAME detail::conditional_impl<B>::template type<T, F>;
|
||||
|
||||
}
|
||||
|
||||
@@ -37,5 +37,12 @@ target_link_libraries(unit_tests_runtime
|
||||
$<IF:$<TARGET_EXISTS:CONAN_PKG::catch2>,CONAN_PKG::catch2,Catch2::Catch2>
|
||||
)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||
target_compile_options(unit_tests_runtime
|
||||
PRIVATE
|
||||
/wd4244 # 'conversion' conversion from 'type1' to 'type2', possible loss of data
|
||||
)
|
||||
endif()
|
||||
|
||||
include(Catch)
|
||||
catch_discover_tests(unit_tests_runtime)
|
||||
|
||||
@@ -48,7 +48,7 @@ template<typename T>
|
||||
struct typeinfo;
|
||||
|
||||
template<typename... Ts>
|
||||
using dim_unpack = detail::dim_unpack<Ts...>::type;
|
||||
using dim_unpack = TYPENAME detail::dim_unpack<Ts...>::type;
|
||||
|
||||
template<Exponent... Es>
|
||||
using derived_dim = detail::derived_dimension_base<Es...>;
|
||||
|
||||
@@ -226,7 +226,7 @@ static_assert(quantity_point_cast<int>(quantity_point(1.23q_m)).relative().count
|
||||
|
||||
// time
|
||||
|
||||
#if __GNUC__ >= 10
|
||||
#if COMP_MSVC || COMP_GCC >= 10
|
||||
static_assert(!std::equality_comparable_with<quantity_point<dim_time, second, int>,
|
||||
quantity_point<dim_length, metre, int>>); // different dimensions
|
||||
#endif
|
||||
|
||||
@@ -142,7 +142,8 @@ static_assert(quantity_cast<fps::length<fps::foot>>(si::length<si::metre>(0.3048
|
||||
|
||||
// static_assert(1q_ft - si::length<si::metre>(1) == -si::length<si::metre>(0.6952)); // should not compile (different dimensions)
|
||||
// static_assert(si::length<si::metre>(1) - 1q_ft == si::length<si::metre>(0.6952)); // should not compile (different dimensions)
|
||||
static_assert(quantity_cast<si::length<si::metre>>(6.q_ft) - si::length<si::metre>(1) == si::length<si::metre>(0.8288)); // 6 ft in m - 1 m = ... m
|
||||
static_assert(quantity_cast<si::length<si::metre>>(6.q_ft) - si::length<si::metre>(1) > si::length<si::metre>(0.8287) &&
|
||||
quantity_cast<si::length<si::metre>>(6.q_ft) - si::length<si::metre>(1) < si::length<si::metre>(0.8289)); // 6 ft in m - 1 m = ... m
|
||||
static_assert(si::length<si::metre>(5) - quantity_cast<si::length<si::metre>>(6q_ft) == si::length<si::metre>(3.1712)); // 5 m - 6 ft in m = ...
|
||||
static_assert(6.q_ft - quantity_cast<fps::length<fps::foot>>(si::length<si::metre>(0.3048)) == 5.q_ft); // 6 ft - 1 ft in m = 5 ft
|
||||
static_assert(quantity_cast<fps::length<fps::foot>>(si::length<si::metre>(1.8288)) - 1.q_ft == 5.q_ft); // 6 ft in m - 1 ft = 5 ft
|
||||
|
||||
@@ -36,8 +36,8 @@ static_assert(sym1 <= 'b');
|
||||
static_assert(sym1 <= 'c');
|
||||
static_assert(sym1 >= 'b');
|
||||
static_assert(sym1 >= 'a');
|
||||
static_assert(sym1.standard() == 'b');
|
||||
static_assert(sym1.ascii() == 'b');
|
||||
static_assert(sym1.standard() == "b");
|
||||
static_assert(sym1.ascii() == "b");
|
||||
|
||||
constexpr basic_symbol_text sym2('a', 'b');
|
||||
static_assert(sym2 == basic_symbol_text('a', 'b'));
|
||||
@@ -59,7 +59,7 @@ static_assert(sym5.standard() == "bc");
|
||||
static_assert(sym5.ascii() == "de");
|
||||
|
||||
constexpr basic_fixed_string txt2("de");
|
||||
constexpr basic_symbol_text sym6(txt1, txt2);
|
||||
constexpr basic_symbol_text sym6(sym4.standard(), txt2);
|
||||
static_assert(sym6.standard() == "bc");
|
||||
static_assert(sym6.ascii() == "de");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user