stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anton Pevtsov <ant...@moscow.vdiweb.com>
Subject Re: Re: test for lig.alg.swap
Date Wed, 18 Jan 2006 16:41:16 GMT
Martin Sebor wrote:

>> Thanks! Your idea of reducing code duplication is neat. Unfortunately,
>  
>
there is a problem with it that prevents us from taking advantage of
it in its current form: the library is designed to handle compilers that
do not provide support or fully implement member templates (the
configuration macro _RWSTD_NO_MEMBER_TEMPLATES). Thus the testsuite
cannot assume that member templates are supported.
[...]

>> in a new simple forwarding function called from the first overload of
>  
>
test_swap() should do, don't you think?

Great idea! Thank you!
The attach contains the updated test version.


With best wishes,
Anton Pevtsov


-----Original Message-----
From: Martin Sebor [mailto:sebor@roguewave.com] 
Sent: Wednesday, January 18, 2006 05:00
To: stdcxx-dev@incubator.apache.org
Subject: Re: test for lig.alg.swap


Anton Pevtsov wrote:

>> The attached file contains my attempt to update lib.alg.swap tests and
>  
>

>> port them to new test driver.
>  
>

Thanks! Your idea of reducing code duplication is neat. Unfortunately,
there is a problem with it that prevents us from taking advantage of it
in its current form: the library is designed to handle compilers that do
not provide support or fully implement member templates (the
configuration macro _RWSTD_NO_MEMBER_TEMPLATES). Thus the testsuite
cannot assume that member templates are supported.

[...]


>> // classes used to exercise swap functions and to reduce code lines 
>> struct TestIterSwap {
>>     TestIterSwap (int dummy) : dummy_(dummy) {}
>> 
>>     template <class T, class ForwardIterator1, class ForwardIterator2>
>>     void test_swap (ForwardIterator1 it1, ForwardIterator2 it2, const 
>> T* )
>  
>

This is the problem. But I think we should be able to deal with it quite
easily. We don't need member templates to avoid code duplication
-- a simple

     if (test_swap_ranges)
         test_swap_ranges (it1, it2, (T*)0);
     else
         test_iter_swap (it1, it2, (T*)0, true);

in a new simple forwarding function called from the first overload of
test_swap() should do, don't you think?

Martin


Mime
View raw message