mirror of
https://github.com/ETLCPP/etl.git
synced 2026-04-30 19:09:10 +08:00
Fix initializer_list use in algorithm.h
Needs to be conditional.
This commit is contained in:
parent
654e222bd9
commit
ea67ec9a43
@ -43,6 +43,7 @@ SOFTWARE.
|
||||
#include "exception.h"
|
||||
#include "functional.h"
|
||||
#include "gcd.h"
|
||||
#include "initializer_list.h"
|
||||
#include "invoke.h"
|
||||
#include "iterator.h"
|
||||
#include "largest.h"
|
||||
@ -7020,6 +7021,7 @@ namespace etl
|
||||
return etl::invoke(comp, etl::invoke(proj, b), etl::invoke(proj, a)) ? b : a;
|
||||
}
|
||||
|
||||
#if ETL_HAS_INITIALIZER_LIST
|
||||
template <class T, class Comp = ranges::less, class Proj = etl::identity>
|
||||
constexpr T operator()(std::initializer_list<T> r, Comp comp = {}, Proj proj = {}) const
|
||||
{
|
||||
@ -7036,6 +7038,7 @@ namespace etl
|
||||
}
|
||||
return *smallest;
|
||||
}
|
||||
#endif
|
||||
|
||||
template <class R, class Comp = ranges::less, class Proj = etl::identity, typename = etl::enable_if_t<etl::is_range_v<R>>>
|
||||
constexpr ranges::range_value_t<R> operator()(R&& r, Comp comp = {}, Proj proj = {}) const
|
||||
@ -7098,6 +7101,7 @@ namespace etl
|
||||
return etl::invoke(comp, etl::invoke(proj, a), etl::invoke(proj, b)) ? b : a;
|
||||
}
|
||||
|
||||
#if ETL_HAS_INITIALIZER_LIST
|
||||
template <class T, class Comp = ranges::less, class Proj = etl::identity>
|
||||
constexpr T operator()(std::initializer_list<T> r, Comp comp = {}, Proj proj = {}) const
|
||||
{
|
||||
@ -7114,6 +7118,7 @@ namespace etl
|
||||
}
|
||||
return *largest;
|
||||
}
|
||||
#endif
|
||||
|
||||
template <class R, class Comp = ranges::less, class Proj = etl::identity, typename = etl::enable_if_t<etl::is_range_v<R>>>
|
||||
constexpr ranges::range_value_t<R> operator()(R&& r, Comp comp = {}, Proj proj = {}) const
|
||||
@ -7180,6 +7185,7 @@ namespace etl
|
||||
return {a, b};
|
||||
}
|
||||
|
||||
#if ETL_HAS_INITIALIZER_LIST
|
||||
template <class T, class Comp = ranges::less, class Proj = etl::identity>
|
||||
constexpr ranges::minmax_result<T> operator()(std::initializer_list<T> r, Comp comp = {}, Proj proj = {}) const
|
||||
{
|
||||
@ -7202,6 +7208,7 @@ namespace etl
|
||||
}
|
||||
return {*smallest, *largest};
|
||||
}
|
||||
#endif
|
||||
|
||||
template <class R, class Comp = ranges::less, class Proj = etl::identity, typename = etl::enable_if_t<etl::is_range_v<R>>>
|
||||
constexpr ranges::minmax_result<ranges::range_value_t<R>> operator()(R&& r, Comp comp = {}, Proj proj = {}) const
|
||||
|
||||
@ -16495,6 +16495,7 @@ namespace
|
||||
CHECK_EQUAL(3, etl::ranges::min(-5, 3, etl::ranges::less{}, abs_proj));
|
||||
}
|
||||
|
||||
#if ETL_HAS_INITIALIZER_LIST
|
||||
//*************************************************************************
|
||||
TEST(ranges_min_initializer_list)
|
||||
{
|
||||
@ -16517,6 +16518,7 @@ namespace
|
||||
};
|
||||
CHECK_EQUAL(9, etl::ranges::min({3, 1, 4, 5, 9, 2, 6}, etl::ranges::less{}, negate));
|
||||
}
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
TEST(ranges_min_range)
|
||||
@ -16692,6 +16694,7 @@ namespace
|
||||
CHECK_EQUAL(-5, etl::ranges::max(-5, 3, etl::ranges::less{}, abs_proj));
|
||||
}
|
||||
|
||||
#if ETL_HAS_INITIALIZER_LIST
|
||||
//*************************************************************************
|
||||
TEST(ranges_max_initializer_list)
|
||||
{
|
||||
@ -16714,6 +16717,7 @@ namespace
|
||||
};
|
||||
CHECK_EQUAL(1, etl::ranges::max({3, 1, 4, 5, 9, 2, 6}, etl::ranges::less{}, negate));
|
||||
}
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
TEST(ranges_max_range)
|
||||
@ -16914,6 +16918,7 @@ namespace
|
||||
CHECK_EQUAL(-5, result2.max);
|
||||
}
|
||||
|
||||
#if ETL_HAS_INITIALIZER_LIST
|
||||
//*************************************************************************
|
||||
TEST(ranges_minmax_initializer_list)
|
||||
{
|
||||
@ -16945,6 +16950,7 @@ namespace
|
||||
CHECK_EQUAL(9, result.min);
|
||||
CHECK_EQUAL(1, result.max);
|
||||
}
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
TEST(ranges_minmax_range)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user