Concepts usage improved

This commit is contained in:
Mateusz Pusz committed 2018-11-10 17:10:30 -08:00
1 parent 94fd74000c
commit 297b71efcf
7 files changed
+18 -61

No files matched your search

+8 -12
View File
@@ -29,19 +29,15 @@ namespace mp {
namespace std_concepts {
namespace detail {
template<class T, class U>
concept bool SameHelper = std::is_same_v<T, U>;
}
template<typename T, typename U>
concept bool Same = std::is_same_v<T, U>;
template<class T, class U>
concept bool Same = detail::SameHelper<T, U>&& detail::SameHelper<U, T>;
template<class From, class To>
concept bool ConvertibleTo = std::is_convertible_v<From, To>&& requires(From (&f)())
{
static_cast<To>(f());
};
template<typename From, typename To>
concept bool ConvertibleTo =
std::is_convertible_v<From, To> &&
requires(From (&f)()) {
static_cast<To>(f());
};
} // namespace std_concepts
} // namespace mp
+1 -1
View File
@@ -32,7 +32,7 @@ namespace units {
template<typename T>
concept bool Number = requires(T a, T b) {
{ a + b} -> T;
{ a + b } -> T;
{ a - b } -> T;
{ a * b } -> T;
{ a / b } -> T;