|
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.
|
| Njh | |
| Nconcepts | Behavioral concept namespace of the JH Toolkit |
| Rclosable_container_for | Concept checking whether a container C can be directly constructed ("closed") from a range R |
| Rcollectable_container_for | Concept verifying that a container C can collect elements from a range R via incremental insertion |
| Ris_contiguous_reallocable | Concept that constrains types usable in contiguous, reallocating containers |
| Rhas_std_hash | Checks whether std::hash<T> is valid and callable |
| Rhas_adl_hash | Checks whether a free (ADL-discoverable) hash() function exists |
| Rhas_mbr_hash | Checks whether a type defines a hash() member function |
| Rextended_hashable | Concept for types that can be hashed through any supported mechanism |
| Rindirectly_readable | Concept for types that can be read indirectly via dereference |
| Rindirectly_writable | Concept for types that support indirect write operations through dereference |
| Ris_iterator | Concept for detecting iterator-like types based on behavior |
| Rsentinel_for | Concept for detecting sentinel-iterator compatibility |
| Rinput_iterator | Concept for readable, comparable single-pass iterators |
| Routput_iterator | Concept for writable single-pass iterators |
| Rforward_iterator | Concept for multi-pass, readable, and self-sentinel iterators |
| Rbidirectional_iterator | Concept for iterators supporting bidirectional traversal |
| Rrandom_access_iterator | Concept for iterators supporting random access operations |
| Rbasic_lockable | Concept for basic lockable objects |
| Rexcl_lockable | Concept for exclusive lockable objects supporting try semantics |
| Rtimed_excl_lockable | Concept for timed exclusive lockable objects |
| Rshared_lockable | Concept for shared (reader) lockable objects |
| Rtimed_shared_lockable | Concept for shared lockables supporting timed acquisition |
| Rmutex_like | General mutex-like concept |
| Rtimed_mutex_like | Timed variant of mutex_like |
| Rrw_mutex_like | Read-write (RW) mutex concept |
| Rrecursive_mutex | Concept for counting reentrant (recursive) mutexes |
| Rreentrant_mutex | Concept for idempotent (structurally reentrant) mutexes |
| Rreentrance_capable_mutex | Concept for any mutex supporting some form of reentrance |
| Rvis_function_for | Concept describing the visual relation between a range and a callable |
| Rsequence | Concept that checks whether a type provides at least const (non-destructive) iteration |
| Rtuple_like | Concept recognizing tuple-like types |
| Rpair_like_for | Checks whether a type P is a 2-element tuple-like whose element types exactly match K and V (after remove_cvref) |
| Nmeta | Aggregated entry point for compile-time metaprogramming utilities |
| Rany_char | Concept representing character-semantic 1-byte integral types |
| Rtransparent_key | Concept checking whether key conversion through key_traits<K> is valid |
| Rcheck_all | Compile-time predicate applied to all alternatives in a variant |
| Npod | Aggregated entry point for Plain-Old-Data and layout-stable value utilities |
| Rstd_uint | Internal constraint for native unsigned integer types |
| Rtrivial_bytes | Concept for trivially layout-compatible types (POD-compatible memory view) |
| Rpod_like | Concept for types that are safe to treat as plain old data (POD) |
| Rcv_free_pod_like | Concept for POD-like types that are free of const or volatile qualification |
| Rstreamable | Checks whether a type can be streamed to std::ostream |
| Rstreamable_pod | Debug-only constraint for POD-like types printable to std::ostream |
| Ntyped | Aggregated entry point for lightweight typing and semantic placeholder utilities |
| Rmonostate_t | Concept: satisfied only if T is monostate |
| Rimmutable_str_compatible | Concept for types compatible with jh::immutable_str |