incubator-stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: 21.string.rfind.cpp test fail reason
Date Tue, 03 Jul 2007 04:01:41 GMT
Farid Zaripov wrote:
>> -----Original Message-----
>> From: Martin Sebor [mailto:msebor@gmail.com] On Behalf Of Martin Sebor
>> Sent: Friday, June 29, 2007 8:24 AM
>> To: stdcxx-dev@incubator.apache.org
>> Subject: Re: 21.string.rfind.cpp test fail reason
>>
>> Farid Zaripov wrote:
>>>   The problem in 21.string.rfind.cpp test is invoking 
>>> string::rfind(const value_type* ptr, size_type off = npos, size_type
>>> count)
>>> with count == string::max_size() + 1 (21.string.rfind.cpp lines 
>>> 413-416).
>>> The method throws length_error() exception (line 756 file 
>> string.cc) 
>>> but test not expected any exceptions.
>> The test should definitely be prepared to deal with 
>> exceptions, even if they are not required or allowed.
> 
>   The test deals with exceptions (the all exceptions are catched).
> I mean that concrete test line not expected any exception and
> issues rw_error() when length_error() catched.

I don't see any calls to rw_error() in 21.string.rfind.cpp but you
probably meant rw_assert(). rfind() is not required to and shouldn't
throw under any conditions. There's no efficient way for all the
overloads of rfind() to throw consistently under the same conditions
so it should just return npos instead. We need a Jira issue to track
this change.

Btw., library issue 625 highlights some of the problems in string
due to the inconsistent use of Effects and Returns clauses:
http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#625

Martin

Mime
View raw message