cplusplus / cplusplus/draft

[deque.modifiers][vector.modifiers] unclear "assignment operator"

Open
#3,208 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

lwg
Dominant language
TeX
Stars
221
Forks
813
Avg merge
16h 4m
Merged PRs (30d)
36

Description

N4830

[deque.modifiers]
5 Complexity: The number of calls to the destructor of T is the same as the number of elements erased, but the number of calls to the assignment operator of T is no more than the lesser of the number of elements before the erased elements and the number of elements after the erased elements.
6 Throws: Nothing unless an exception is thrown by the assignment operator of T.

[vector.modifiers]
4 Complexity: The destructor of T is called the number of times equal to the number of the elements erased, but the assignment operator of T is called the number of times equal to the number of elements in the vector after the erased elements.
5 Throws: Nothing unless an exception is thrown by the assignment operator or move assignment operator of T.

Given the similar intention of these subclauses, the wording should be more consistent. In particular, it is a bit unclear to me that:

  • What is "the assignment operator" in these contexts? Should it be explicit that such an assignment operator requires some specific forms of arguments (e.g. rvalues of type T)?
  • What does "the assignment operator or move assignment operator of T" exactly mean?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with N4830 sections [deque.modifiers] and [vector.modifiers], comparing the quoted complexity and exception wording. Determine what forms of assignment are intended and how the two subclauses should describe them consistently; done means the terminology and requirements are unambiguous in both sections.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.