"Eugene Lazutkin" <[EMAIL PROTECTED]> wrote:
>Inline,
>
>"John Madsen" <[EMAIL PROTECTED]> wrote in message
>news:[EMAIL PROTECTED]
>> I have little experience with X-Windows, so I can't comment on that.
>However,
>> there is absolutely *nothing* in the smart_handle library that is platform
>> specific.  Just because one of the most obvious cases where it is useful
>is a
>> specific platform, does not make the library itself platform specific.  I
>find
>
>COM can be touted as platform independent standard but in 99.99% of case it
>is used on Windows. Looks very windowsy to me. ;-) We can have any
>proprietary stuff dressed as platform independent. In best case such
>masquerade would fool us into thinking that it is more than it is. In worst
>case it would be clumsy to use for proprietary stuff and unusable for
>anything else.
>

I fail to see how COM is a relevant analogy.  The smart_handle classes I've 
proposed will work on all major platforms unlike COM.  Several people have 
already suggested that it would be worthwhile for FILE*s and file descriptors.

>> it hard to believe that there is no other C API which uses handles for
>resource
>> management that doesn't have a suitable C++ wrapper for every case other
>than
>> Windows.
>
>Usually solution and problem go in pair. And problem goes before solution.
>In this case solution is our response to problem. Well, your comment tells
>me that we have a solution in search of a problem. Not that there's anything
>wrong with that.
>

See point above.

>> that auto_ptr and the like provide those operators so that they can
>actually
>> act like pointers.  If you want the pointer value itself from an auto_ptr,
>you
>> call get().  Note also that std::string has c_str() rather than operator
>const
>> char*().
>
>Using operator->() and operator*() you use "pointer value itself". It is
>pretty rare situation when you need it directly and not as part of
>abc->def() or *abc constructs. Example of c_str() is irrelevant --- you can
>do all string manipulations without c_str(). The former is needed to
>interface legacy systems, which is not frequent case.
>

Automatic conversions are well known sources of hard to find bugs.  Six 
characters hardly seems like a big deal.

>Auto_ptr was modeled after regular pointer. That is why it is so simple to
>use. It provides a) "invisible housekeeping" (see beginning of post) and b)
>has pointer-like "API". In most cases it can be used as drop-in replacement
>in existing code.
>
>I think smart handle should be done using exactly the same philosophy.
>"Invisible housekeeping" clause stands. And handle-like "API" is ...
>seamless conversion. What are real downsides of that?
>
>> I agree that in many cases scoped is more useful.  However, it was fairly
>> trivial to do shared and weak, so I figured why not?  Also, shared_handles
>will
>> work in stl containers while scoped_handles will not.
>
>Isn't it an overkill to use reference counting to put handles in vector? Is
>it the best solution for such problem? :-)
>

Not necessarily.  Please suggest another.

John


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

Reply via email to