www.digitalmars.com         C & C++   DMDScript  

c++.stlsoft - auto_buffer template parameter changes

Bonjour tout le monde!

(Sorry, but it's Le Tour de France time again, and I'm a little bike 
crazy)

I'm now finally at the writing stage of my next book, Extended STL, 
and in working through various parts of STLSoft that are serving as 
exemplars for parts of the book, it's dawned on me that the design 
of auto_buffer is flawed, in so far as the internal array size 
should be the second template parameter, and the allocator should be 
the third parameter.

The current definition is:

    template< typename T
            , typename A
            , size_t N
            >
    class auto_buffer;

The desired definition is:

    template< typename T
            , size_t N
            , typename A
            >
    class auto_buffer;

I see several 'solutions' to this, and want to hear what you, as 
users, have to say on the matter:

1. Just swap them in STLSoft 1.9.1

2. Swap them in STLSoft 1.8.4, and support backwards compatibility 
via STLSOFT_AUTO_BUFFER_OLD_PARAM_LIST #define

3. Introduce auto_buffer2 with the desired template parameter list

In absence of overwhelming feedback, I'm going to assume that most 
STLSoft users either don't use auto_buffer directly, or are 
adaptable chaps (and chapesses), so I'll go with #2

Cheers

Matthew
Jul 06 2005