July 07, 2005
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