751. change pass-by-reference members of vector<bool> to pass-by-value?

Section: 26.3.12 [vector.bool] Status: NAD Submitter: Alisdair Meredith Opened: 2007-10-10 Last modified: 2016-02-10

Priority: Not Prioritized

View all other issues in [vector.bool].

View all issues with NAD status.


A number of vector<bool> members take const bool& as arguments. Is there any chance we could change them to pass-by-value or would I be wasting everyone's time if wrote up an issue?

[ post Bellevue: ]

As we understand it, the original requester (Martin Sebor) would like for implementations to be permitted to pass-by-value. Alisdair suggests that if this is to be resolved, it should be resolved more generally, e.g. in other containers as well.

We note that this would break ABI. However, we also suspect that this might be covered under the "as-if" rule in section 1.9.

Many in the group feel that for vector<bool>, this is a "don't care", and that at this point in the process it's not worth the bandwidth.

Issue 679 -- which was in ready status pre-Bellevue and is now in the working paper -- is related to this, though not a duplicate.

Moving to Open with a task for Alisdair to craft a informative note to be put whereever appropriate in the WP. This note would clarify places where pass-by-const-ref can be transformed to pass-by-value under the as-if rule.

[ San Francisco: ]

This is really a clause 17 issue, rather than something specific to vector<bool>.

Move to Open. Alisdair to provide a resolution. Alternately, Howard can close this as NAD and then open a new issue to handle the general issue (rather than the vector<bool> one).

Howard: Haven't yet opened new issue. Lacking wording for it.

[ 2009-07 Frankfurt: ]

NAD. Insufficient motivation to make any changes.

Proposed resolution: