2090. Minor Overconstraint in Mutex Types

Section: 32.6.4.2 [thread.mutex.requirements.mutex] Status: NAD Submitter: Pete Becker Opened: 2011-10-17 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [thread.mutex.requirements.mutex].

View all issues with NAD status.

Discussion:

32.6.4.2 [thread.mutex.requirements.mutex]/6, fourth bullet requires the return type of m.lock() to be void.

This is over-constrained. The true requirement is that the standard library ignores any value that the function returns. Yes, allowing non-void return types means that users can't store a pointer to this member function. No, that's not the least bit important.

[See also the discussion following c++std-lib-31318]

[2012, Kona]

This does not specify a concept; it specifies requirements on the concrete mutex types.

Proposed resolution: