Restore formal wording for protocol and protocol_view#77
Draft
Restore formal wording for protocol and protocol_view#77
protocol and protocol_view#77Conversation
Agent-Logs-Url: https://github.com/jbcoe/cc-protocol/sessions/7a9eb017-9319-43bb-88dd-83cd064614dc Co-authored-by: jbcoe <777363+jbcoe@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Restore formal wording for protocol and protocol_view
Restore formal wording for Apr 19, 2026
protocol and protocol_view
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Technical Specifications section was removed from
DRAFT.mdin a prior cleanup commit. This restores it, updated to match the constructor signatures added since that removal.Restored sections
<version>macro and<protocol>namespace synopsis includingpmraliasesprotocol[X.Y] — general requirements (valueless state, conformance, allocator constraints), full class synopsis, and per-constructor formal wording (Constraints / Effects) for all 22 constructor paragraphs, plus destruction, copy/move assignment, observers, swap, and member accessprotocol_view[X.Z] — general requirements, synopses for bothprotocol_view<I>andprotocol_view<const I>, constructors, assignment, and member accessNew formal wording (not in the removed section)
Constructors added since the section was dropped now have full specification:
template<class U> protocol(U&&)— construction from any conforming value, with allocator-extended varianttemplate<class T, class J, class...> protocol(in_place_type_t<T>, initializer_list<J>, ...)— in-place withinitializer_list, with allocator-extended variantprotocol_view<const I>(const T&&,const protocol<I,A>&&)Fixes to pre-existing errors in the original text
6.4in move-assignment effects — renumbered to6.4/6.5/6.6protocol.swap—get_allocator() == other.get_allocator()was split incorrectly across two lines