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
range_traits.h File Reference

Generic range-related conceptual utilities and traits. More...

#include <iterator>
#include <ranges>
#include <functional>
#include <type_traits>

Go to the source code of this file.

Classes

struct  jh::concepts::range_storage_traits< R, UseRefWrapper >
 Trait defining how a range (or equivalent) is held inside a view or wrapper. More...

Namespaces

namespace  jh::concepts
 Behavioral concept namespace of the JH Toolkit.

Concepts

concept  jh::concepts::vis_function_for
 Concept describing the visual relation between a range and a callable.

Detailed Description

Generic range-related conceptual utilities and traits.

Author
JeongHan-Bae <mastropseudo@gmail.com>

This header serves as the general conceptual aggregation layer for range-related constructs that are not tied to any specific subdomain such as views, containers, or sequences.

Concepts and traits defined here represent foundational or cross-cutting abstractions used throughout the JH range system, especially for:

  • adaptor and visitor validation,
  • unified value category forwarding,
  • internal range storage policy deduction.

Included Components

  • vis_function_for<F, R> โ€” validates a range-callable pair for visual traversal semantics.
  • range_storage_traits<R, UseRefWrapper> โ€” defines how a range is held inside wrapper-based views.

Purpose

jh::concepts::range_traits defines cross-sectional utilities required by other modules such as jh::ranges_ext and jh::views, consolidating range-level mechanics that do not belong to a dedicated conceptual category.

Design Policy

  • Acts as the conceptual catch-all for range-adjacent utilities.
  • Maintains semantic separation from specific layers like sequence or iterator.
  • Defines traits and concepts reusable across range adaptors, transformation views, and range storage logic.
Version
1.3.x
Date
2025