template<typename T, typename... Args>
requires {
typename std::tuple_size<std::remove_cvref_t<T>>::type;
requires std::same_as<
std::remove_cvref_t<
decltype(std::tuple_size_v<std::remove_cvref_t<T>>)>,
std::size_t>;
} && sizeof...(Args) == std::tuple_size_v<std::remove_cvref_t<T>> &&
[]<std::size_t... I>(std::index_sequence<I...>) {
return (TupleElementGettable<T, I, Args> && ...);
}(std::make_index_sequence<std::tuple_size_v<std::remove_cvref_t<T>>>())