From 0c51825033a047bde502950b63f29a104add3109 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 28 Jul 2024 23:33:47 +0200 Subject: [PATCH] rename all_eq_to to all_equal and added version for ranges --- test/common_helper/test.hpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/test/common_helper/test.hpp b/test/common_helper/test.hpp index c6d549b..7c10bfd 100644 --- a/test/common_helper/test.hpp +++ b/test/common_helper/test.hpp @@ -40,16 +40,27 @@ concept StringLike = std::is_convertible_v; template concept not_base_type_same_as = !std::is_same_v, std::remove_cvref_t>; +template +constexpr bool all_equal_to(R r, T t) { + auto rt = std::ranges::views::repeat(std::string_view(t), std::ranges::size(r)); + return std::ranges::equal(r, rt); +} + +template +constexpr bool all_equal_to(R r, T t) { + auto rt = std::ranges::views::repeat(t, std::ranges::size(r)); + return std::ranges::equal(r, rt); +} template S, StringLike T> -constexpr bool all_eq_to(I first, S last, T t) { +constexpr bool all_equal_to(I first, S last, T t) { auto r1 = std::ranges::subrange(first, last); auto r2 = std::ranges::views::repeat(std::string_view(t), std::ranges::distance(first, last)); return std::ranges::equal(r1, r2); } template S, typename T> -constexpr bool all_eq_to(I first, S last, T t) { +constexpr bool all_equal_to(I first, S last, T t) { auto r1 = std::ranges::subrange(first, last); auto r2 = std::ranges::views::repeat(t, std::ranges::distance(first, last)); return std::ranges::equal(r1, r2); @@ -534,12 +545,12 @@ constexpr auto _repeat_for_types_n(auto f) { } static_assert(true, "") #define CREATE_FROM_IL(type, il, len) \ -([](std::initializer_list args) { \ +([](std::initializer_list args) { \ auto creator = [&args] (std::index_sequence<_idx...>) { \ return type { (*std::next(std::begin(args), _idx))... }; \ }; \ - return creator(std::make_index_sequence()); \ -}).operator()(il) + return creator(std::make_index_sequence<_N>()); \ +}).template operator()(il) #define OPERATOR_EQ_IL(obj, il, len) \ ([&](std::initializer_list args) { \