Skip to content

Vert patterns#19

Merged
pratzl merged 5 commits intomainfrom
vert_patterns
Apr 2, 2026
Merged

Vert patterns#19
pratzl merged 5 commits intomainfrom
vert_patterns

Conversation

@pratzl
Copy link
Copy Markdown
Collaborator

@pratzl pratzl commented Apr 2, 2026

No description provided.

pratzl added 5 commits April 1, 2026 19:28
- descriptor.hpp: update pair_value_vertex_pattern and
  whole_value_vertex_pattern concepts to use std::forward_iterator
  instead of std::bidirectional_iterator, enabling unordered_map/set
  support; update all associated comments
- vertex_descriptor.hpp: replace 'bidirectional' with 'forward' in
  all comments
- graph_cpo.hpp: update three comments referring to 'bidirectional
  containers' to say 'forward containers'
- vertex-patterns.md: fix iterator requirements in Inner Value
  Patterns table; add Foundation Concepts section; add
  vertex_pattern_type and vertex_id_type to Storage Detection Traits
  table; fix vertex_id() return type (auto → decltype(auto)); add
  vertex_descriptor and vertex_descriptor_view class references;
  fix namespace (adj_list::detail → adj_list)
- concepts.md: keyed_vertex_type description: Bidirectional → Forward
- archive/descriptor.md: replace bidirectional iterator spec with
  forward iterator for key-value vertex storage
- vertex_descriptor.hpp: add index_iterator (iota_view iterator) and
  index_vertex_descriptor type aliases for index-only graphs
- vertex_descriptor_view.hpp: add index_vertex_descriptor_view alias
- test_vertex_descriptor.cpp: add 6 tests covering type properties,
  default construction, hashing, view iteration, empty range, and
  non-zero start offset
…riptors

- descriptor.hpp: add index_only_vertex and container_backed_vertex
  concepts using C++20 iter_value_t/iter_reference_t traits;
  index-only iterators (like iota_view) return by value (non-reference),
  distinguishing them from container iterators over integral types
- vertex_descriptor.hpp: add requires clauses to all four
  inner_value/underlying_value overloads preventing use on index-only
  descriptors
- test_vertex_descriptor.cpp: add concept verification and
  container-backed descriptor positive tests
- Replace conditional_t<const/non-const, row_index_vector::iterator>
  with index_iterator in vertices(), vertices(g, pid), find_vertex(),
  and edges() friend functions
- Add 'using adj_list::index_iterator' to container namespace imports
- The const/non-const distinction is irrelevant for index-only
  descriptors that only store size_t
- index_iterator, index_vertex_descriptor, index_vertex_descriptor_view
- index_only_vertex, container_backed_vertex concepts
@pratzl pratzl merged commit 7b060e8 into main Apr 2, 2026
11 checks passed
@pratzl pratzl deleted the vert_patterns branch April 2, 2026 01:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant