1307. exception_ptr and allocator pointers don't understand !=

Section: 17.9.7 [propagation] Status: Resolved Submitter: Daniel Krügler Opened: 2010-01-26 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [propagation].

View all issues with Resolved status.

Discussion:

The current requirements for a conforming implementation of std::exception_ptr (17.9.7 [propagation]/1-6) does not clarify whether the expression

e1 != e2
e1 != nullptr

with e1 and e2 being two values of type std::exception_ptr are supported or not. Reason for this oddity is that the concept EqualityComparable does not provide operator !=.

For the same reason programmers working against the types X::pointer, X::const_pointer, X::void_pointer, and X::const_void_pointer of any allocator concept X (16.4.4.6 [allocator.requirements]/4 + Table 40) in a generic context can not rely on the availability of the != operation, which is rather unnatural and error-prone.

[ 2010 Pittsburgh: Moved to NAD Editorial. Rationale added below. ]

Rationale:

Solved by N3073.

Proposed resolution: