VS2019 support added

This commit is contained in:
Mateusz Pusz
2020-09-04 23:06:57 +02:00
parent 71e3dba69a
commit b318e8d039
38 changed files with 253 additions and 160 deletions
+1 -1
View File
@@ -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>;
}
+7
View File
@@ -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)
+1 -1
View File
@@ -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
+2 -1
View File
@@ -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
+3 -3
View File
@@ -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");