Boost logo

Boost :

From: Beman Dawes (bdawes_at_[hidden])
Date: 2004-03-12 21:49:35


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? 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.

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*."

Thanks,

--Beman


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