Graham | 28 Aug 23:59

Re: String Algorithms Library: Case insensitive compareUTF-8

>> Martin Lutken wrote:
>>> Anyone who knows how this could be made possible?
>>> I suppose I need a locale facet like the std::ctype, but which works
for 
>>> UTF-8, and not just for ASCII a-z,A-Z. I guess the information in a
>table 
>>> like this (http://www.unicode.org/Public/UNIDATA/CaseFolding.txt) 
>>> could be used. 
>>>
>> 
>> This might not work out-of-the-box. StringAlgo lib is designed around
the >sequences
>> od characters. Since UTF-8 have variable character with encoding,
>algotrithms
>> in the library would not work as expected.
>> 
>> To make it working, you will need a container with iterators, that
will
>> iterate over meta-characters, not bytes.
>> 
>>> If it's better/easier just to convert the string to UTF-32 before
doing >case 
>>> insensitive compares, replaces I could live with that.
>> 
>> If you meant UTS-32 and you have a corresponding locale
implementation, >than
>> this approach is a viable solution.
>> 
>> Sorry, what is UTS-32 ? I tried to Google it: 351 results, with none
of >them 
(Continue reading)

Thorsten Ottosen | 28 Aug 11:16

[boost.org] people not updated?

Hi,

It seems like we are missing some of our recent members.

-Thorsten
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Phil Bouchard | 28 Aug 09:13

[smart_ptr] release()

As it turns out I think a release() member function should be added to the
smart pointer.  Its purpose is to give away ownership of the object.  See
the following pseudo-code:

template <typename T>
    class smart_ptr
    {
        ...
        smart_ptr(element_type *);

        value_type * get();

        element_type * release()
        {
            element_type * __p = pointer_ref();

            pointer_ref() = 0;

            if (-- counter_ref())
                return 0;
            else
                return __p;
        }
    };

It follows the same idea of its predecessor auto_ptr<> but will return a
null pointer if the object is still shared thus not ready to be deleted.
This way the allocator will be much easier to support either by calling this
function before deallocate(), inside it or by using a specialized wrapper
class to handle it:
(Continue reading)

Phil Bouchard | 28 Aug 07:05

[smart_ptr] release()

As it turns out I think a release() member function should be added to the 
smart pointer.  Its purpose is to give away ownership of the object.  See 
the following pseudo-code:

template <typename T>
    class smart_ptr
    {
        ...
        smart_ptr(element_type *);

        value_type * get();

        element_type * release()
        {
            element_type * __p = pointer_ref();

            pointer_ref() = 0;

            if (-- counter_ref())
                return 0;
            else
                return __p;
        }
    };

It follows the same idea of its predecessor auto_ptr<> but will return a 
null pointer if the object is still shared thus not ready to be deleted. 
This way the allocator will be much easier to support either by calling this 
function before deallocate(), inside it or by using a specialized wrapper 
class to handle it:
(Continue reading)

Andrew Hain | 28 Aug 19:10

[pointer container] Wishlist: Iterating through nullable vectors and compiler firewalls

Two quick queries.

Would it make sense to have the iterator increment and decrement operators and 
begin() member function of ptr_vector< nullable<> > skip missing records so 
that applications have no need to check?

What is stopping pointer container classes from being used with opaque types 
as a compilation firewall?

--
Andrew Hain
Oasys
http://www.oasys-software.com

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

David Walthall | 28 Aug 18:36

[iostreams][trunk] patch for msvc 7.1 error

The following patch fixes the mapped_file_test compilation error for 
msvc 7.1 (daw-msvc71):

Index: libs/iostreams/src/mapped_file.cpp
===================================================================
--- libs/iostreams/src/mapped_file.cpp  (revision 48407)
+++ libs/iostreams/src/mapped_file.cpp  (working copy)
@@ -434,7 +434,7 @@

  void mapped_file_source::close() { pimpl_->close(); }

-mapped_file_source::operator safe_bool() const
+mapped_file_source::operator mapped_file_source::safe_bool() const
  { return pimpl_->error() ? &safe_bool_helper::x : 0; }

  bool mapped_file_source::operator!() const

David

PS Is this the right place to post patches?  Should I use Trac instead?

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Phil Endecott | 28 Aug 18:19

FSM Review

Rather than repeating myself too much here I refer the review manager 
to my two previous posts where I implemented a couple of simple 
problems using this library.  My initial expectation was that I would 
find the library useful for these problems, but it became clear that 
the resulting code was no better than an ad-hoc implementation without 
the use of the library.  I was hoping that in the time since then the 
author or some other reviewer would produce an example that would 
convince me that there are classes of problems where this library is 
useful, but no such example has appeared.

> What is your evaluation of the design?

The main mode of use of this library doesn't seem to offer enough 
beyond what's possible with a more ad-hoc implementation style to be 
worthwhile.  I note that it also has a more declarative mode (with a 
state transition table) which I did not evaluate properly.

> What is your evaluation of the implementation?

I have not evaluated the implementation.

> What is your evaluation of the documentation?

It is sufficient.

> What is your evaluation of the potential usefulness of the library?

I have not been convinced that this library is useful.

> Did you try to use the library? With what compiler? Did you have any
(Continue reading)

Jonathan Biggar | 28 Aug 06:35

Another website docpage nit

In the page:

http://www.boost.org/doc/tools.html

the description of Wave says:

A Standards conformant C/C++ preprocessor usable on top of any other 
compiler. Usable for instance for the debugging of the expansion of 
macros in your code or as a replacement for your build in preprocessor.
                                                  ^^^^^^
                                                  built-

--

-- 
Jon Biggar
Floorboard Software
jon <at> floorboard.com
jon <at> biggar.org

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Jonathan Biggar | 28 Aug 06:35

Website documentation page nit

The docuemntation page on the website:

http://www.boost.org/doc/

only has two subbullets (Boost Jam and Boost Build) under the "Tools" 
bullet.

But if you click on the Tools bullet, you get a longer list:

Boost.Build
Boost.Jam
Regression
Inspect
BoostBook
bcp
QuickBook
Wave

Shouldn't those all appear on the doc page.

It took me a while to find the BoostBook documentation because of this.

--

-- 
Jon Biggar
Floorboard Software
jon <at> floorboard.com
jon <at> biggar.org

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
(Continue reading)

Johan Råde | 27 Aug 17:13

[filesystem] BOOST_FILESYSTEM_NO_DEPRECATED

The following code does not compile with Boost 1.36 and MSVS 2008:

     #define BOOST_FILESYSTEM_NO_DEPRECATED
     #include <boost/filesystem.hpp>

In get the following error message:

1>C:\Program Files\Boost\boost_1_36_0\boost/filesystem/convenience.hpp(98) : error C2275: 
'boost::filesystem::path' : illegal use of this type as an expression
1>        C:\Program Files\Boost\boost_1_36_0\boost/filesystem/path.hpp(49) : see declaration of 
'boost::filesystem::path'
1>C:\Program Files\Boost\boost_1_36_0\boost/filesystem/convenience.hpp(100) : error C2275: 
'boost::filesystem::wpath' : illegal use of this type as an expression
1>        C:\Program Files\Boost\boost_1_36_0\boost/filesystem/path.hpp(65) : see declaration of 
'boost::filesystem::wpath'
1>C:\Program Files\Boost\boost_1_36_0\boost/filesystem/convenience.hpp(103) : error C2275: 
'boost::filesystem::path' : illegal use of this type as an expression
1>        C:\Program Files\Boost\boost_1_36_0\boost/filesystem/path.hpp(49) : see declaration of 
'boost::filesystem::path'
1>C:\Program Files\Boost\boost_1_36_0\boost/filesystem/convenience.hpp(105) : error C2275: 
'boost::filesystem::wpath' : illegal use of this type as an expression
1>        C:\Program Files\Boost\boost_1_36_0\boost/filesystem/path.hpp(65) : see declaration of 
'boost::filesystem::wpath'
1>C:\Program Files\Boost\boost_1_36_0\boost/filesystem/convenience.hpp(108) : error C2275: 
'boost::filesystem::path' : illegal use of this type as an expression
1>        C:\Program Files\Boost\boost_1_36_0\boost/filesystem/path.hpp(49) : see declaration of 
'boost::filesystem::path'
1>C:\Program Files\Boost\boost_1_36_0\boost/filesystem/convenience.hpp(110) : error C2275: 
'boost::filesystem::wpath' : illegal use of this type as an expression
1>        C:\Program Files\Boost\boost_1_36_0\boost/filesystem/path.hpp(65) : see declaration of 
(Continue reading)

K. Noel Belcourt | 27 Aug 17:13

[Boost][spirit] Broken nightly tests

Hi,

The nightly tests are dying with the error from, apparently, the  
spirit library.

Please refer to the Boost.Regex documentation for more information
(don't panic: this is a strictly optional feature).
error: Unable to find file or target named
error:     'qi/confix.cpp'
error: referred from project at
error:     '../libs/spirit/test'

Thanks.

-- Noel Belcourt

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Gmane