JH-Toolkit v1.4.1
An engineering-oriented C++20 toolkit with duck-typed concepts, static design, async coroutines, and semantic containers — header-only, RTTI-free, and concurrency-friendly.
Loading...
Searching...
No Matches
jh::concepts::tuple_like Concept Reference

Concept recognizing tuple-like types. More...

#include <jh/conceptual/tuple_like.h>

Concept definition

template<typename T>
concept tuple_like =
requires { typename std::tuple_size<std::remove_cvref_t<T>>::type; } &&
detail::tuple_like_impl<std::remove_cvref_t<T>>(
std::make_index_sequence<
std::tuple_size_v<std::remove_cvref_t<T>>
>{})
Concept recognizing tuple-like types.
Definition tuple_like.h:142

Detailed Description

Concept recognizing tuple-like types.

A type T satisfies tuple_like if it provides a valid std::tuple_size<T> specialization and all element indices satisfy tuple_element_compatible<T, I>.

This allows full recognition of both standard tuple-like types and proxy-based tuple aggregates that register common_reference_t for element interoperability.

Examples: