Section: 28.6.8.3 [re.submatch.op] Status: CD1 Submitter: Nozomu Katoo Opened: 2007-05-27 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [re.submatch.op].
View all issues with CD1 status.
Discussion:
In 28.6.8.3 [re.submatch.op] of N2284, operator functions numbered 31-42 seem impossible to compare. E.g.:
template <class BiIter> bool operator==(typename iterator_traits<BiIter>::value_type const& lhs, const sub_match<BiIter>& rhs);-31- Returns:
lhs == rhs.str()
.
When char*
is used as BiIter
, iterator_traits<BiIter>::value_type
would be
char
, so that lhs == rhs.str()
ends up comparing a char
value and an object
of std::basic_string<char>
. However, the behaviour of comparison between
these two types is not defined in 27.4.4 [string.nonmembers] of N2284.
This applies when wchar_t*
is used as BiIter
.
Proposed resolution:
Adopt the proposed resolution in N2409.
[ Kona (2007): The LWG adopted the proposed resolution of N2409 for this issue. The LWG voted to accelerate this issue to Ready status to be voted into the WP at Kona. ]