www.digitalmars.com         C & C++   DMDScript  

c++.stlsoft - STLSoft 1.9.70 released

reply Matt Wilson <matthewwilson acm.org> writes:
Download from http://stlsoft.org/

============================================================================

Changes for 1.9.70 (25th January 2009)

Summary:
========

 * improved stlsoft::find_next_token() function templates to ensure that all
empty fields are reported to caller
 * added char_copy() methods to filesystem_traits classes in InetSTL and
WinSTL, as part of move away from "unsafe" string functions
 * minor enhancements to platformstl::readdir_sequence, to disambiguate
constructor overloads
 * removed all "unsafe" string functions from winstl::basic_findfile_sequence
class template and supporting components
 * improved winstl::basic_path class template to ensure proper behaviour in
corner cases of use of push() and pop() methods

Changes:
========

 STLSoft:
 ========

 ~ include/stlsoft/string/tokeniser_functions.hpp:
    ~ fixed benign defects in find_next_token() overloads, whereby certain
empty fields were not reported to caller
    ~ documentation enhancements
    ~ adding in more pre-condition enforcements

 InetSTL:
 ========

 ~ include/inetstl/filesystem/filesystem_traits.hpp:
    + char_copy() operations

 PlatformstSTL:
 ==============

 ~ include/platformstl/filesystem/readdir_sequence.hpp:
    ~ separation and disambiguation of constructor overloads

 WinSTL:
 =======

 ~ include/winstl/filesystem/findfile_sequence.hpp:
    + added defaulted parameter to get_directory() to retrieve the directory
length
    ~ replaced all instances of so-called "unsafe" string functions with
system_traits::char_copy()

 ~ include/winstl/filesystem/path.hpp:
    ~ various fixes to push() and push_sep()
    ~ corrected defects in pop(), seen in root directory paths, and paths
involving UNC

 ~ include/winstl/system/system_traits.hpp:
    + added char_copy() to system_traits specialisations
    ~ trivial documentation markup modifications

============================================================================
Jan 24 2009
parent reply Florin L <florinl_ro yahoo.com> writes:
The following code failed to build under 1.9.70 version:

#include <algorithm>    // std::copy
#include <iterator>     // std::ostream_iterator
#include <iostream>     // std::cout, std::endl
#include <string>       // std::string

using namespace std;
using platformstl::readdir_sequence;

void listDir( const string &dirName )
{
    readdir_sequence dir( dirName, readdir_sequence::directories );

    std::copy( dir.begin(), dir.end(), std::ostream_iterator<std::string>(
std::cout, "\n" ) );
}

int main()
{
    // lists the content of a directory
    listDir("C:\\");

    return 0;
}

The error message is :

E:\dm\stlsoft-1.9.70\include\winstl/filesystem/findfile_sequence.hpp(956) :
Error: undefined identifier 'CO_E_PATHTOOLONG'


The compiler is:

Digital Mars Compiler Version 8.50.
Jan 27 2009
next sibling parent "Matthew Wilson" <matthew hat.stlsoft.dot.org> writes:
Bah! stupid me.

Thanks, I'll fix it today

"Florin L" <florinl_ro yahoo.com> wrote in message
news:glmsos$1fgq$1 digitalmars.com...
 The following code failed to build under 1.9.70 version:

 #include <algorithm>    // std::copy
 #include <iterator>     // std::ostream_iterator
 #include <iostream>     // std::cout, std::endl
 #include <string>       // std::string

 using namespace std;
 using platformstl::readdir_sequence;

 void listDir( const string &dirName )
 {
     readdir_sequence dir( dirName, readdir_sequence::directories );

     std::copy( dir.begin(), dir.end(), std::ostream_iterator<std::string>(
std::cout, "\n" ) );
 }

 int main()
 {
     // lists the content of a directory
     listDir("C:\\");

     return 0;
 }

 The error message is :

 E:\dm\stlsoft-1.9.70\include\winstl/filesystem/findfile_sequence.hpp(956) :
Error: undefined identifier 'CO_E_PATHTOOLONG'


 The compiler is:

 Digital Mars Compiler Version 8.50.

Jan 27 2009
prev sibling parent Matt Wilson <matthewwilson acm.org> writes:
Now fixed. See: http://www.digitalmars.com/webnews/newsgroups.php?art_group=c%2B%2B.stlsoft&article_id=1796

Florin L Wrote:

 The following code failed to build under 1.9.70 version:
 
 #include <algorithm>    // std::copy
 #include <iterator>     // std::ostream_iterator
 #include <iostream>     // std::cout, std::endl
 #include <string>       // std::string
 
 using namespace std;
 using platformstl::readdir_sequence;
 
 void listDir( const string &dirName )
 {
     readdir_sequence dir( dirName, readdir_sequence::directories );
 
     std::copy( dir.begin(), dir.end(), std::ostream_iterator<std::string>(
std::cout, "\n" ) );
 }
 
 int main()
 {
     // lists the content of a directory
     listDir("C:\\");
 
     return 0;
 }
 
 The error message is :
 
 E:\dm\stlsoft-1.9.70\include\winstl/filesystem/findfile_sequence.hpp(956) :
Error: undefined identifier 'CO_E_PATHTOOLONG'
 
 
 The compiler is:
 
 Digital Mars Compiler Version 8.50.

Jan 27 2009