Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-03-13 07:05:07


Beman Dawes <bdawes_at_[hidden]> writes:

> At 12:40 PM 3/12/2004, David Abrahams wrote:
> >
> > "The Filesystem Library's fstream.hpp header simply uses the
> > <fstream> standard library components as base classes, and then
> > overrides the members requiring argument types of path."
> >
> >Technically, I don't think this is overriding, and the base classes
> >don't require path arguments.
>
> Yes, that's clearly wrong.
>
> > Maybe you mean:
> >
> > "The Filesystem Library's fstream.hpp header simply uses the
> > <fstream> standard library components as base classes, and then
> > adds constructors, and overloads of the base interfaces, that
> > accept path arguments instead of strings"
>
> Hum... Looking at section 13, paragraph 1, a name is said to be
> overloaded only for declarations of the name in the same scope. Are a
> derived class and a base class in the same scope?

No, you're right. In that case "replaced" or "hidden" is probably
more accurate.

> My guess is no,
> although I couldn't find any specifics in a quick glance in the
> standard. The standard talks about visibility and hiding, but doesn't
> use the term "overload" for this exact case. The term "redeclares" is
> sometimes used.

OK.

> Regardless, "open" is the only name involved, and so perhaps this both
> technically correct and clearer:
>
> "The Filesystem Library's fstream.hpp header simply uses the
> <fstream> standard library components as base classes, and then
> redeclares constructors and open functions to take file
> name arguments of type path instead of char*."

OK.

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

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