Boost logo

Boost :

From: Rainer Deyke (root_at_[hidden])
Date: 2002-01-12 15:51:34

----- Original Message -----
From: "Andrei Alexandrescu" <andrewalex_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Saturday, January 12, 2002 11:35 AM
Subject: Re: [boost] Loki SmartPtr questions

> However, smart pointer member functions defeat train by habit. Raw
> don't have member functions, so C++ programmers' eyes are not inhabited to
> detect and distinguish dot calls from arrow calls. The compiler does a
> job at that - if you use a dot after a raw pointer, the compiler will
> an error. Therefore, it is easy to imagine, and experience actually proves
> it, that even seasoned C++ programmers find it extremely disturbing that
> both sp.Release() and sp->Release() compile flag-free, but do very
> things.

In practice I have not found this to be a problem.

> Overloaded functions can be just as confusing as member functions of smart
> pointers, but there is an important difference. C++ programmers already
> overloaded functions. Overloading is an important part of the C++ language
> and is used routinely in library and application development. This means
> that C++ programmers do pay attention to differences in function call
> syntax - such as Release(*sp) versus Release(sp) - in writing and
> code.

I tend to think of a overloaded function as a single generic function.
Therefore I find a single function overloaded with significantly different
semantics more confusing that member functions for smart pointers.

Rainer Deyke (root_at_[hidden])
Shareware computer games           - 
"In ihren Reihen zu stehen heisst unter Feinden zu kaempfen" - Abigor

Boost list run by bdawes at, gregod at, cpdaniel at, john at