$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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