Hi everyone
[First, apologies to any D folks who do not use, and aren't interested in,
C++/STL/STLSoft. It's just that there are so many good ideas in there, that
I wanted to snag any that might be transferable over to STLSoft.]
STLSoft v1.7.1 will be released within the next 4-6 weeks, and it's the last
chance for getting in any feature requests. Available now from the STLSoft
main site - http://stlsoft.org/ - is STLSoft v1.7.1 beta 3
(stlsoft_1_7_1_beta3.zip), containing much of what will constitute the final
1.7.1 release.
To whet your appetite, I'm including a list of additions and a list of
changes to the libraries at the end of this post. Many of these appear in my
book "Imperfect C++" which will be out later in the year.
As yet, the documentation has not had any new work. I'd *really* appreciate
any suggestions for improvements for the documentation, as I know it's the
Achilles' Heel of the project. From the feedback I've had, this is the only
area of the libraries that is putting people off from using them more. If
anyone wants to volunteer to help out on this, it'd be fantastic. (Sounds of
thousands of people taking a step back ...)
Thanks for listening. Please feel free to post any questions via the FAQ
website (http://stlsoft.gregpeet.com/).
Cheers (changes & additions follow below:)
Matthew Wilson
Director, Synesis Software
(www.synesis.com.au)
STLSoft moderator
(http://www.stlsoft.org)
Contributing editor, C/C++ Users Journal
(www.synesis.com.au/articles.html#columns)
-----------------------------------------------------
ADDITIONS
==========
The additions to the libraries are as follows:
General
Many of the standard-offending symbols with leading underscores have
been changed. I intend to do the rest before the final release
Compilers
Intel 8.0
CodePlay VectorC 2.06
Comeau 4.3.3. (not quite complete yet, though ;))
GCC v3+ now supported for COMSTL
STLSoft (v1.6.5 => 1.7.1)
array_proxy template class - type-safe & size-safe aid for passing
arrays of object types to functions. Controls passing of derived arrays in a
safe manner
explicit_cast template class - implements explicit conversion operators
fast_string_concatenator template class - a helper class for
implementing fast, non-intrusive, string concatenation (Featured in
Imperfect C++, and in the article "Fast, Non-Intrusive String Concatenation"
in April's CUJ)
basic_fixed_substring template class - provides a non-resizable "view"
onto a part of an existing string, useful for high efficiency string
manipulation
literal_cast template class - used to provide type-to-range validation
of literal constants
Meta Programming Constructs - including is_pointer_type<>,
is_array_type<>, is_convertible_to_bool<>, is_numeric_type<>,
is_integral_type<>, is_bool_type<>, is_void_type<>, is_fundamental_type<>,
is_compound_type<>, is_class_type<>, is_const<>, is_volatile<>, (void-able)
size_of<>, is_same_type<>, has_value_type<>, has_iterator<>,
has_const_iterator<>
pod_vector template class - highly efficient vector for POD types (only)
proxy_sequence template class - highly efficient pseudo-sequence, for
layering on top of arrays with providing parameterisable value_type.
Size Traits - providing type-definitions of signed and unsigned types of
a corresponding bit-size
Type Traits - for a given type: providing is_pointer, is_reference,
is_const and is_volatile attributes; defining two pointer/reference-stripped
types: the base_type (non-cv-qualified) and cv_type (cv-qualifiers retained)
unused_return_value_monitor template class - used for detecting when a
potentially expensive return value is not used; ideal for post-increment
operators; has parameterisable "failure" policy
stlsoft.h: STLSOFT_DECLARE_TEMPLATE_PARAM_AS_FRIEND(),
STLSOFT_SUPPRESS_UNUSED()
ATLSTL (v1.2.8 => 1.3.1)
ccombstr_veneer template adaptor class - makes CComBSTR conformant
to the STL String concept
SupportErrorInfoImpl / SupportErrorInfoImpl2 / SupportErrorInfoImpl3
template classes - simple ATL template that provides ISupportErrorInfo
implementation
COMSTL (v1.2.5 => 1.4.1)
collection_sequence template class - maps COM Collections to STL-like
sequence
set_error_info() function - sets the calling thread's error-info for a
given description string
interface_ptr template class - smart-enough interface pointer class
MFCSTL (v1.3.4 => 1.3.5)
no additions
UNIXSTL (v1.0.3 => 1.1.1)
basic_current_directory template class - provides access to current
directory in string form
basic_environment_variable template class - provides access to a given
environment value in string form
compare_path template function object - compares file-system paths via
fully-qualified path form
process_mutex class
spin_mutex class
thread_mutex class
WinSTL (v1.3.7 => 1.4.1)
acl_sequence class - provides STL-like sequence semantics over Access
Control Lists
Atomic Functions - a suite of functions that provide optimal performance
for single-processor/SMP/mixed Intel processors using inline assembler
clipboard_format_sequence class - provides STL-like sequence semantics
over the system's supported clipboard formats
basic_error_desc template class - provides access to the string form of
a given Win32 Error Code
last_error_scope - provides scoping of last error code, for maintaining
correct state when doing intermediate error processing
event class - a thin wrapper for the Win32 event kernel synchronisation
kernel object
listview_sequence class - provides STL-like sequence semantics over the
items in a ListView common control
basic_module_directory template class - provides access to a given (or
the calling process's) module's directory
process_mutex class
setcursor_scope class - provides scoping of the cursor
setfocus_scope class - provides scoping of the window with the focus
Time Functions - functions to convert between time_t and FILETIME
token_information template class - type-safe, resource-managed accessor
class to token information (via GetTokenInformation())
window_text_scope template class - provides scoping of a window's text
CHANGES
========
The changes to the libraries are as follows:
STLSoft (v1.6.5 => 1.7.1)
auto_buffer - it's now resizable, without any loss of efficiency. This
supports the new pod_vector template class
minor rationalisations to char_traits
Renaming of constraits: has_base => must_have_base, is_veneer =>
must_be_same_size, type_is_non_class_or_trivial_class => must_be_pod
fixed_array_d1/2d/3d/4d template classes - improved efficiency, by using
an additional template parameter to determine, at compile-time, whether
slices "own" their memory; previously this was achieved at runtme by a
member variable
frame_array_1d/2d/3d/4d renamed to static_array_1d/2d/3d/4d
frame_string: bug fixes
sign_traits: bug fixes; addition of "bytes" member value
simple_string: bug fixes; improvements in performance
ATLSTL (v1.2.8 => 1.3.1)
COMSTL (v1.2.5 => 1.4.1)
simplification of interface_cast; addition of interface_cast_test
enum_sequence - this has simplified, and now only has three non-default
parameters for the template
MFCSTL (v1.3.4 => 1.3.5)
minor enhancements to cstring_veneer
UNIXSTL (v1.0.3 => 1.1.1)
findfile_sequence renamed to glob_sequence (findfile_sequence is
retained for backwards compatibility)
tls_index renamed to tss_index (tls_index is retained for backwards
compatibility)
filesystem_traits: lots of new features
readdir_sequence: now supports flags "includeDots", "directories" and
"files"
WinSTL (v1.3.7 => 1.4.1)
ansi2Unicode & unicode2Ansi templates now have a second ctor which takes
a length
filesystem_traits: addition of file_exists() method
findfile_sequence now correctly implements InputIterator semantics, and
works correctly when iterators incremented in both prefix and postfix forms
findvolume_sequence: same as for findfile_sequence
performance_counter_init renamed to performance_counter_initialiser

Have you thought about doing a listbox or combobox sequence which
includesItemData? (CListBox::SetItemData[Ptr])
Maybe defining the iterator as a pair<string,DWORD> or pair<string,T*>
Just an idea... I use these a lot, that's why I'm asking...

That's a nice idea. Let me have a think. :)
btw, are you on the mailing list - http://stlsoft.org/mailing_list.html ?
"Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:c1grq9$2c7f$1 digitaldaemon.com...

Have you thought about doing a listbox or combobox sequence which
includesItemData? (CListBox::SetItemData[Ptr])
Maybe defining the iterator as a pair<string,DWORD> or pair<string,T*>
Just an idea... I use these a lot, that's why I'm asking...

Great!
FYI, I'm pretty happy with the libs so far, but it's been six months since
the last major release - 1.6.5. I've been promising 1.7.1 for some time,
hence the betas available on the downloads page
(http://stlsoft.org/downloads.html) - but we're still a little way off, due
to my having too many commitments at the moment. The stuff available in the
latest beta is largely what will appear, although there are several things
yet to do, including your item-data enumeration. :)
The main area of weakness at the moment is the documentation, which is
pretty pants, if I'm honest. I'd be very happy to receive any criticisms -
however negative they might be - or suggestions for improvement you might
have on this.
Also, I'm hoping to have a little Users' List on the site, so if you (or
anyone else) use
STLSoft and want to be mentioned, I'd be happy to hear how/where so I can
post it.
Cheers
--
Matthew Wilson
Director, Synesis Software
(www.synesis.com.au)
STLSoft moderator
(http://www.stlsoft.org)
Contributing editor, C/C++ Users Journal
(www.synesis.com.au/articles.html#columns)
-----------------------------------------------------
"Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:c1iu9o$2vdt$1 digitaldaemon.com...

I wasn't, but I'll sign up, see what you've got to offer...
"Matthew" <matthew.hat stlsoft.dot.org> wrote in message
news:c1h546$2scu$1 digitaldaemon.com...

Great!
FYI, I'm pretty happy with the libs so far, but it's been six months since
the last major release - 1.6.5. I've been promising 1.7.1 for some time,
hence the betas available on the downloads page
(http://stlsoft.org/downloads.html) - but we're still a little way off,

to my having too many commitments at the moment. The stuff available in

latest beta is largely what will appear, although there are several things
yet to do, including your item-data enumeration. :)

Thanks,
I've been following the C++ and D newsgroups for a while now, so, I'm kinda
up to date with your current activities.
BTW good luck with your book...

The main area of weakness at the moment is the documentation, which is
pretty pants, if I'm honest. I'd be very happy to receive any criticisms -
however negative they might be - or suggestions for improvement you might
have on this.

That's right, the docs kinda s**k, but, I figure it's because you're trying
to use a "common" documentation layout, with a library that's not quite that
common... I mean, when something's documented, you usually have no more than
a few overloads for the same name, while in the case of shims you've got the
same name all over the place, well, that's what I think anyway...
Also, every typedef is documented (i.e. xxx_a, xxx_w and plain xxx), you
could go the way that the Windows PSDK does, and just document once and
state somewhere that everything has a '_a' and '_w' variant

Also, I'm hoping to have a little Users' List on the site, so if you (or
anyone else) use
STLSoft and want to be mentioned, I'd be happy to hear how/where so I can
post it.

Fine by me... only, I don't think I qualify as a user yet (since I've just
yesterday started using the libraries, and just a couple of items so far)...
Actually, I did download the library (back on version 1.6.3) but was kinda
put off by both the docs, and the fact that what I was most interested in
(the item data stuff) wasn't in it... and I didn't get around to commeting
on it back then...

Great!
FYI, I'm pretty happy with the libs so far, but it's been six months

the last major release - 1.6.5. I've been promising 1.7.1 for some time,
hence the betas available on the downloads page
(http://stlsoft.org/downloads.html) - but we're still a little way off,

to my having too many commitments at the moment. The stuff available in

latest beta is largely what will appear, although there are several

yet to do, including your item-data enumeration. :)

Thanks,
I've been following the C++ and D newsgroups for a while now, so, I'm

up to date with your current activities.
BTW good luck with your book...

The main area of weakness at the moment is the documentation, which is
pretty pants, if I'm honest. I'd be very happy to receive any

however negative they might be - or suggestions for improvement you

have on this.

That's right, the docs kinda s**k, but, I figure it's because you're

to use a "common" documentation layout, with a library that's not quite

common... I mean, when something's documented, you usually have no more

a few overloads for the same name, while in the case of shims you've got

same name all over the place, well, that's what I think anyway...

Yep. It's a big problem. I'm going to have to spend a lot of time making it
better, I think. :-(

Also, every typedef is documented (i.e. xxx_a, xxx_w and plain xxx), you
could go the way that the Windows PSDK does, and just document once and
state somewhere that everything has a '_a' and '_w' variant

Also, I'm hoping to have a little Users' List on the site, so if you (or
anyone else) use
STLSoft and want to be mentioned, I'd be happy to hear how/where so I

post it.

Fine by me... only, I don't think I qualify as a user yet (since I've just
yesterday started using the libraries, and just a couple of items so

Actually, I did download the library (back on version 1.6.3) but was kinda
put off by both the docs, and the fact that what I was most interested in
(the item data stuff) wasn't in it... and I didn't get around to commeting
on it back then...

Understood. That's clear evidence that the docs need the attention.
Thanks for the feedback. Maybe when I do the new item-data classes, you can
give me detailed feedback on the docs, and then I can take that and apply it
elsewhere.
Cheers
Matthew

Just my opinion , but I really don't like doxygen, I like the idea of =
self-documenting code but all the docs I read created by Doxygen are jus=
t =
really hard to read, and especially to navigate. Some more examples wou=
ld =
be good also ;).
C
On Thu, 26 Feb 2004 13:30:03 +1100, Matthew <matthew.hat stlsoft.dot.org=

"C" <dont respond.com> wrote in message news:opr37vhqidehmtou localhost...
Just my opinion , but I really don't like doxygen, I like the idea of
self-documenting code but all the docs I read created by Doxygen are just
really hard to read, and especially to navigate.

Do you have a better suggestion? I'm always open to new things.
One thing I should think about doing is tailoring the styles and all that
stuff, but it's a time thing ...

Thanks,
I've been following the C++ and D newsgroups for a while now, so, I'm

up to date with your current activities.
BTW good luck with your book...

The main area of weakness at the moment is the documentation, which

pretty pants, if I'm honest. I'd be very happy to receive any

however negative they might be - or suggestions for improvement you

have on this.

That's right, the docs kinda s**k, but, I figure it's because you're

to use a "common" documentation layout, with a library that's not quite

common... I mean, when something's documented, you usually have no more

a few overloads for the same name, while in the case of shims you've

the

same name all over the place, well, that's what I think anyway...

Yep. It's a big problem. I'm going to have to spend a lot of time making
it
better, I think. :-(

Also, every typedef is documented (i.e. xxx_a, xxx_w and plain xxx),

could go the way that the Windows PSDK does, and just document once and
state somewhere that everything has a '_a' and '_w' variant

Also, I'm hoping to have a little Users' List on the site, so if you

anyone else) use
STLSoft and want to be mentioned, I'd be happy to hear how/where so I

post it.

Fine by me... only, I don't think I qualify as a user yet (since I've
just
yesterday started using the libraries, and just a couple of items so

Actually, I did download the library (back on version 1.6.3) but was
kinda
put off by both the docs, and the fact that what I was most interested
in
(the item data stuff) wasn't in it... and I didn't get around to
commeting
on it back then...

Understood. That's clear evidence that the docs need the attention.
Thanks for the feedback. Maybe when I do the new item-data classes, you
can
give me detailed feedback on the docs, and then I can take that and
apply it
elsewhere.
Cheers
Matthew

What about just the .chm approach ? It is very time consuming though , =
and the free help tools out there leave alot to be desired
http://www.accviz.com/?src=3Dhm
Is an OK tool , has .chm plus HTML online browsable stuff.
C
On Tue, 2 Mar 2004 14:07:23 +1100, Matthew <matthew.hat stlsoft.dot.org>=
=
wrote:

"C" <dont respond.com> wrote in message =

news:opr37vhqidehmtou localhost...
Just my opinion , but I really don't like doxygen, I like the idea of=

self-documenting code but all the docs I read created by Doxygen are =

just
really hard to read, and especially to navigate.

Do you have a better suggestion? I'm always open to new things.
One thing I should think about doing is tailoring the styles and all t=

I already do use chm, as part of the Doxygen preparation, available in a
separate zip from http://stlsoft.org/downloads.html.
I guess this may not be precisely what you want, but there's no way I'm ever
going to have the time to devote to preparing all the help files manually.
There's only me, you know! ;)
Matthew
"C" <dont respond.com> wrote in message news:opr375xfneehmtou localhost...
What about just the .chm approach ? It is very time consuming though ,
and the free help tools out there leave alot to be desired
http://www.accviz.com/?src=hm
Is an OK tool , has .chm plus HTML online browsable stuff.
C
On Tue, 2 Mar 2004 14:07:23 +1100, Matthew <matthew.hat stlsoft.dot.org>
wrote:

"C" <dont respond.com> wrote in message
news:opr37vhqidehmtou localhost...
Just my opinion , but I really don't like doxygen, I like the idea of
self-documenting code but all the docs I read created by Doxygen are
just
really hard to read, and especially to navigate.

Do you have a better suggestion? I'm always open to new things.
One thing I should think about doing is tailoring the styles and all that
stuff, but it's a time thing ...

I already do use chm, as part of the Doxygen preparation, available in a
separate zip from http://stlsoft.org/downloads.html.
I guess this may not be precisely what you want, but there's no way I'm
ever
going to have the time to devote to preparing all the help files
manually.
There's only me, you know! ;)

I've just started playing with the clipboard, and thought of an idea you
might be interested in: RAII classes for the clipboard
(OpenClipboard/CloseClipboard pair) and HGLOBAL locking
(GlobalLock/GlobalUnlock pair, maybe something like hg_lock<T>(HGLOBAL hg) )

I've just started playing with the clipboard, and thought of an idea you
might be interested in: RAII classes for the clipboard
(OpenClipboard/CloseClipboard pair) and HGLOBAL locking
(GlobalLock/GlobalUnlock pair, maybe something like hg_lock<T>(HGLOBAL

Sure. Great!
Send 'em in. I'll take a look at them, and probably do another beta next
week. (I expect to release 1.7.1 before the end of this month.)
I'll send you any changes in private before we agree to incorporate them
into the libraries.
:)
Cheers
Matthew
"Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:c28o0n$2bqr$1 digitaldaemon.com...

I just finished writing both, let me know if you're interested

I've just started playing with the clipboard, and thought of an idea you
might be interested in: RAII classes for the clipboard
(OpenClipboard/CloseClipboard pair) and HGLOBAL locking
(GlobalLock/GlobalUnlock pair, maybe something like hg_lock<T>(HGLOBAL

Sure. Great!
Send 'em in. I'll take a look at them, and probably do another beta next
week. (I expect to release 1.7.1 before the end of this month.)
I'll send you any changes in private before we agree to incorporate them
into the libraries.
:)
Cheers
Matthew

If anyone would be interested in putting there C++, STL, Unix and Kernel skills
to use in return for £75k package then please call Charlie on 01273 200300 to
find out more.
In article <c01k16$8sf$1 digitaldaemon.com>, Matthew says...

Hi everyone
[First, apologies to any D folks who do not use, and aren't interested in,
C++/STL/STLSoft. It's just that there are so many good ideas in there, that
I wanted to snag any that might be transferable over to STLSoft.]
STLSoft v1.7.1 will be released within the next 4-6 weeks, and it's the last
chance for getting in any feature requests. Available now from the STLSoft
main site - http://stlsoft.org/ - is STLSoft v1.7.1 beta 3
(stlsoft_1_7_1_beta3.zip), containing much of what will constitute the final
1.7.1 release.
To whet your appetite, I'm including a list of additions and a list of
changes to the libraries at the end of this post. Many of these appear in my
book "Imperfect C++" which will be out later in the year.
As yet, the documentation has not had any new work. I'd *really* appreciate
any suggestions for improvements for the documentation, as I know it's the
Achilles' Heel of the project. From the feedback I've had, this is the only
area of the libraries that is putting people off from using them more. If
anyone wants to volunteer to help out on this, it'd be fantastic. (Sounds of
thousands of people taking a step back ...)
Thanks for listening. Please feel free to post any questions via the FAQ
website (http://stlsoft.gregpeet.com/).
Cheers (changes & additions follow below:)
Matthew Wilson
Director, Synesis Software
(www.synesis.com.au)
STLSoft moderator
(http://www.stlsoft.org)
Contributing editor, C/C++ Users Journal
(www.synesis.com.au/articles.html#columns)
-----------------------------------------------------
ADDITIONS
==========
The additions to the libraries are as follows:
General
Many of the standard-offending symbols with leading underscores have
been changed. I intend to do the rest before the final release
Compilers
Intel 8.0
CodePlay VectorC 2.06
Comeau 4.3.3. (not quite complete yet, though ;))
GCC v3+ now supported for COMSTL
STLSoft (v1.6.5 => 1.7.1)
array_proxy template class - type-safe & size-safe aid for passing
arrays of object types to functions. Controls passing of derived arrays in a
safe manner
explicit_cast template class - implements explicit conversion operators
fast_string_concatenator template class - a helper class for
implementing fast, non-intrusive, string concatenation (Featured in
Imperfect C++, and in the article "Fast, Non-Intrusive String Concatenation"
in April's CUJ)
basic_fixed_substring template class - provides a non-resizable "view"
onto a part of an existing string, useful for high efficiency string
manipulation
literal_cast template class - used to provide type-to-range validation
of literal constants
Meta Programming Constructs - including is_pointer_type<>,
is_array_type<>, is_convertible_to_bool<>, is_numeric_type<>,
is_integral_type<>, is_bool_type<>, is_void_type<>, is_fundamental_type<>,
is_compound_type<>, is_class_type<>, is_const<>, is_volatile<>, (void-able)
size_of<>, is_same_type<>, has_value_type<>, has_iterator<>,
has_const_iterator<>
pod_vector template class - highly efficient vector for POD types (only)
proxy_sequence template class - highly efficient pseudo-sequence, for
layering on top of arrays with providing parameterisable value_type.
Size Traits - providing type-definitions of signed and unsigned types of
a corresponding bit-size
Type Traits - for a given type: providing is_pointer, is_reference,
is_const and is_volatile attributes; defining two pointer/reference-stripped
types: the base_type (non-cv-qualified) and cv_type (cv-qualifiers retained)
unused_return_value_monitor template class - used for detecting when a
potentially expensive return value is not used; ideal for post-increment
operators; has parameterisable "failure" policy
stlsoft.h: STLSOFT_DECLARE_TEMPLATE_PARAM_AS_FRIEND(),
STLSOFT_SUPPRESS_UNUSED()
ATLSTL (v1.2.8 => 1.3.1)
ccombstr_veneer template adaptor class - makes CComBSTR conformant
to the STL String concept
SupportErrorInfoImpl / SupportErrorInfoImpl2 / SupportErrorInfoImpl3
template classes - simple ATL template that provides ISupportErrorInfo
implementation
COMSTL (v1.2.5 => 1.4.1)
collection_sequence template class - maps COM Collections to STL-like
sequence
set_error_info() function - sets the calling thread's error-info for a
given description string
interface_ptr template class - smart-enough interface pointer class
MFCSTL (v1.3.4 => 1.3.5)
no additions
UNIXSTL (v1.0.3 => 1.1.1)
basic_current_directory template class - provides access to current
directory in string form
basic_environment_variable template class - provides access to a given
environment value in string form
compare_path template function object - compares file-system paths via
fully-qualified path form
process_mutex class
spin_mutex class
thread_mutex class
WinSTL (v1.3.7 => 1.4.1)
acl_sequence class - provides STL-like sequence semantics over Access
Control Lists
Atomic Functions - a suite of functions that provide optimal performance
for single-processor/SMP/mixed Intel processors using inline assembler
clipboard_format_sequence class - provides STL-like sequence semantics
over the system's supported clipboard formats
basic_error_desc template class - provides access to the string form of
a given Win32 Error Code
last_error_scope - provides scoping of last error code, for maintaining
correct state when doing intermediate error processing
event class - a thin wrapper for the Win32 event kernel synchronisation
kernel object
listview_sequence class - provides STL-like sequence semantics over the
items in a ListView common control
basic_module_directory template class - provides access to a given (or
the calling process's) module's directory
process_mutex class
setcursor_scope class - provides scoping of the cursor
setfocus_scope class - provides scoping of the window with the focus
Time Functions - functions to convert between time_t and FILETIME
token_information template class - type-safe, resource-managed accessor
class to token information (via GetTokenInformation())
window_text_scope template class - provides scoping of a window's text
CHANGES
========
The changes to the libraries are as follows:
STLSoft (v1.6.5 => 1.7.1)
auto_buffer - it's now resizable, without any loss of efficiency. This
supports the new pod_vector template class
minor rationalisations to char_traits
Renaming of constraits: has_base => must_have_base, is_veneer =>
must_be_same_size, type_is_non_class_or_trivial_class => must_be_pod
fixed_array_d1/2d/3d/4d template classes - improved efficiency, by using
an additional template parameter to determine, at compile-time, whether
slices "own" their memory; previously this was achieved at runtme by a
member variable
frame_array_1d/2d/3d/4d renamed to static_array_1d/2d/3d/4d
frame_string: bug fixes
sign_traits: bug fixes; addition of "bytes" member value
simple_string: bug fixes; improvements in performance
ATLSTL (v1.2.8 => 1.3.1)
COMSTL (v1.2.5 => 1.4.1)
simplification of interface_cast; addition of interface_cast_test
enum_sequence - this has simplified, and now only has three non-default
parameters for the template
MFCSTL (v1.3.4 => 1.3.5)
minor enhancements to cstring_veneer
UNIXSTL (v1.0.3 => 1.1.1)
findfile_sequence renamed to glob_sequence (findfile_sequence is
retained for backwards compatibility)
tls_index renamed to tss_index (tls_index is retained for backwards
compatibility)
filesystem_traits: lots of new features
readdir_sequence: now supports flags "includeDots", "directories" and
"files"
WinSTL (v1.3.7 => 1.4.1)
ansi2Unicode & unicode2Ansi templates now have a second ctor which takes
a length
filesystem_traits: addition of file_exists() method
findfile_sequence now correctly implements InputIterator semantics, and
works correctly when iterators incremented in both prefix and postfix forms
findvolume_sequence: same as for findfile_sequence
performance_counter_init renamed to performance_counter_initialiser

This kind of post is neither appropriate nor welcome on these forums. Hopefully
the admin will delete it shortly
<ctillman rdfgroup.com> wrote in message news:cgka9p$4cs$1 digitaldaemon.com...

If anyone would be interested in putting there C++, STL, Unix and Kernel skills
to use in return for £75k package then please call Charlie on 01273 200300 to
find out more.
In article <c01k16$8sf$1 digitaldaemon.com>, Matthew says...

Hi everyone
[First, apologies to any D folks who do not use, and aren't interested in,
C++/STL/STLSoft. It's just that there are so many good ideas in there, that
I wanted to snag any that might be transferable over to STLSoft.]
STLSoft v1.7.1 will be released within the next 4-6 weeks, and it's the last
chance for getting in any feature requests. Available now from the STLSoft
main site - http://stlsoft.org/ - is STLSoft v1.7.1 beta 3
(stlsoft_1_7_1_beta3.zip), containing much of what will constitute the final
1.7.1 release.
To whet your appetite, I'm including a list of additions and a list of
changes to the libraries at the end of this post. Many of these appear in my
book "Imperfect C++" which will be out later in the year.
As yet, the documentation has not had any new work. I'd *really* appreciate
any suggestions for improvements for the documentation, as I know it's the
Achilles' Heel of the project. From the feedback I've had, this is the only
area of the libraries that is putting people off from using them more. If
anyone wants to volunteer to help out on this, it'd be fantastic. (Sounds of
thousands of people taking a step back ...)
Thanks for listening. Please feel free to post any questions via the FAQ
website (http://stlsoft.gregpeet.com/).
Cheers (changes & additions follow below:)
Matthew Wilson
Director, Synesis Software
(www.synesis.com.au)
STLSoft moderator
(http://www.stlsoft.org)
Contributing editor, C/C++ Users Journal
(www.synesis.com.au/articles.html#columns)
-----------------------------------------------------
ADDITIONS
==========
The additions to the libraries are as follows:
General
Many of the standard-offending symbols with leading underscores have
been changed. I intend to do the rest before the final release
Compilers
Intel 8.0
CodePlay VectorC 2.06
Comeau 4.3.3. (not quite complete yet, though ;))
GCC v3+ now supported for COMSTL
STLSoft (v1.6.5 => 1.7.1)
array_proxy template class - type-safe & size-safe aid for passing
arrays of object types to functions. Controls passing of derived arrays in a
safe manner
explicit_cast template class - implements explicit conversion operators
fast_string_concatenator template class - a helper class for
implementing fast, non-intrusive, string concatenation (Featured in
Imperfect C++, and in the article "Fast, Non-Intrusive String Concatenation"
in April's CUJ)
basic_fixed_substring template class - provides a non-resizable "view"
onto a part of an existing string, useful for high efficiency string
manipulation
literal_cast template class - used to provide type-to-range validation
of literal constants
Meta Programming Constructs - including is_pointer_type<>,
is_array_type<>, is_convertible_to_bool<>, is_numeric_type<>,
is_integral_type<>, is_bool_type<>, is_void_type<>, is_fundamental_type<>,
is_compound_type<>, is_class_type<>, is_const<>, is_volatile<>, (void-able)
size_of<>, is_same_type<>, has_value_type<>, has_iterator<>,
has_const_iterator<>
pod_vector template class - highly efficient vector for POD types (only)
proxy_sequence template class - highly efficient pseudo-sequence, for
layering on top of arrays with providing parameterisable value_type.
Size Traits - providing type-definitions of signed and unsigned types of
a corresponding bit-size
Type Traits - for a given type: providing is_pointer, is_reference,
is_const and is_volatile attributes; defining two pointer/reference-stripped
types: the base_type (non-cv-qualified) and cv_type (cv-qualifiers retained)
unused_return_value_monitor template class - used for detecting when a
potentially expensive return value is not used; ideal for post-increment
operators; has parameterisable "failure" policy
stlsoft.h: STLSOFT_DECLARE_TEMPLATE_PARAM_AS_FRIEND(),
STLSOFT_SUPPRESS_UNUSED()
ATLSTL (v1.2.8 => 1.3.1)
ccombstr_veneer template adaptor class - makes CComBSTR conformant
to the STL String concept
SupportErrorInfoImpl / SupportErrorInfoImpl2 / SupportErrorInfoImpl3
template classes - simple ATL template that provides ISupportErrorInfo
implementation
COMSTL (v1.2.5 => 1.4.1)
collection_sequence template class - maps COM Collections to STL-like
sequence
set_error_info() function - sets the calling thread's error-info for a
given description string
interface_ptr template class - smart-enough interface pointer class
MFCSTL (v1.3.4 => 1.3.5)
no additions
UNIXSTL (v1.0.3 => 1.1.1)
basic_current_directory template class - provides access to current
directory in string form
basic_environment_variable template class - provides access to a given
environment value in string form
compare_path template function object - compares file-system paths via
fully-qualified path form
process_mutex class
spin_mutex class
thread_mutex class
WinSTL (v1.3.7 => 1.4.1)
acl_sequence class - provides STL-like sequence semantics over Access
Control Lists
Atomic Functions - a suite of functions that provide optimal performance
for single-processor/SMP/mixed Intel processors using inline assembler
clipboard_format_sequence class - provides STL-like sequence semantics
over the system's supported clipboard formats
basic_error_desc template class - provides access to the string form of
a given Win32 Error Code
last_error_scope - provides scoping of last error code, for maintaining
correct state when doing intermediate error processing
event class - a thin wrapper for the Win32 event kernel synchronisation
kernel object
listview_sequence class - provides STL-like sequence semantics over the
items in a ListView common control
basic_module_directory template class - provides access to a given (or
the calling process's) module's directory
process_mutex class
setcursor_scope class - provides scoping of the cursor
setfocus_scope class - provides scoping of the window with the focus
Time Functions - functions to convert between time_t and FILETIME
token_information template class - type-safe, resource-managed accessor
class to token information (via GetTokenInformation())
window_text_scope template class - provides scoping of a window's text
CHANGES
========
The changes to the libraries are as follows:
STLSoft (v1.6.5 => 1.7.1)
auto_buffer - it's now resizable, without any loss of efficiency. This
supports the new pod_vector template class
minor rationalisations to char_traits
Renaming of constraits: has_base => must_have_base, is_veneer =>
must_be_same_size, type_is_non_class_or_trivial_class => must_be_pod
fixed_array_d1/2d/3d/4d template classes - improved efficiency, by using
an additional template parameter to determine, at compile-time, whether
slices "own" their memory; previously this was achieved at runtme by a
member variable
frame_array_1d/2d/3d/4d renamed to static_array_1d/2d/3d/4d
frame_string: bug fixes
sign_traits: bug fixes; addition of "bytes" member value
simple_string: bug fixes; improvements in performance
ATLSTL (v1.2.8 => 1.3.1)
COMSTL (v1.2.5 => 1.4.1)
simplification of interface_cast; addition of interface_cast_test
enum_sequence - this has simplified, and now only has three non-default
parameters for the template
MFCSTL (v1.3.4 => 1.3.5)
minor enhancements to cstring_veneer
UNIXSTL (v1.0.3 => 1.1.1)
findfile_sequence renamed to glob_sequence (findfile_sequence is
retained for backwards compatibility)
tls_index renamed to tss_index (tls_index is retained for backwards
compatibility)
filesystem_traits: lots of new features
readdir_sequence: now supports flags "includeDots", "directories" and
"files"
WinSTL (v1.3.7 => 1.4.1)
ansi2Unicode & unicode2Ansi templates now have a second ctor which takes
a length
filesystem_traits: addition of file_exists() method
findfile_sequence now correctly implements InputIterator semantics, and
works correctly when iterators incremented in both prefix and postfix forms
findvolume_sequence: same as for findfile_sequence
performance_counter_init renamed to performance_counter_initialiser

If anyone would be interested in putting there C++, STL, Unix and Kernel skills
to use in return for £75k package then please call Charlie on 01273 200300 to
find out more.
In article <c01k16$8sf$1 digitaldaemon.com>, Matthew says...

Hi everyone
[First, apologies to any D folks who do not use, and aren't interested in,
C++/STL/STLSoft. It's just that there are so many good ideas in there, that
I wanted to snag any that might be transferable over to STLSoft.]
STLSoft v1.7.1 will be released within the next 4-6 weeks, and it's the last
chance for getting in any feature requests. Available now from the STLSoft
main site - http://stlsoft.org/ - is STLSoft v1.7.1 beta 3
(stlsoft_1_7_1_beta3.zip), containing much of what will constitute the final
1.7.1 release.
To whet your appetite, I'm including a list of additions and a list of
changes to the libraries at the end of this post. Many of these appear in my
book "Imperfect C++" which will be out later in the year.
As yet, the documentation has not had any new work. I'd *really* appreciate
any suggestions for improvements for the documentation, as I know it's the
Achilles' Heel of the project. From the feedback I've had, this is the only
area of the libraries that is putting people off from using them more. If
anyone wants to volunteer to help out on this, it'd be fantastic. (Sounds of
thousands of people taking a step back ...)
Thanks for listening. Please feel free to post any questions via the FAQ
website (http://stlsoft.gregpeet.com/).
Cheers (changes & additions follow below:)
Matthew Wilson
Director, Synesis Software
(www.synesis.com.au)
STLSoft moderator
(http://www.stlsoft.org)
Contributing editor, C/C++ Users Journal
(www.synesis.com.au/articles.html#columns)
-----------------------------------------------------
ADDITIONS
==========
The additions to the libraries are as follows:
General
Many of the standard-offending symbols with leading underscores have
been changed. I intend to do the rest before the final release
Compilers
Intel 8.0
CodePlay VectorC 2.06
Comeau 4.3.3. (not quite complete yet, though ;))
GCC v3+ now supported for COMSTL
STLSoft (v1.6.5 => 1.7.1)
array_proxy template class - type-safe & size-safe aid for passing
arrays of object types to functions. Controls passing of derived arrays in a
safe manner
explicit_cast template class - implements explicit conversion operators
fast_string_concatenator template class - a helper class for
implementing fast, non-intrusive, string concatenation (Featured in
Imperfect C++, and in the article "Fast, Non-Intrusive String Concatenation"
in April's CUJ)
basic_fixed_substring template class - provides a non-resizable "view"
onto a part of an existing string, useful for high efficiency string
manipulation
literal_cast template class - used to provide type-to-range validation
of literal constants
Meta Programming Constructs - including is_pointer_type<>,
is_array_type<>, is_convertible_to_bool<>, is_numeric_type<>,
is_integral_type<>, is_bool_type<>, is_void_type<>, is_fundamental_type<>,
is_compound_type<>, is_class_type<>, is_const<>, is_volatile<>, (void-able)
size_of<>, is_same_type<>, has_value_type<>, has_iterator<>,
has_const_iterator<>
pod_vector template class - highly efficient vector for POD types (only)
proxy_sequence template class - highly efficient pseudo-sequence, for
layering on top of arrays with providing parameterisable value_type.
Size Traits - providing type-definitions of signed and unsigned types of
a corresponding bit-size
Type Traits - for a given type: providing is_pointer, is_reference,
is_const and is_volatile attributes; defining two pointer/reference-stripped
types: the base_type (non-cv-qualified) and cv_type (cv-qualifiers retained)
unused_return_value_monitor template class - used for detecting when a
potentially expensive return value is not used; ideal for post-increment
operators; has parameterisable "failure" policy
stlsoft.h: STLSOFT_DECLARE_TEMPLATE_PARAM_AS_FRIEND(),
STLSOFT_SUPPRESS_UNUSED()
ATLSTL (v1.2.8 => 1.3.1)
ccombstr_veneer template adaptor class - makes CComBSTR conformant
to the STL String concept
SupportErrorInfoImpl / SupportErrorInfoImpl2 / SupportErrorInfoImpl3
template classes - simple ATL template that provides ISupportErrorInfo
implementation
COMSTL (v1.2.5 => 1.4.1)
collection_sequence template class - maps COM Collections to STL-like
sequence
set_error_info() function - sets the calling thread's error-info for a
given description string
interface_ptr template class - smart-enough interface pointer class
MFCSTL (v1.3.4 => 1.3.5)
no additions
UNIXSTL (v1.0.3 => 1.1.1)
basic_current_directory template class - provides access to current
directory in string form
basic_environment_variable template class - provides access to a given
environment value in string form
compare_path template function object - compares file-system paths via
fully-qualified path form
process_mutex class
spin_mutex class
thread_mutex class
WinSTL (v1.3.7 => 1.4.1)
acl_sequence class - provides STL-like sequence semantics over Access
Control Lists
Atomic Functions - a suite of functions that provide optimal performance
for single-processor/SMP/mixed Intel processors using inline assembler
clipboard_format_sequence class - provides STL-like sequence semantics
over the system's supported clipboard formats
basic_error_desc template class - provides access to the string form of
a given Win32 Error Code
last_error_scope - provides scoping of last error code, for maintaining
correct state when doing intermediate error processing
event class - a thin wrapper for the Win32 event kernel synchronisation
kernel object
listview_sequence class - provides STL-like sequence semantics over the
items in a ListView common control
basic_module_directory template class - provides access to a given (or
the calling process's) module's directory
process_mutex class
setcursor_scope class - provides scoping of the cursor
setfocus_scope class - provides scoping of the window with the focus
Time Functions - functions to convert between time_t and FILETIME
token_information template class - type-safe, resource-managed accessor
class to token information (via GetTokenInformation())
window_text_scope template class - provides scoping of a window's text
CHANGES
========
The changes to the libraries are as follows:
STLSoft (v1.6.5 => 1.7.1)
auto_buffer - it's now resizable, without any loss of efficiency. This
supports the new pod_vector template class
minor rationalisations to char_traits
Renaming of constraits: has_base => must_have_base, is_veneer =>
must_be_same_size, type_is_non_class_or_trivial_class => must_be_pod
fixed_array_d1/2d/3d/4d template classes - improved efficiency, by using
an additional template parameter to determine, at compile-time, whether
slices "own" their memory; previously this was achieved at runtme by a
member variable
frame_array_1d/2d/3d/4d renamed to static_array_1d/2d/3d/4d
frame_string: bug fixes
sign_traits: bug fixes; addition of "bytes" member value
simple_string: bug fixes; improvements in performance
ATLSTL (v1.2.8 => 1.3.1)
COMSTL (v1.2.5 => 1.4.1)
simplification of interface_cast; addition of interface_cast_test
enum_sequence - this has simplified, and now only has three non-default
parameters for the template
MFCSTL (v1.3.4 => 1.3.5)
minor enhancements to cstring_veneer
UNIXSTL (v1.0.3 => 1.1.1)
findfile_sequence renamed to glob_sequence (findfile_sequence is
retained for backwards compatibility)
tls_index renamed to tss_index (tls_index is retained for backwards
compatibility)
filesystem_traits: lots of new features
readdir_sequence: now supports flags "includeDots", "directories" and
"files"
WinSTL (v1.3.7 => 1.4.1)
ansi2Unicode & unicode2Ansi templates now have a second ctor which takes
a length
filesystem_traits: addition of file_exists() method
findfile_sequence now correctly implements InputIterator semantics, and
works correctly when iterators incremented in both prefix and postfix forms
findvolume_sequence: same as for findfile_sequence
performance_counter_init renamed to performance_counter_initialiser