Skip to content

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

@FrankHB

Description

@FrankHB

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    lwgIssue must be reviewed by LWG.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions