Boost logo

Boost :

From: Rob Stewart (stewart_at_[hidden])
Date: 2005-07-04 09:44:24


From: David Abrahams <dave_at_[hidden]>
> Tobias Schwinger <tschwinger_at_[hidden]> writes:
>
> > F is undecorated \
> > F* is pointer decorated - free or static decoration ("wildcard")
> > F& is reference decorated /
> > C::*F is member-pointer-decorated
> >
> > The reference shows this grouping, too. Unfortunately the "[/ FIXME: add link to
> > reference ]" at the point where the "aspect tags" are introduced got lost (because
> > I copied from the browser instead of my .qbk master file).
>
> Okay, I understand. That said, the way you are classifying these
> things is going to cause confusion. There is no distinction between
> the types of static member functions and the types of free functions.
> There is only a distinction in how they are declared; once you are
> dealing with their types, they are the same thing. The name
> "free_or_static" carries the implication that you have precise
> (non-wildcard) tags "free" and "static". In my opinion, you should
> use the terms "member" and "nonmember." A pointer to a static member
> function is not a member pointer in the C++ type system; that's why my
> suggested terminology works. So "free_or_static" should be "nonmember."

No way. "Nonmember" precludes static member functions. They may
have the same type as nonmember functions, and aren't represented
with member function pointers, but they are still member
functions.

We've discussed "unbound," "free," and a couple of other names.
We've also noticed the "or" being a problem, but haven't found a
fully satisfactory replacement. I suggested having both "free"
and "static" names for the same thing, but we didn't like the
duplication.

-- 
Rob Stewart                           stewart_at_[hidden]
Software Engineer                     http://www.sig.com
Susquehanna International Group, LLP  using std::disclaimer;

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk