Re: [boost] Re: Re: smart_assert - update; SMART_ENFORCE works

2003-08-08 Thread John Torjo
Hi Michael,

Sorry for the late reply...


 A postcondition such as I'm suggesting would perform an assertion when a
 function (or the enclosing block) exits instead of on the line where the
 assertion was defined. Obviously, if a function only has one exit path, it
 would be simple just to put assertions at the end of the function, but if
a
 function has multiple exit points, this would be inadequate.

 An example of what I mean is something like this (where SMART_ASSERT_POST
is
 the new postcondition assertion that I'm suggesting):

I'm not sure we need this.
It's much simpler to have something like:

struct on_exit {
template class function
on_exit( function f)  { ... }
~on_exit() { call function }
private:
 ...
};



and in code:
// something similar to
on_exit exit( mem_fun( SomeClass::CheckClassInvariants) );


   class SomeClass(void)
   {
   public:

   void SomeFunction(void)
   {
   file://Precondition: check class invariants on function entry
   SMART_ASSERT(CheckClassInvariants());

   file://Postcondition: check class invariants on function exit
   SMART_ASSERT_POST(CheckClassInvariants());

   file://Function body here
   }

   private:

   bool CheckClassInvariants(void)
   {
   file://Return true if class invariants are met
   }
   };

 Another example would be something like this:

   int SomeFunction(int arg)
   {
 file://Precondition: check argument on function entry
 SMART_ASSERT(arg 0  arg  10);

 int result = 0;

 file://Postcondition: check result on function exit
 SMART_ASSERT_POST(ref(result) = 0);


Using ..._POST could just complicate things.
Users should know to use, for each tested argument ref(...),
so you can come up with something like outlined above.

I'll think about it (something using lambda expressions).

Best,
John

 file://Function body here

 return result;
   }

 As far as how it would be implementated, as I suggested before, I assume
the
 post condition would create an object whose destructor asserts the
condition
 when the block the it is defined in exits.



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


[boost] Re: Re: time_duration bug in Boost 1.30.0

2003-08-08 Thread Bo Persson

Paul A. Bristow [EMAIL PROTECTED] wrote:


 (And other MS specific unhelpful warnings which could be dealt with
by

 #ifdef _MSC_VER  or BOOST_?
 #pragma warning (disable : 4800) // inefficient bool conversion?
 #endif

 As a general point, is there any reason why 'known to be unhelpful'
warnings
 like this cannot be disabled in Boost code?


A problem here is that the inefficient bool conversion often
actually *is* an inefficient implicit conversion to bool. IME, most of
these warnings can be removed by actually producing a bool value.
Adding == 0 or != 0 is often all it takes.


Bo Persson
[EMAIL PROTECTED]


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


RE: [boost] GUI/GDI template library

2003-08-08 Thread Brock Peabody


 -Original Message-
 From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
 On Behalf Of Gregory Colvin
 Sent: Wednesday, August 06, 2003 4:48 PM
 To: Boost mailing list
 Subject: Re: [boost] GUI/GDI template library
 
 Why the S?
 
 On Wednesday, Aug 6, 2003, at 16:37 America/Denver, E. Gladyshev
wrote:
 
 
  --- Brock Peabody [EMAIL PROTECTED]
  wrote:
 
  That sounds good.  What if we called the lower layer
  boost::gui and the
  upper layer boost::sgtl?

It stands for 'standard'.  Maybe that's a little pretentious for us at
this early stage :)  gtl would probably be better.  I suspect that if we
get to a review some people may request something more verbose.

Brock

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


[boost] Re: Patch to emacs cc-mode for template syntax andindentation

2003-08-08 Thread David Abrahams
Neal D. Becker [EMAIL PROTECTED] writes:

 On Monday 04 August 2003 10:43 pm, David Abrahams wrote:
 If anyone's interested, the enclosed patch against the current CC-mode

 Did you send this to cc-mode maintainer?  

Yes, via C-c C-b:


C-c C-b runs the command c-submit-bug-report
   which is an interactive compiled Lisp function in `cc-mode'.
It is bound to C-c C-b.
(c-submit-bug-report)

Submit via mail a bug report on CC Mode.

I know it's probably not the best channel, but I know he's listening
there.

Also, [EMAIL PROTECTED]

Why should I care about xemacs?  It can't even byte-compile the
recent GNUs stuff.

Compiling file c:\src\gnus\xlisp\deuglify.el at Tue Aug 05 10:02:04 2003
While compiling toplevel forms:
  !! error ((As of 20.3, `concat' no longer works with compiled-function objects 
#compiled-function nil ...(147) [gnus-tmp-unread gnus-tmp-replied 
gnus-tmp-score-char gnus-tmp-indentation gnus-tmp-opening-bracket gnus-tmp-lines 
gnus-put-text-property format %c%4s: %-23s%c string-match 9 nil To -  
gnus-summary-extract-address-component Newsgroups =  23 0   
 gnus-tmp-header gnus-tmp-from header gnus-newsgroup-charset gnus-summary-buffer 
gnus-newsgroup-ignored-charsets mail-parse-ignored-charsets mail-parse-charset 
gnus-ignored-from-addresses newsgroups to extra-headers 
gnus-decode-encoded-word-function val gnus-tmp-closing-bracket gnus-mouse-face-prop 
gnus-mouse-face gnus-tmp-subject-or-nil] 11))
  !! error ((As of 20.3, `concat' no longer works with compiled-function objects 
#compiled-function nil ...(147) [gnus-tmp-unread gnus-tmp-replied 
gnus-tmp-score-char gnus-tmp-indentation gnus-tmp-opening-bracket gnus-tmp-lines 
gnus-put-text-property format %c%4s: %-23s%c string-match 9 nil To -  
gnus-summary-extract-address-component Newsgroups =  23 0   
 gnus-tmp-header gnus-tmp-from header gnus-newsgroup-charset gnus-summary-buffer 
gnus-newsgroup-ignored-charsets mail-parse-ignored-charsets mail-parse-charset 
gnus-ignored-from-addresses newsgroups to extra-headers 
gnus-decode-encoded-word-function val gnus-tmp-closing-bracket gnus-mouse-face-prop 
gnus-mouse-face gnus-tmp-subject-or-nil] 11))

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

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


Re: [boost] RC_1_30_2 tagged for release

2003-08-08 Thread Martin Wille
David Abrahams wrote:
It appears that the tagging step for Version_1_30_1 got messed up
somehow.
Please have a look at RC_1_30_2, which is our release candidate for
Version 1_30_2, and let me know if there are any problems.
I'm not able to run the Linux regression tests on that branch.
process_jam_log fails due to an out_of_range being thrown from
basic_string::substr. Probably, some files are still missing for
the tests to work properly. The same is true for the 1.30.1 release.
I'll try to investigate that tomorrow.

Regards,
m
___
Unsubscribe  other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Release Manager's Checklist added

2003-08-08 Thread Beman Dawes
I've added a detailed Release Manager's Checklist 
(boost-root/more/release_mgr_checklist.html).

It will take up to 24 hours for this to be reflected on SourceForge's 
public CVS (although it is available right away for those with write 
access).

There are five items on the checklist that take up the bulk of the release 
manager's time (see abbreviated descriptions below). The release manager is 
near exhaustion by the time these are complete. I think we need to figure 
out a way to delegate this management effort to more people. (There are 
already quite a number of people helping with bits and pieces of the 
overall process, but we need to formalize that a bit more, IMO, so the 
release manager doesn't get lost in the details.)

--Beman

* Monitor inspection report to verify problems are being dealt with.

* Monitor regression tests to verify that errors are dealt with.

* Monitor mailing lists to verify that patches are being dealt with.

* Monitor mailing lists and bug tracker to verify that bug reports are 
being dealt with.

* Monitor CVS commits to verify content gets committed as planned. 

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


[boost] MSVC7.1 bug not yet fixed

2003-08-08 Thread Andreas Huber
Dave,

I've just downloaded 1.30.1 and the bug I reported a while ago

http://aspn.activestate.com/ASPN/Mail/Message/boost/1622190
(Missing BOOST_HAS_THREADS on MSVC with /Za and /MT)

is still there. I don't know config at all but if nobody else has time I'll
try to submit a patch (I believe it'd be less than half an hour for someone
knowing config). Just let me know.

Thanks  Regards,

Andreas


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


[boost] Re: question regarding boost array

2003-08-08 Thread Alisdair Meredith
Robert Ramey wrote:

 Currently boost array contains a copy of the array that initialized it.

 Is there any reason that boost array can't be enhanced  to contain a reference
 to the original C array?  I think this would make it more useful
 to me as well as others.

I don't see the problem.  boost::array is not a wrapper around an
existing array, it IS an array.  In the same way, std::vector does not
take ownership of any existing memory you may want to initialise it
with.

I am not sure what you are trying to achieve, why do scoped_array or
shared_array not serve in this case?

-- 
AlisdairM

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


RE: [boost] Re: GUI sublanguage ?

2003-08-08 Thread Brock Peabody


 -Original Message-
 From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
 On Behalf Of Joel de Guzman
 Sent: Wednesday, August 06, 2003 5:51 PM
 To: Boost mailing list
 Subject: Re: [boost] Re: GUI sublanguage ?
 
 Brock Peabody [EMAIL PROTECTED] wrote:
 
  Have you invented universal algorithm for window size/position ?
 
  It works surprisingly well.  I know I described it in detail in an
  earlier post, I can sum it up again if you like.  It works well
  especially if you need complete resizability.
 
 Please do. I've lost track of the thread and I want to catch up.

When we first started doing GUIs, we put things exactly where we wanted
them :)  We would either disallow or ignore resizing.  This is the type
of sizing logic that is promoted by RAD tools.  Eventually you find that
you can't ignore the issue.

Our first attempt at a sizing 'algorithm' was that everything in a
window was sized proportionally as the window grew and expanded.  This
led to cartoonish screens at large sizes.

The reason is that some controls benefit from increased size and others
don't.  More specifically, each type of control usually has a minimum
and maximum desired size for each dimension (sometimes the maximum is
unlimited).  Examples:

static text - fixed size horizontally and vertically

line edit - fixed size vertically.  Minimum of one character
horizontally and unlimited size horizontally.

masked edit - both horizontal and vertical sizes can be fixed based on
the mask.


The earliest version of this library was concerned strictly with laying
out controls.

Each layout composition function returns an object that can be
positioned in a rectangle, and can tell you what its desired size is for
each dimension.  If you pass a plain window to one it will 'wrap' it for
you.  The objects returned by the composition functions can in turn be
passed to other composition functions (or themselves recursively).

row(x, x1, ... xn) - positions its components one after another
horizontally.  Space is allocated first for 'minimum sizes'.  Left over
space is split evenly among components with no maximum, or with maximums
that are greater than their minimums.

column(y, y1, ... yn) - same as row but vertically

gridnumber of columns(c0, c1, ... cn) - sometimes it is important for
the elements in subsequent rows to 'line up'.  You can use the grid
function impose more strict sizing than is possible with combinations of
rows and columns.

I realize that this scheme won't solve all the world's problems, but it
comes close :)  You can imagine that one could come up with more
composition functions, I just haven't needed any yet.

This positioning library began evolving into a complete GUI library when
I realized that I could allow the inline definition of static text
controls, and get rid of them completely:

   row (label: , some_control);

After that I wanted to get rid of more controls and define them all
inline.


I hope I explained that well.  My communication skills could be improved
:)

Brock

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


RE: [boost] GUI sublanguage ?

2003-08-08 Thread Brock Peabody

Because for a pretty large number of applications you can really
simplify your code a lot by relying on the GUI system to 'do the right
thing':

   using boost::gui;

   void my_action() {...}
   void progress_action(int tick) {...}

   gui::show( sample boost application,
  column ( button (click it, my_action),
   progress (100, progress_action)));


There are a lot of good reasons why we would not always want to have
total control.  I want my applications to be as simple as possible, and
to all look the same.  If the GUI library picks the 'best' settings for
the platform automatically, the individual programmer doesn't have to
think about it.  Everything just works like it should.  To take a few
things from your snippet that are suspect to me:

 w.width( 400 );
 w.height( 200 )

Where do 400 and 200 come from?  This seems arbitrary to me.  The GUI
system should be able to tell how to size itself.

 b.align( alignment::vcenter | alignment::hcenter );

A real world application needs much more sophisticated positioning
mechanisms than this.  The tiny snippet above (in my code) hides some
pretty good positioning logic.

 pb.min( 0 );
 pb.max( 100 );
 pb.step( 5 );
 pb.smooth( true );

Again, these values should be picked automatically.

Now, it might be cool to be able to change my above code to:

  gui::showmy_company_gui_traits( sample boost application,
 ...

Where you can have specified such things as whether or not your progress
bars are smooth and what the step size is.  Maybe you could even do it
at run-time.

  get_my_company_gui_traits().show(sample boost application,
 ...

My motivation for the design of this again:

- GUI code is difficult, tedious, and error prone even for simple tasks,
I want to make it simple (for simple tasks)

- control positioning is especially difficult

- Consistency in GUI applications is difficult.  Give ten programmers a
lower level GUI API and they'll turn out ten applications each with a
different look and feel.  I don't want to have to remember that step
size for our company is always '5', for instance.

If we head in the direction we've been talking we would also provide a
cross platform lower level API where you could get more control and do
things like what you describe below.  I hope that most programmers would
find it unnecessary though.


 -Original Message-
 From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
 On Behalf Of Bohdan
 Sent: Wednesday, August 06, 2003 2:31 PM
 To: [EMAIL PROTECTED]
 Subject: [boost] GUI sublanguage ?
 
  Recently there was idea about spirit-like dialog sublanguage
 implemented in c++. I still can't get why someone may need
 it ?
  Spirit is forced to use such language to build QUOTED code, which
 works only when parsing occur. In case of GUI lib
 sutiation is different :
  We are not building code, but tree of gui objects placed in
 2d (+z order). Sure boost::gui should deal with actions,
 but generally they are much more compicated than spirit ones
 and can't be easyly implemented by binders/bll/phoenix.
 Besides, average gui control has a lot of properties which
 may change in runtime. Would be convenient and
 effective to fill/change such properties using spirit like
 language ?
 
 Why invent new shape for wheel ? :
 
 void my_action( component  sender )
 {
 show_dialog( sender is  + sender.title() );
 }
 
 main()
 {
 window w;
 w.title(sample boost application);
 w.width( 400 );
 w.height( 200 )
 
 button b;
 b.title(click it!);
 b.on_click.connect( my_action );
 w.insert( b );
 b.align( alignment::vcenter | alignment::hcenter );
 
 progress_bar pb;
 pb.align( alignment::bottom );
 pb.min( 0 );
 pb.max( 100 );
 pb.step( 5 );
 pb.smooth( true );
 w.insert( pb );
 
 w.show(); //or w.show_modal();
 
 window::main_loop();
 }
 
 regards,
 bohdan
 
 
 
 ___
 Unsubscribe  other changes:
 http://lists.boost.org/mailman/listinfo.cgi/boost

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


[boost] Re: Release Manager's Checklist added

2003-08-08 Thread Alisdair Meredith
Daniel Frey wrote:

 The trackers are IMHO a problem because they require a lot of work. The
 current state shows that it is not maintained well, e.g. there are open
 bugs which are long closed in CVS, see #451535. Sure we could do better
 in theory, but is it worth it? Why not use regression tests to track
 bugs? AFAICS people pay a lot of attention to the regression tests and
 the whole systems work pretty well.

 Also, I hope that it could make the release manager's work easier to
 have fewer sources to track :)

 OK, what do others think? Am I the only one who feels uncomfortable with
 the SF-trackers?

The tracker is worse than useless if it is not actively supported. 
Boost users who do not subscribe to the lists will submit bugs through
them, and wonder why they don't get the feedback they expect.  If bugs
are never marked closed, as you say, it looks bad on the project.

OTOH, regression tests are only good for the conditions they test for. 
If we expand the tests to cover every potential bug, I suspect we will
not have enough computers to run them on.  Bug trackers let you record
and deal with bugs that are not part of the main-line regression suite.

As you can see, I am neither for-nor-agianst the bug tracker.  But I do
think we need to either adopt it, or disable it somehow.  It should not
be left as some half-way house.

-- 
AlisdairM

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


[boost] Files of types *.ipp are unfriendly, especially to MSVC ?

2003-08-08 Thread Paul A. Bristow
Spirit and date_time use some files of type *.ipp (they are included
'internally').

I had the misfortune to be reading one using MSVC which does not recognize this
as a C++ type and so they are not shown in color, nor laid out etc.

Although these are 'private' detail files, I wonder if *.ipp should be
deprecated for Boost code?

I also found that one date_time file gregorian_calender.ipp includes 0D 0D 0A
sequences which double spaces it and, more confusingly, confuses the MSVC IDE
editor so that warnings appear on the wrong line :-(

(Perhaps Jeff Garland would like to fix this in gregorian_calender.ipp
sometime?)

I understood that a check program had been devised for this 'mis-feature'.
Was this missed because it is not a C++ type 'known' to the checker program?

Paul

Paul A Bristow, Prizet Farmhouse, Kendal, Cumbria, LA8 8AB  UK
+44 1539 561830   Mobile +44 7714 33 02 04
Mobile mailto:[EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]

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


RE: [boost] Re: Re: time_duration bug in Boost 1.30.0

2003-08-08 Thread Paul A. Bristow


| -Original Message-
| From: [EMAIL PROTECTED]
| [mailto:[EMAIL PROTECTED] Behalf Of Beman Dawes
| Sent: Friday, August 08, 2003 1:31 PM
| To: Boost mailing list; [EMAIL PROTECTED]
| Subject: Re: [boost] Re: Re: time_duration bug in Boost 1.30.0
|
|
| At 05:27 PM 8/7/2003, Bo Persson wrote:
|  
|  Paul A. Bristow [EMAIL PROTECTED] wrote:
|  
|  
|   (And other MS specific unhelpful warnings which could be dealt with
|  by
|  
|   #ifdef _MSC_VER  or BOOST_?
|   #pragma warning (disable : 4800) // inefficient bool conversion?
|   #endif
|  
|   As a general point, is there any reason why 'known to be unhelpful'
|   warnings like this cannot be disabled in Boost code?
|  
|  
|  A problem here is that the inefficient bool conversion often
|  actually *is* an inefficient implicit conversion to bool. IME, most of
|  these warnings can be removed by actually producing a bool value.
|  Adding == 0 or != 0 is often all it takes.
|
| FWIW, I've done that for years in my own code, and have come to believe
| that it results in better code. It makes the intent clear to someone
| reading the code. With an implicit conversion, a reader is unsure whether
| or not the conversion was intended.
|
| To answer Paul's question, some of the toolsets do disable known to be
| unhelpful warnings. But I agree with Bo that this warning shouldn't be one
| of them.
|
| --Beman

Agree with everything the previous speakers have said.

Can we document our preference for Boost code to compile warning free in strict
mode
(MSVC, correct for loop scope, no language extensions and warnings level 4)?

I sense that accepting the MS defaults(incorrect for loop scope, language
extensions and warnings level 3) is not setting the bar as high as we reasonably
could.

Of course, it won't always be possible, but from much Boost code, I believe that
with a very small additional effort by authors, much code could meet this
standard.

Paul

Paul A Bristow, Prizet Farmhouse, Kendal, Cumbria, LA8 8AB  UK
+44 1539 561830   Mobile +44 7714 33 02 04
Mobile mailto:[EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]

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


[boost] Re: UI++ [was: GUI sublanguage; Re: Re: Re: Re: GUI/GDI template library]

2003-08-08 Thread Steve Hutton
In article [EMAIL PROTECTED], Brock Peabody wrote:
 
 I suggest taking maybe some classes of WxWindows or Qt for basic
 portable
 [x1, y1, x2, y2] paint devices.  This would be a beginning.
 
 I'm sure we could learn something at least. 

Note: Qt is GPL, WxWindows is (modified) LGPL.

Obviously, there are potential licensing issues with creating a
new implementation modeled after GPL/LGPL code.  Studying the
interfaces and documentation is probably fair game, but copying 
from the source has license implications for your library.

On the other hand, if you create a derivative work that links
to low level classes of one of these existing libraries, you
could release an initial prototype under the matching library
license, then later replace the low level classes with your own
and change the license to a boost compatible one.

Steve

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


Re: [boost] Re: Re: swappable user defined types and STLport libraries

2003-08-08 Thread Beman Dawes
At 01:01 PM 8/6/2003, Fernando Cacciola wrote:

 I'd like to be sure that some Booster signs up for this beta and starts
 running the Boost regression tests against it. And then follows up with 

 bug
 reports to Borland as needed. Any bugs fixed in the compiler before it
 ships are bugs Boosters don't have to cope with later.

 Any volunteers:-?

I signed for it already.
Good! The more the merrier.

--Beman

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


[boost] Re: GUI sublanguage ?

2003-08-08 Thread [EMAIL PROTECTED]
 Adobe has a tool called ADM - Adobe Dialog Manager, which is used in many 
 of their
 programs. You can see the docs for ADM in (for example) the Acrobat SDK, 
 since
 you can use ADM when writing plugins for Acrobat.

 In ADM, you define your dialogs in a text-based format, giving control 
 types, sizes,
 and text, and ADM lays out the dialogs, and passes information back to 
 you based on
 what the user does.

 The big advantage here is that all the layout smarts are in one place, 
 and they match
 the IU guidelines of the platform that the program is running on.

 The disadvantage is that if you want to do something that is not 
 supported by ADM,
 you have to call the platform APIs, and your portability is shot.


After having followed this thread I wander if we are trying to reinvent 
the wheel. By googling a bit one can find plenty of Gui Toolkits and
here I saw little of them. Not a word on Qt, for example. I never 
used it for an important project but they give a (good ?) solution for 
example to the layout issues discussed so far.
If I should criticize them (as a lazy user who is in troble finding
his way among all those features) if the fact that there are huge 
classes that probably need further decomposition of resposibilities.

Anyway Qt make life simple for simple apps and provides something
that scales quite well for larger projects (I haven't used it but 
I can use KDE as witness).

So I would like to have a clearer idea of the difference between
the goal of this thread and existing solutions (i.e. Qt).

  regards




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


Re: [boost] Re: Re: Proposed smart_handle library

2003-08-08 Thread E. Gladyshev

--- Andrei Alexandrescu [EMAIL PROTECTED]
wrote:

 This approach is definitely sound, except that you
 need to write quite some
 scaffolding (ctors etc. etc.) for each handle
 wrapped. With a policy you can
 put the scaffolding in one place and then write only
 the stuff that varies.
 In the particular case of handles, maybe there's not
 a ton to wrap there,
 but if you want to be generic as the original poster
 suggested, you do need
 to use parameterized types.
 
 Ah, one more point that was discussed... there was
 much around operator-
 and operator* which don't make sense for certain
 resources. With Loki's
 SmartPtr, you can disable these two functions.
 Granted, the error message
 would be different, such as get_reference not
 found as opposed to
 operator* not found. Would this be a major issue?
 

There is a discussion going on about a GUI/GDI
template library. I think a smart handle library would
be useful there. IMHO the policy/traits based approach
is the way to go, actually not just for the
smart_handle library, but for any boost library that
needs to access platform specific features.
Just my $.02.

Eugene


__
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
___
Unsubscribe  other changes: http://lists.boost.org/mailman/listinfo.cgi/boost