
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