Archives
D Programming
DD.gnu digitalmars.D digitalmars.D.bugs digitalmars.D.dtl digitalmars.D.dwt digitalmars.D.announce digitalmars.D.learn digitalmars.D.debugger C/C++ Programming
c++c++.announce c++.atl c++.beta c++.chat c++.command-line c++.dos c++.dos.16-bits c++.dos.32-bits c++.idde c++.mfc c++.rtl c++.stl c++.stl.hp c++.stl.port c++.stl.sgi c++.stlsoft c++.windows c++.windows.16-bits c++.windows.32-bits c++.wxwindows digitalmars.empire digitalmars.DMDScript |
c++ - STLSoft 1.7.1 - beta announcement; final requests
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 Feb 06 2004
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 Feb 06 2004
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... Feb 24 2004
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... Feb 24 2004
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...That's a nice idea. Let me have a think. :) btw, are you on the mailing list - http://stlsoft.org/mailing_list.html ? Feb 25 2004
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...That's a nice idea. Let me have a think. :) btw, are you on the mailing list - http://stlsoft.org/mailing_list.html Feb 25 2004
"Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:c1jfi0$shf$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, Feb 25 2004
"Pablo Aguilar" <paguilarg hotmail.com> wrote in message news:c1jj5r$12jl$1 digitaldaemon.com..."Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:c1jfi0$shf$1 digitaldaemon.com...Great! FYI, I'm pretty happy with the libs so far, but it's been six months Feb 25 2004
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== Mar 01 2004
"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. Mar 01 2004
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 = Mar 02 2004
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. Mar 02 2004
On Tue, 2 Mar 2004 20:45:09 +1100, Matthew <matthew.hat stlsoft.dot.org> wrote: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! ;) Mar 02 2004
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) ) Mar 04 2004
I just finished writing both, let me know if you're interestedI'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 Mar 04 2004
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 interestedI'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 Mar 04 2004
Here they are then... Comments are more than welcome... don't know about portability issues, I just did 'em in VC6, tested, worked... I'm happy... but, like I said, comments are greatly appreciated Here's a small sample of how to use 'em: void MyWindow::OnSomething() { std::string text; { clip_lock<CF_TEXT> cl(m_hWnd); if( cl ) { hg_lock<LPCTSTR> str(::GetClipboardData(cl.requested_type())); if( str.locked() ) text = str; } } } "Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:c28qkc$2gbj$1 digitaldaemon.com...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 Mar 05 2004
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 Aug 26 2004
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 Aug 26 2004
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 Aug 26 2004
|