diff --git a/unit_tests/algorithm.cpp b/unit_tests/algorithm.cpp index 64ca9398555682c0fb21db66a289bf10ccb4d26d..2c4e6954a1c6c060b07a5c5750a860044c8efcff 100644 --- a/unit_tests/algorithm.cpp +++ b/unit_tests/algorithm.cpp @@ -3,6 +3,7 @@ #include <numeric> #include "simple/support/algorithm.hpp" + using namespace simple::support; void MultidimentionalIteration() @@ -196,12 +197,34 @@ constexpr bool Constexprness() return true; } +namespace adl_range_test +{ + struct segment + { + int* start; + int size; + }; + int* begin(const segment& x) { return x.start; } + int* end(const segment& x) { return x.start + x.size; } +} + +template <typename T> class show; +void TypeTraits() +{ + static_assert(is_range_v<int(&)[2]>); + static_assert(!is_range_v<int[2]>); + static_assert(is_range_v<std::array<int,2>>); + static_assert(is_range_v<std::array<int,2>&>); + static_assert(is_range_v<adl_range_test::segment>); +} + int main() { MultidimentionalIteration(); ContainerAsNumber(); IteratorRange(); Variance(); + TypeTraits(); static_assert(Constexprness()); return 0; }