Skip to content

D3128: Align algorithm specs with §16.3.2.4 canonical element ordering#125

Merged
pratzl merged 1 commit intomainfrom
sync_impl
Mar 17, 2026
Merged

D3128: Align algorithm specs with §16.3.2.4 canonical element ordering#125
pratzl merged 1 commit intomainfrom
sync_impl

Conversation

@pratzl
Copy link
Contributor

@pratzl pratzl commented Mar 17, 2026

  • Reorder all spec blocks to: Mandates → Preconditions → Hardened preconditions → Effects → Postconditions → Returns → Throws → Complexity → Remarks
  • Add missing Mandates sections for all algorithms with concept constraints (BFS, DFS, Topological Sort, Dijkstra, Bellman-Ford, find_negative_cycle, connected_components, afforest, kosaraju, MIS, Jaccard, Kruskal, inplace_kruskal, Prim)
  • Add Constant When for constexpr functions (Dijkstra, Bellman-Ford)
  • Add Postconditions for Dijkstra and Bellman-Ford (distances/predecessors)
  • Add Throws sections for BFS, DFS, Dijkstra, Bellman-Ford
  • Add [[nodiscard]] annotations to Returns (Bellman-Ford, Topological Sort, triangle_count, directed_triangle_count)
  • Add noexcept documentation for triangle_count, directed_triangle_count
  • Fix BFS visitor events: remove incorrect on_edge_relaxed/not_relaxed
  • Move compile-time concept constraints from Hardened preconditions to Mandates (inplace_kruskal permutable, Prim basic_edge_weight_function)
  • Define \constantwhen macro in P1709-preamble.tex

- Reorder all spec blocks to: Mandates → Preconditions → Hardened
  preconditions → Effects → Postconditions → Returns → Throws →
  Complexity → Remarks
- Add missing Mandates sections for all algorithms with concept
  constraints (BFS, DFS, Topological Sort, Dijkstra, Bellman-Ford,
  find_negative_cycle, connected_components, afforest, kosaraju, MIS,
  Jaccard, Kruskal, inplace_kruskal, Prim)
- Add Constant When for constexpr functions (Dijkstra, Bellman-Ford)
- Add Postconditions for Dijkstra and Bellman-Ford (distances/predecessors)
- Add Throws sections for BFS, DFS, Dijkstra, Bellman-Ford
- Add [[nodiscard]] annotations to Returns (Bellman-Ford, Topological
  Sort, triangle_count, directed_triangle_count)
- Add noexcept documentation for triangle_count, directed_triangle_count
- Fix BFS visitor events: remove incorrect on_edge_relaxed/not_relaxed
- Move compile-time concept constraints from Hardened preconditions to
  Mandates (inplace_kruskal permutable, Prim basic_edge_weight_function)
- Define \constantwhen macro in P1709-preamble.tex
@pratzl pratzl merged commit eef9fa1 into main Mar 17, 2026
1 check passed
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