diff --git a/proxy.h b/proxy.h index 3186883..147398d 100644 --- a/proxy.h +++ b/proxy.h @@ -8,7 +8,6 @@ #include #include #include -#include #include #include #include @@ -52,6 +51,27 @@ template consteval bool is_consteval(Expr) { return requires { typename std::bool_constant<(Expr{}(), false)>; }; } +template +consteval bool is_tuple_like_well_formed() { + if constexpr (requires { { std::tuple_size::value } -> + std::same_as; }) { + if constexpr (is_consteval([] { return std::tuple_size::value; })) { + return [](std::index_sequence) { + return (requires { typename std::tuple_element_t; } && ...); + }(std::make_index_sequence>{}); + } + } + return false; +} + +template